Git Magic deutsch - en to de translation catalogue (73 entries)

note: type: Plain text
en: == Basic Tricks ==
de: == Erste Schritte ==

note: type: Plain text
en: Rather than diving into a sea of Git commands, use these elementary examples to get your feet wet. Despite their simplicity, each of them are useful.  Indeed, in my first months with Git I never ventured beyond the material in this chapter.
de: Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht.

note: type: Plain text
en: === Saving State ===
de: === Stand sichern ===

note: type: Plain text
en: About to attempt something drastic? Before you do, take a snapshot of all files in the current directory with:
de: Hast du gravierende Änderungen vor? Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab:

note: type: Plain text
en:  $ git init
     $ git add .
     $ git commit -m "My first backup"
de:  $ git init
     $ git add .
     $ git commit -m "Meine erste Sicherung"

note: type: Plain text
en: Now if your new edits go awry, restore the pristine version:
de: Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen:

note: type: Plain text
en: To save the state again:
de: Um den neuen Stand zu sichern:

note: type: Plain text
en:  $ git commit -a -m "Another backup"
de:  $ git commit -a -m "Eine andere Sicherung"

note: type: Plain text
en: === Add, Delete, Rename ===
de: === Hinzufügen, Löschen, Umbenennen ===

note: type: Plain text
en: The above only keeps track of the files that were present when you first ran *git add*. If you add new files or subdirectories, you'll have to tell Git:
de: Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen:

note: type: Plain text
en:  $ git add readme.txt Documentation
de:  $ git add readme.txt Dokumentation

note: type: Plain text
en: Similarly, if you want Git to forget about certain files:
de: Ebenso, wenn Git Dateien vergessen soll:

note: type: Plain text
en:  $ git rm kludge.h obsolete.c
     $ git rm -r incriminating/evidence/
de:  $ git rm ramsch.h veraltet.c
     $ git rm -r belastendes/material/

note: type: Plain text
en: Git deletes these files for you if you haven't already.
de: Git löscht diese Dateien für dich, falls du es noch nicht getan hast.

note: type: Plain text
en: Renaming a file is the same as removing the old name and adding the new name. There's also the shortcut *git mv* which has the same syntax as the *mv* command. For example:
de: Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. Zum Beispiel:

note: type: Plain text
en:  $ git mv bug.c feature.c
de:  $ git mv fehler.c feature.c

note: type: Plain text
en: === Advanced Undo/Redo ===
de: === Fortgeschrittenes Rückgängig machen/Wiederherstellen ===

note: type: Plain text
en: Sometimes you just want to go back and forget about every change past a certain point because they're all wrong. Then:
de: Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. Dann:

note: type: Plain text
en: shows you a list of recent commits, and their SHA1 hashes:
de: zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte:

note: type: Plain text
en:     Replace printf() with write().
de:     Ersetze printf() mit write().

note: type: Plain text
en: The first few characters of the hash are enough to specify the commit; alternatively, copy and paste the entire hash. Type:
de: Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. Gib ein:

note: type: Plain text
en: to restore the state to a given commit and erase all newer commits from the record permanently.
de: um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen.

note: type: Plain text
en: Other times you want to hop to an old state briefly. In this case, type:
de: Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. In diesem Fall, gib folgendes ein:

note: type: Plain text
en: This takes you back in time, while preserving newer commits. However, like time travel in a science-fiction movie, if you now edit and commit, you will be in an alternate reality, because your actions are different to what they were the first time around.
de: Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. Aber, wie bei Zeitreisen in einem Science-Fiction-Film, wenn du jetzt etwas änderst und 'commitest', gelangst du in ein alternative Realität, denn deine Änderungen sind anders als beim früheren 'Commit'.

note: type: Plain text
en: This alternate reality is called a 'branch', and <<branch,we'll have more to say about this later>>. For now, just remember that
de: Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. Für jetzt, merke dir

note: type: Plain text
en: will take you back to the present. Also, to stop Git complaining, always commit or reset your changes before running checkout.
de: bringt dich wieder in die Gegenwart. Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'.

note: type: Plain text
en: To take the computer game analogy again:
de: Um wieder die Computerspielanalogie anzuwenden:

note: type: Plain text
en: - *`git reset --hard`*: load an old save and delete all saved games newer than the one just loaded.
de: - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene.

note: type: Plain text
en: - *`git checkout`*: load an old game, but if you play on, the game state will deviate from the newer saves you made the first time around. Any saved games you make now will end up in a separate branch representing the alternate reality you have entered. <<branch,We deal with this later>>.
de: - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. <<branch,Dazu kommen wir später>>.

note: type: Plain text
en: You can choose only to restore particular files and subdirectories by appending them after the command:
de: Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst:

note: type: Plain text
en:  $ git checkout 82f5 some.file another.file
de:  $ git checkout 82f5 eine.datei andere.datei

note: type: Plain text
en: Take care, as this form of *checkout* can silently overwrite files. To prevent accidents, commit before running any checkout command, especially when first learning Git. In general, whenever you feel unsure about any operation, Git command or not, first run *git commit -a*.
de: Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus.

note: type: Plain text
en: Don't like cutting and pasting hashes? Then use:
de: Du magst Kopieren und Einfügen von Hashes nicht? Dann nutze:

note: type: Plain text
en:  $ git checkout :/"My first b"
de:  $ git checkout :/"Meine erste Si"

note: type: Plain text
en: to jump to the commit that starts with a given message.  You can also ask for the 5th-last saved state:
de: um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. Du kannst auch nach dem 5. letzten 'Commit' fragen:

note: type: Plain text
en: === Reverting ===
de: === Rückgängig machen ===

note: type: Plain text
en: In a court of law, events can be stricken from the record. Likewise, you can pick specific commits to undo.
de: In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. Ähnlich kannst du gezielt 'Commits' rückgängig machen.

note: type: Plain text
en: will undo just the commit with the given hash. The revert is recorded as a new commit, which you can confirm by running *git log*.
de: wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann.

note: type: Plain text
en: === Changelog Generation ===
de: === Changelog erstellen ===

note: type: Plain text
en: Some projects require a http://en.wikipedia.org/wiki/Changelog[changelog].  Generate one by typing:
de: Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. Das kannst du mit folgendem Befehl erstellen:

note: type: Plain text
en: === Downloading Files ===
de: === Dateien herunterladen ===

note: type: Plain text
en: Get a copy of a project managed with Git by typing:
de: Eine Kopie eines mit Git verwalteten Projekts bekommst du mit:

note: type: Plain text
en:  $ git clone git://server/path/to/files
de:  $ git clone git://server/pfad/zu/dateien

note: type: Plain text
en: For example, to get all the files I used to create this site:
de: Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze:

note: type: Plain text
en: We'll have much to say about the *clone* command soon.
de: Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen.

note: type: Plain text
en: === The Bleeding Edge ===
de: === Das Neueste vom Neuen ===

note: type: Plain text
en: If you've already downloaded a copy of a project using *git clone*, you can upgrade to the latest version with:
de: Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit:

note: type: Plain text
en: === Instant Publishing ===
de: === Einfaches Veröffentlichen ===

note: type: Plain text
en: Suppose you've written a script you'd like to share with others. You could just tell them to download from your computer, but if they do so while you're improving the script or making experimental changes, they could wind up in trouble.  Of course, this is why release cycles exist. Developers may work on a project frequently, but they only make the code available when they feel it is presentable.
de: Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. Du könntest sie einfach bitten es von deinem Computer herunterzuladen, aber falls sie das tun während du experimentierst oder das Skript verbesserst könnten sie in Schwierigkeiten geraten. Genau deswegen gibt es Releasezyklen. Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten.

note: type: Plain text
en: To do this with Git, in the directory where your script resides:
de: Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt:

note: type: Plain text
en:  $ git init
     $ git add .
     $ git commit -m "First release"
de:  $ git init
     $ git add .
     $ git commit -m "Erster Stand"

note: type: Plain text
en: Then tell your users to run:
de: Dann sage deinen Nutzern:

note: type: Plain text
en:  $ git clone your.computer:/path/to/script
de:  $ git clone dein.computer:/pfad/zum/skript

note: type: Plain text
en: to download your script. This assumes they have ssh access. If not, run *git daemon* and tell your users to instead run:
de: um dein Skript herunterzuladen. Das setzt voraus, dass sie einen SSH-Zugang haben. Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes:

note: type: Plain text
en:  $ git clone git://your.computer/path/to/script
de:  $ git clone git://dein.computer/pfad/zum/skript

note: type: Plain text
en: From now on, every time your script is ready for release, execute:
de: Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist:

note: type: Plain text
en:  $ git commit -a -m "Next release"
de:  $ git commit -a -m "Nächster Stand"

note: type: Plain text
en: and your users can upgrade their version by changing to the directory containing your script and typing:
de: und deine Nutzer können ihr Skript aktualisieren mit:

note: type: Plain text
en: Your users will never end up with a version of your script you don't want them to see.
de: Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. Natürlich funktioniert der Trick für fast alles, nicht nur Skripts.

note: type: Plain text
en: === What Have I Done? ===
de: === Was habe ich getan? ===

note: type: Plain text
en: Find out what changes you've made since the last commit with:
de: Finde heraus was du seit dem letzten 'Commit' getan hast:

note: type: Plain text
en: Or since yesterday:
de: Oder seit Gestern:

note: type: Plain text
en:  $ git diff "@{yesterday}"
de:  $ git diff "@{gestern}"

note: type: Plain text
en: Or between a particular version and 2 versions ago:
de: Oder zwischen irgendeiner Version und der vorvorletzten:

note: type: Plain text
en: In each case the output is a patch that can be applied with *git apply*.  Try also:
de: Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. Versuche auch:

note: type: Plain text
en: Often I'll browse history with http://sourceforge.net/projects/qgit[qgit] instead, due to its slick photogenic interface, or http://jonas.nitro.dk/tig/[tig], a text-mode interface that works well over slow connections. Alternatively, install a web server, run *git instaweb* and fire up any web browser.
de: Um mir die Geschichte eines 'Repositories' anzuzeigen benutze ich häufig http://sourceforge.net/projects/qgit[qgit] da es eine schicke Benutzeroberfläche hat, oder http://jonas.nitro.dk/tig/[tig], eine Konsolenanwendung, die sehr gut über langsame Verbindungen funktioniert. Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen.

note: type: Plain text
en: === Exercise ===
de: === Übung ===

note: type: Plain text
en: Let A, B, C, D be four successive commits where B is the same as A except some files have been removed. We want to add the files back at D. How can we do this?
de: A, B, C, D sind 4 aufeinander folgende 'Commits'. B ist identisch mit A, außer dass einige Dateien gelöscht wurden. Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das?

note: type: Plain text
en: There are at least three solutions. Assuming we are at D:
de: Es gibt mindestens 3 Lösungen. Angenommen, wir sind bei D:

note: type: Bullet: '  1. '
en: The difference between A and B are the removed files. We can create a patch representing this difference and apply it:
de: Der Unterschied zwischen A und B sind die gelöschten Dateien. Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden:

note: type: Bullet: '  2. '
en: Since we saved the files back at A, we can retrieve them:
de: Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen:

note: type: Bullet: '  3. '
en: We can view going from A to B as a change we want to undo:
de: Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen:

note: type: Plain text
en: Which choice is best? Whichever you prefer most. It is easy to get what you want with Git, and often there are many ways to get it.
de: Welche Lösung ist die beste? Die, welche dir am besten gefällt. Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel.
