From 244b9a272c9b3120a1e88d85f7be3383c6c62e5d Mon Sep 17 00:00:00 2001 From: damianmichna Date: Wed, 3 Jul 2013 22:17:52 +0200 Subject: [PATCH] first quick and dirty translation from german translation using omegat --- de/Makefile | 0 pl/omegat-tmp/omegat.project | 16 + pl/omegat-tmp/omegat/ignored_words.txt | 0 pl/omegat-tmp/omegat/learned_words.txt | 0 pl/omegat-tmp/omegat/project_save.tmx | 8753 ++++++++++++++++++++ .../omegat/project_save.tmx.201307020402.bak | 6534 +++++++++++++++ .../omegat/project_save.tmx.201307020529.bak | 6685 +++++++++++++++ .../omegat/project_save.tmx.201307021212.bak | 7309 ++++++++++++++++ pl/omegat-tmp/omegat/project_save.tmx.bak | 8745 +++++++++++++++++++ pl/omegat-tmp/omegat/project_stats.txt | 24 + pl/omegat-tmp/pl-level1.tmx | 6541 +++++++++++++++ pl/omegat-tmp/pl-level2.tmx | 6541 +++++++++++++++ pl/omegat-tmp/pl-omegat.tmx | 6541 +++++++++++++++ pl/omegat-tmp/source/Makefile | 62 + pl/omegat-tmp/source/basic.txt | 257 + pl/omegat-tmp/source/branch.txt | 304 + pl/omegat-tmp/source/clone.txt | 310 + pl/omegat-tmp/source/drawbacks.txt | 183 + pl/omegat-tmp/source/grandmaster.txt | 287 + pl/omegat-tmp/source/history.txt | 275 + pl/omegat-tmp/source/intro.txt | 146 + pl/omegat-tmp/source/multiplayer.txt | 265 + pl/omegat-tmp/source/preface.txt | 101 + pl/omegat-tmp/source/secrets.txt | 299 + pl/omegat-tmp/source/translate.txt | 36 + pl/omegat-tmp/target/Makefile | 62 + pl/omegat-tmp/target/basic.txt | 185 + pl/omegat-tmp/target/branch.txt | 171 + pl/omegat-tmp/target/clone.txt | 183 + pl/omegat-tmp/target/drawbacks.txt | 91 + pl/omegat-tmp/target/grandmaster.txt | 172 + pl/omegat-tmp/target/history.txt | 142 + pl/omegat-tmp/target/intro.txt | 57 + pl/omegat-tmp/target/multiplayer.txt | 163 + pl/omegat-tmp/target/preface.txt | 45 + pl/omegat-tmp/target/secrets.txt | 131 + pl/omegat-tmp/target/translate.txt | 17 + 37 files changed, 61633 insertions(+) rewrite de/Makefile (100%) mode change 120000 => 100644 create mode 100644 pl/omegat-tmp/omegat.project create mode 100644 pl/omegat-tmp/omegat/ignored_words.txt create mode 100644 pl/omegat-tmp/omegat/learned_words.txt create mode 100644 pl/omegat-tmp/omegat/project_save.tmx create mode 100644 pl/omegat-tmp/omegat/project_save.tmx.201307020402.bak create mode 100644 pl/omegat-tmp/omegat/project_save.tmx.201307020529.bak create mode 100644 pl/omegat-tmp/omegat/project_save.tmx.201307021212.bak create mode 100644 pl/omegat-tmp/omegat/project_save.tmx.bak create mode 100644 pl/omegat-tmp/omegat/project_stats.txt create mode 100644 pl/omegat-tmp/pl-level1.tmx create mode 100644 pl/omegat-tmp/pl-level2.tmx create mode 100644 pl/omegat-tmp/pl-omegat.tmx create mode 100644 pl/omegat-tmp/source/Makefile create mode 100644 pl/omegat-tmp/source/basic.txt create mode 100644 pl/omegat-tmp/source/branch.txt create mode 100644 pl/omegat-tmp/source/clone.txt create mode 100644 pl/omegat-tmp/source/drawbacks.txt create mode 100644 pl/omegat-tmp/source/grandmaster.txt create mode 100644 pl/omegat-tmp/source/history.txt create mode 100644 pl/omegat-tmp/source/intro.txt create mode 100644 pl/omegat-tmp/source/multiplayer.txt create mode 100644 pl/omegat-tmp/source/preface.txt create mode 100644 pl/omegat-tmp/source/secrets.txt create mode 100644 pl/omegat-tmp/source/translate.txt create mode 100644 pl/omegat-tmp/target/Makefile create mode 100644 pl/omegat-tmp/target/basic.txt create mode 100644 pl/omegat-tmp/target/branch.txt create mode 100644 pl/omegat-tmp/target/clone.txt create mode 100644 pl/omegat-tmp/target/drawbacks.txt create mode 100644 pl/omegat-tmp/target/grandmaster.txt create mode 100644 pl/omegat-tmp/target/history.txt create mode 100644 pl/omegat-tmp/target/intro.txt create mode 100644 pl/omegat-tmp/target/multiplayer.txt create mode 100644 pl/omegat-tmp/target/preface.txt create mode 100644 pl/omegat-tmp/target/secrets.txt create mode 100644 pl/omegat-tmp/target/translate.txt diff --git a/de/Makefile b/de/Makefile deleted file mode 120000 index 0d2fefa..0000000 --- a/de/Makefile +++ /dev/null @@ -1 +0,0 @@ -../po4gitmagic/Makefile \ No newline at end of file diff --git a/de/Makefile b/de/Makefile new file mode 100644 index 0000000..0d2fefa --- /dev/null +++ b/de/Makefile @@ -0,0 +1 @@ +../po4gitmagic/Makefile \ No newline at end of file diff --git a/pl/omegat-tmp/omegat.project b/pl/omegat-tmp/omegat.project new file mode 100644 index 0000000..b383728 --- /dev/null +++ b/pl/omegat-tmp/omegat.project @@ -0,0 +1,16 @@ + + + + __DEFAULT__ + __DEFAULT__ + __DEFAULT__ + __DEFAULT__ + __DEFAULT__ + __DEFAULT__ + DE-DE + PL + true + true + false + + diff --git a/pl/omegat-tmp/omegat/ignored_words.txt b/pl/omegat-tmp/omegat/ignored_words.txt new file mode 100644 index 0000000..e69de29 diff --git a/pl/omegat-tmp/omegat/learned_words.txt b/pl/omegat-tmp/omegat/learned_words.txt new file mode 100644 index 0000000..e69de29 diff --git a/pl/omegat-tmp/omegat/project_save.tmx b/pl/omegat-tmp/omegat/project_save.tmx new file mode 100644 index 0000000..61919cb --- /dev/null +++ b/pl/omegat-tmp/omegat/project_save.tmx @@ -0,0 +1,8753 @@ + + + +
+ + + + + "blob" SP "6" NUL "sweet" LF + + + "blob" SP "6" NUL "sweet" LF + + + + + "commit 158" NUL "tree 05b217bb859794d08bb9e4f7f04cbda4b207fbe9" LF "author Alice <alice@example.com> 1234567890 -0800" LF "committer Bob <bob@example.com> 1234567890 -0800" LF LF "Shakespeare" LF + + + "commit 158" NUL "tree 05b217bb859794d08bb9e4f7f04cbda4b207fbe9" LF "author Alice <alice@example.com> 1234567890 -0800" LF "committer Bob <bob@example.com> 1234567890 -0800" LF LF "Shakespeare" LF + + + + + "tree" SP "32" NUL "100644 rose" NUL 0xaa823728ea7d592acc69b36875a482cdf3fd5c8d + + + "tree" SP "32" NUL "100644 rose" NUL 0xaa823728ea7d592acc69b36875a482cdf3fd5c8d + + + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + + + $ chmod a+x hooks/post-update + + + chmod a+x hooks/post-update + + + + + $ echo "Ich bin klüger als mein Chef" > meinedatei.txt $ git init $ git add . + + + $ echo "jestem mądrzejszy od szefa" > mojplik.txt $ git init $ git add . + + + + + $ echo 05b217bb859794d08bb9e4f7f04cbda4b207fbe9 | git cat-file --batch + + + $ echo 05b217bb859794d08bb9e4f7f04cbda4b207fbe9 | git cat-file --batch + + + + + $ echo sweet > DEIN_DATEINAME $ git init $ git add . + + + +$ echo sweet > TWOJA_NAZWA $ git init $ git add . + + + + + $ edit intro.txt # übersetze diese Datei. + + + $ edit intro.txt # Przetłumacz ten plik. + + + + + $ find .git/objects -type f + + + $ find .git/objects -type f $ find .git/objects -type f + + + + + $ git am < email.txt + + + $ git am < email.txt + + + + + $ git apply < mein.patch + + + $ git apply < moj.patch + + + + + $ git bisect bad + + + +$ git bisect bad + + + + + $ git bisect reset + + + $ git bisect reset + + + + + $ git bisect run mein_skript + + + $ git bisect run moj_skrypt + + + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + + + $ git blame bug.c + + + $ git blame bug.c + + + + + $ git branch -D dead_branch # instead of -d + + + $ git branch -D dead_branch # zamiast -d + + + + + $ git branch -M source target # instead of -m + + + git branch -M zrodlo cel # zamiast -m + + + + + $ git branch -m master teil2 # Umbenennen des 'Branch' "master" zu "teil2". + + + $ git branch -m master czesc2 # zmiana nazwy 'branch' "master" na "czesc2". + + + + + $ git branch -r + + + $ git branch -r + + + + + $ git branch master HEAD~7 # Erstelle neuen "master", 7 Commits voraus + + + $ git branch master HEAD~7 # utwórz nowy "master", 7 'commit' do przodu + + + + + $ git bundle create einedatei HEAD + + + $ git bundle create plik HEAD + + + + + $ git bundle create einedatei HEAD ^1b6d + + + +$ git bundle create plik HEAD ^1b6d + + + + + $ git bundle create neuesbundle HEAD ^letztesbundle + + + $ git bundle create nowybundle HEAD ^ostatnibundle + + + + + $ git cat-file -p aa823728ea7d592acc69b36875a482cdf3fd5c8d + + + $ git cat-file -p aa823728ea7d592acc69b36875a482cdf3fd5c8d + + + + + $ git checkout -b chef # scheinbar hat sich danach nichts geändert $ echo "Mein Chef ist klüger als ich" > meinedatei.txt $ git commit -a -m "Ein anderer Stand" + + + $ git checkout -b chef # wydaje się, że nic nie uległo zmianie $ echo "Mój szef jest mądrzejszy ode mnie" > mojplik.txt $ git commit -a -m "Inny stan" + + + + + $ git checkout -b schmutzig + + + $ git checkout -b brudy + + + + + $ git checkout -b teil2 + + + $ git checkout -b czesc2 + + + + + $ git checkout -f HEAD^ + + + $ git checkout -f HEAD^ + + + + + $ git checkout 1b6d^^2~10 -b uralt + + + $ git checkout 1b6d^^2~10 -b archaiczny + + + + + $ git checkout chef # wechsle zur Version die der Chef ruhig sehen kann + + + $ git checkout chef # wersja, którą szef spokojnie może zobaczyć + + + + + $ git checkout master # Gehe zurück zu Teil I. $ fix_problem $ git commit -a # 'Commite' die Lösung. + + + $ git checkout master # wróć do częsci I $ usun_problem $ git commit -a # wykonaj 'commit' z rozwiązaniam. + + + + + $ git checkout master # Gehe zurück zu Teil I. $ submit files # Veröffentliche deine Dateien! + + + $ git checkout master # Idź do części I. $ submit files # Opublikuj dane! + + + + + $ git checkout master # wechsle zur Originalversion der Datei + + + $ git checkout master # przejdź do wersji orginalnej + + + + + $ git checkout master . + + + $ git checkout master + + + + + $ git checkout schnmutzig + + + $ git checkout brudy + + + + + $ git checkout teil2 # Gehe zurück zu Teil II. $ git merge master # 'Merge' die Lösung. + + + $ git checkout czesc2 # Idź do części II. $ git merge master # 'merge' rozwiązanie. + + + + + $ git clean -f -d + + + $ git clean -f -d + + + + + $ git clone git://github.com/blynn/gitmagic.git $ git clone git://gitorious.org/gitmagic/mainline.git + + + $ git clone git://github.com/blynn/gitmagic.git $ git clone git://gitorious.org/gitmagic/mainline.git + + + + + $ git clone git://repo.or.cz/gitmagic.git # Erstellt "gitmagic" Verzeichnis. + + + $ git clone git://repo.or.cz/gitmagic.git # Utworzy katalog "gitmagic". + + + + + $ git clone git://repo.or.cz/gitmagic.git $ cd gitmagic $ mkdir tlh # "tlh" ist das IETF Sprachkürzel für Klingonisch. + + + $ git clone git://repo.or.cz/gitmagic.git $ cd gitmagic $ mkdir tlh # "tlh" jest skrótem IETF języka Klingonisch. + + + + + $ git clone http://web.server/proj.git + + + $ git clone http://web.server/proj.git + + + + + $ git commit # Schreibe eine Bemerkung. + + + $ git commit # dodaj jakiś opis. + + + + + $ git commit --amend + + + $ git commit --amend + + + + + $ git commit --amend -a + + + $ git commit --amend -a + + + + + $ git commit --amend -m Shakespeare # Ändere die Bemerkung. + + + $ git commit --amend -m Shakespeare # Zmień ten opis. + + + + + $ git commit -a -m "Fehler behoben" $ git checkout master + + + $ git commit -a -m "usunięto bug" $ git checkout master + + + + + $ git commit -m "Erster Stand" + + + $ git commit -m "pierwszy stan" + + + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + + + $ git config --global user.name "Max Mustermann" $ git config --global user.email maxmustermann@beispiel.de + + + $ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + + + + + $ git config --list + + + $ git config --list + + + + + $ git config gc.auto 0 + + + $ git config gc.auto 0 + + + + + $ git config gc.pruneexpire "30 days" + + + $ git config gc.pruneexpire "30 days" + + + + + $ git config remote.origin.url git://neue.url/proj.git + + + git config remote.origin.url git://nowy_link/proj.git + + + + + $ git diff 1b6d > mein.patch + + + $ git diff 1b6d > moj.patch + + + + + $ git diff origin/HEAD + + + $ git diff origin/HEAD + + + + + $ git diff origin/experimentell^ other/some_branch~5 + + + $ git diff origin/experimental^ inny/jakis_branch~5 + + + + + $ git fetch # Fetch vom origin, der Standard. + + + $ git fetch # Fetch z origin, jako standard. + + + + + $ git fetch other # Fetch vom zweiten Programmierer. + + + $ git fetch inne # Fetch od drugiego programisty. + + + + + $ git filter-branch --env-filter 'export GIT_AUTHOR_DATE="Fri 13 Feb 2009 15:31:30 -0800" GIT_AUTHOR_NAME="Alice" GIT_AUTHOR_EMAIL="alice@example.com" GIT_COMMITTER_DATE="Fri, 13 Feb 2009 15:31:30 -0800" GIT_COMMITTER_NAME="Bob" GIT_COMMITTER_EMAIL="bob@example.com"' # Manipuliere Zeitstempel und Autor. + + + $ git filter-branch --env-filter 'export GIT_AUTHOR_DATE="Fri 13 Feb 2009 15:31:30 -0800" GIT_AUTHOR_NAME="Alice" GIT_AUTHOR_EMAIL="alice@example.com" GIT_COMMITTER_DATE="Fri, 13 Feb 2009 15:31:30 -0800" GIT_COMMITTER_NAME="Bob" GIT_COMMITTER_EMAIL="bob@example.com"' # Zmanipuluj znacznik czasowy i nazwę autora. + + + + + $ git filter-branch --tree-filter 'mv DEIN_DATEINAME rose' $ find .git/objects -type f + + + $ git filter-branch --tree-filter 'mv TWOJA_NAZWA rose' $ find .git/objects -type f + + + + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + + + $ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + + + + + $ git format-patch 1b6d + + + git format-patch 1b6d + + + + + $ git format-patch 1b6d..HEAD^^ + + + $ git format-patch 1b6d..HEAD^^ + + + + + $ git init $ git add . + + + + + + + + $ git log origin/experimentell + + + $ git log origin/experimental + + + + + $ git merge teil2 # 'Merge' in Teil II. $ git branch -d teil2 # Lösche den Branch "teil2" + + + $ git merge czesc2 # 'merge' w części II. $ git branch -d czesc2 # Usuń 'branch' o nazwie "czesc2" + + + + + $ git pull einedatei + + + +$ git pull plik + + + + + $ git pull git://beispiel.com/anderes.git master + + + $ git pull git://example.com/inny.git master + + + + + $ git push web.server:/pfad/zu/proj.git master + + + $ git push web.server:/sciezka/do/proj.git master + + + + + $ git rebase --continue + + + $ git rebase --continue + + + + + $ git rebase -i HEAD~10 + + + $ git rebase -i HEAD~10 + + + + + $ git remote add other git://example.com/some_repo.git $ git pull other some_branch + + + $ git remote add inny git://example.com/jakies_repo.git $ git pull inny jakis_branch + + + + + $ git reset --hard 1b6d + + + $ git reset --hard 1b6d + + + + + $ git symbolic-ref HEAD + + + $ git symbolic-ref HEAD + + + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + + + $ git tag -f letztesbundle HEAD + + + $ git tag -f ostatnibundle HEAD + + + + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + + + $ git-new-workdir ein/istniejacy/repo nowy/katalog + + + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + + + $ printf "blob 6\000sweet\n" | sha1sum + + + $ printf "blob 6\000sweet\n" | sha1sum + + + + + $ rm -r .git/refs/original $ git reflog expire --expire=now --all $ git prune + + + $ rm -r .git/refs/original $ git reflog expire --expire=now --all $ git prune + + + + + $ zpipe -d < .git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9 | sha1sum + + + +$ zpipe -d < .git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9 | sha1sum + + + + + 'Branch'-Magie + + + Magia 'branch' + + + + + 'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das Öffnen eines neuen Browserfenster. + + + BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. + + + + + 'Branches' sind fast das selbe: sie sind Dateien in +.git/refs/heads+. + + + 'branches' to prawie to samo, są plikami zapamiętanymi w +.git/refs/heads+. + + + + + 'Branches' verwalten + + + Organizacja BRANCHES + + + + + 'Branching'? + + + +'Branching'? + + + + + 'Clone' die Quelltexte, dann erstelle ein Verzeichnis mit dem Namen des IETF Sprachkürzel der übersetzten Sprache: siehe http://www.w3.org/International/articles/language-tags/Overview.en.php[den W3C Artikel über Internationalisierung]. + + + 'Clone' texty źródłowe, następnie utwórz katalog o nazwie skrótu IETF przetłumaszonego języka: sprawdź http://www.w3.org/International/articles/language-tags/Overview.en.php[Artykół W3C o internacjonalizacji]. + + + + + 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne Netzwerkverbindung. + + + Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. + + + + + 'Commite' Änderungen + + + Zmiany 'commit' + + + + + 'Commits' sind elementar, das heißt, ein 'Commit' kann niemals nur Teile einer Änderung speichern: wir können den SHA1-Hash-Wert eines 'Commits' erst dann berechnen und speichern, nachdem wir bereits alle relevanten 'Tree'-Objekte, 'Blob'-Objekte und Eltern-'Commits' gespeichert haben. + + + 'commits' są elementarne, do znaczy, 'commit' nie potrafi zapamiętać jedynie części zmian: klucz SHA1 'commit' możemy obliczyć i zapamiętać dopiero po tym gdy zapamiętane zostały wszystkie objekty 'tree', 'blob' i rodziców 'commit'. + + + + + 'Committe' deine Änderungen oft und wenn du fertig bist, gib bitte Bescheid. + + + Używaj często 'commit' a gdy już skończysz, to daj znać. + + + + + 'Fork' eines Projekts + + + FORK projektu + + + + + 'Merge' Konflikte + + + Konflikty z 'merge' + + + + + 'Mergen' + + + 'merge' + + + + + 'Merging'? + + + 'Merging'? + + + + + 'Nackte Repositories' + + + Gołe REPOSITORIES + + + + + 'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern und Menschen gleichermaßen einfach verstanden werden. + + + 'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. + + + + + 'Push' oder 'Pull' + + + PUSH albo PULL + + + + + 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + + + 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + + + + + 'Tags' ebenso: sie stehen in +.git/refs/tags+ aber sie werden durch einen Satz anderer Anweisungen aktualisiert. + + + 'Tags' również, znajdziemy je w +.git/refs/tags+, są one jednak aktualizowane poprzez serię innych poleceń. + + + + + 'Tags'? + + + 'Tags'? + + + + + 'Trees' + + + 'Trees' + + + + + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + + + * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + + + + + * `reword` um die Log-Beschreibung zu ändern. + + + * `reword`, by zmienić opisy logu. + + + + + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + + + * `squash` by połączyć 'commit' z poprzednim ('merge'). + + + + + *Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. + + + *Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. + + + + + *Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. + + + *Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. + + + + + *Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. + + + *clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. + + + + + *Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + + + *Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie jest: *git branch*. + + + + + *Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. + + + *Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. + + + + + *Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. + + + *reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. + + + + + - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. + + + - *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. + + + + + - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene. + + + - *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + + + + + - Entferne 'Commits' durch das Löschen von Zeilen. + + + - usuń 'commits' poprzez skasowanie lini. + + + + + - Ersetze `pick` mit: * `edit` um einen 'Commit' für 'amends' zu markieren. + + + - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. + + + + + - Organisiere 'Commits' durch verschieben von Zeilen. + + + - przeorganizuj 'commits' przesuwając linie. + + + + + - http://github.com/[http://github.com/] hostet Open-Source Projekte kostenlos und geschlossene Projekte gegen Gebühr. + + + - http://github.com/[http://github.com/] hostuje projekty Open-Source darmowo a projekty zamknięte za opłatą. + + + + + - http://gitorious.org/[http://gitorious.org/] ist eine andere Git Hosting Seite, bevorzugt für Open-Source Projekte. + + + - http://gitorious.org/[http://gitorious.org/] to następna strona hostingowa Gita, preferująca Projekty Open-Source. + + + + + - http://packages.debian.org/gitmagic[Debian Packet], http:://packages.ubuntu.com/gitmagic[Ubuntu Packet]: Für eine schnelle und lokale Kopie dieser Seite. + + + - http://packages.debian.org/gitmagic[Pakiet Debiana], http:://packages.ubuntu.com/gitmagic[Pakiet Ubuntu]: Dla szybkiej lokalnej kopii tej strony. + + + + + - http://repo.or.cz/[http://repo.or.cz/] hostet freie Projekte. + + + - http://repo.or.cz/[http://repo.or.cz/] hostuje wolne projekty> + + + + + - http://www.amazon.com/Git-Magic-Ben-Lynn/dp/1451523343/[Gedrucktes Buch [Amazon.com]]: 64 Seiten, 15.24cm x 22.86cm, schwarz/weiß. + + + - http://www.amazon.com/Git-Magic-Ben-Lynn/dp/1451523343/[Drukowana książka [Amazon.com]]: 64 Strony, 15.24cm x 22.86cm, czarno-biała. + + + + + - http://www.slideshare.net/slide_user/magia-git[Portugiesisch]: von Leonardo Siqueira Rodrigues [http://www.slideshare.net/slide_user/magia-git-verso-odt[ODT-Version]]. + + + - http://www.slideshare.net/slide_user/magia-git[portugalski]: od Leonardo Siqueira Rodrigues [http://www.slideshare.net/slide_user/magia-git-verso-odt[Wersja ODT]]. + + + + + - link:/\~blynn/gitmagic/intl/zh_cn/[Vereinfachtes Chinesisch]: von JunJie, Meng und JiangWei. + + + - link:/\~blynn/gitmagic/intl/zh_cn/[uproszczony chiński]: od JunJie, Meng i JiangWei. + + + + + - link:/~blynn/gitmagic/intl/de/[Deutsch]: von Benjamin Bellee und Armin Stebich; Auch gehostet unter http://gitmagic.lordofbikes.de/[Armin's Website]. + + + - link:/~blynn/gitmagic/intl/de/[Deutsch]: od Benjamin Bellee i Armin Stebich; Również na http://gitmagic.lordofbikes.de/[Armin's Website]. + + + + + - link:/~blynn/gitmagic/intl/es/[Spanisch]: von Rodrigo Toledo und Ariset Llerena Tapia. + + + - link:/~blynn/gitmagic/intl/es/[hiszpański]: od Rodrigo Toledo i Ariset Llerena Tapia. + + + + + - link:/~blynn/gitmagic/intl/fr/[Französich]: von Alexandre Garel, Paul Gaborit, und Nicolas Deram. Auch gehostet unter http://tutoriels.itaapy.com/[itaapy]. + + + - link:/~blynn/gitmagic/intl/fr/[francuski]: od Alexandre Garel, Paul Gaborit, i Nicolas Deram. Również na http://tutoriels.itaapy.com/[itaapy]. + + + + + - link:/~blynn/gitmagic/intl/ru/[Russisch]: von Tikhon Tarnavsky, Mikhail Dymskov, und anderen. + + + - link:/~blynn/gitmagic/intl/ru/[rosyjski]: od Tikhon Tarnavsky, Mikhail Dymskov, i innych. + + + + + - link:/~blynn/gitmagic/intl/vi/[Vietnamesisch]: von Trần Ngọc Quân; Auch gehostet unter http://vnwildman.users.sourceforge.net/gitmagic.html[seiner Website]. + + + - link:/~blynn/gitmagic/intl/vi/[wietnamski]: od Trần Ngọc Quân; Również na http://vnwildman.users.sourceforge.net/gitmagic.html[jego Stronie]. + + + + + - link:book.html[Einzelne Webseite]: reines HTML, ohne CSS. - link:book.pdf[PDF Datei]: druckerfreundlich. + + + - link:book.html[pojedyńcze strony]: czysty HTML, bez CSS. - link:book.pdf[PDF Datei]: przyjazne do druku. + + + + + ---------------------------------- + + + ---------------------------------- + + + + + ... + + + ... + + + + + .Andere Ausgaben + + + .Inne wydania + + + + + .Kostenloses Git Hosting + + + .Darmowe repozytoria Git + + + + + .Übersetzungen + + + .Tłumaczenia + + + + + <<branch,Dazu kommen wir später>>. + + + <<branch, wrócimy do tego później>> + + + + + = Git Magic = Ben Lynn August 2007 + + + = Git Magic = Ben Lynn Sierpień 2007 + + + + + A, B, C, D sind 4 aufeinander folgende 'Commits'. + + + A, B, C i D sa 4 nastepujacymi po sobie COMMITS. + + + + + Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + + Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + + + + + Aber auch wenn wir ein normales 'Repository' auf dem zentralen Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. + + + Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. + + + + + Aber deshalb ein einfacheres, schlecht erweiterbares System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen zu verwenden. + + + Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + + + + + Aber du bist mit der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas umformuliert werden. + + + Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. + + + + + Aber einige Leute sind diesen Zähler gewöhnt. + + + Niektórzy jednak przyzwyczaili się do tego licznika. + + + + + Aber es gibt einen viel einfacheren Weg. + + + Istnieje jednak dużo prostszy sposób. + + + + + Aber es ist eine Illusion. + + + Ale to iluzja. + + + + + Aber manchmal arbeite ich an meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich inzwischen nicht austauschen können. + + + Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + + + + + Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. + + + Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. + + + + + Aber spätere 'Commits' werden immer mindestens eine Zeile enthalten, die den Eltern-'Commit' identifiziert. + + + Następujące 'commits' będą zawsze zawierać przynajmniej jedną linikę identyfikującą rodzica. + + + + + Aber stell Dir vor, Du hast ihn niemals notiert? + + + Wyobraź jednak sobie, że nigdy go nie notowałeś? + + + + + Aber was, wenn wir nur deren Änderungen vergleichen wollen, ohne unsere eigene Arbeit zu beeinflussen? + + + Co jednak zrobić, gdy chcemy porównać zmiany w nich bez wpływu na naszą pracę? + + + + + Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein Verlauf um die Größe des gesamten Projekts wachsen. + + + Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + + + + + Aber wie kannst Du zurück in die Zukunft? + + + Ale jak teraz wrócić znów do przyszłości? + + + + + Aber wo sind die Dateinamen? + + + Gdzie są więc nazwy plików? + + + + + Aber, das überschreibt die vorherige Version. + + + Jednak, przepisze to poprzednią wersję. + + + + + Aber, wenn du an der Vergangenheit manipulierst, sei vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. + + + Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. + + + + + Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der häufigsten Anweisungen umgehen. + + + Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + + + + + 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'. + + + Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + + + + + Abgesehen von gelegentlichen 'Commits' und 'Merges' kannst Du arbeiten, als würde die Versionsverwaltung nicht existieren. + + + Zapominając na chwilę o sporadycznych 'commits' i 'merges', możesz pracować w sposób, jakby kontrola wersji wogóle nie istniała. + + + + + Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls wird Git alle Änderungen 'comitten'. + + + Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + + + + + Aktualisiere das lokale 'Repository' erneut mit 'pull', löse eventuell aufgetretene 'Merge'-Konflikte und versuche es nochmal. + + + Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + + + + + Alles, was man mit dem zentralen 'Repository' tun kann, kannst du auch mit deinem 'Clone' tun. + + + Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + + + + + Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus. + + + Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + + + + + Allgemein, *filter-branch* lässt dich große Bereiche der Chronik mit einer einzigen Anweisung verändern. + + + Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + + + + + Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + + + A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + + + + + Alternativ kannst Du *git commit \--interactive* verwenden, was dann automatisch die ausgewählten Änderungen 'commited' nachdem Du fertig bist. + + + Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + + + + + Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen. + + + Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + + + + + Am schrecklichsten sind fehlende Dateien wegen eines vergessenen *git add*. + + + Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. + + + + + Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte Anweisungen scheuen, bis sie absolut notwendig sind. + + + Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. + + + + + Andere Versionsverwaltungssysteme zwingen Dich ständig Dich mit Verwaltungskram und Bürokratie herumzuschlagen. + + + Inne systemy kontroli wersji ciągle zmuszają cię do ciągłego borykania się z zagadnieniem samej kontroli i związanej z tym biurokracji. + + + + + Andere bestehen auf dem anderen Extrem: mehrere Fenster, ganz ohne Tabs. + + + Inni upierają się przy tym: więcej okien, zupełnie bez tabs. + + + + + Andere denken, daß Zweige vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit losgelassen werden. + + + Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. + + + + + Andere können davon ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und dass er die offizielle Version enthält. + + + Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję + + + + + Andere mögliche Dateitypen sind ausführbare Programmdateien, symbolische Links oder Verzeichnisse. + + + Inne możliwe rodzaje plików to programy, linki symboliczne i katalogi. + + + + + Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen Format einliest um eine Git Chronik von Anfang an zu erstellen. + + + W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. + + + + + Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen das Zerstören der Daten. + + + Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. + + + + + Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige Entwickler war. + + + Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. + + + + + Angenommen du hast Teil I 'commitet' und zur Prüfung eingereicht. + + + Przyjmijmy, że wykonałeś 'commit' pierwszej części i przekazałeś do sprawdzenia. + + + + + Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. + + + Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. + + + + + Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht installiert. + + + Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. + + + + + Angenommen, wenn irgendeine Datei in der Objektdatenbank durch einen Laufwerksfehler zerstört wird, dann wird sein SHA1-Hash-Wert nicht mehr mit seinem Inhalt übereinstimmen und uns sagen, wo das Problem liegt. + + + Przyjmijmy, gdy jakikolwiek plik w objektowej bazie danych ulegnie zniszczeniu poprzez błąd nośnika, to jego SHA1 nie będzie zgadzać i jego zawartością, co od razu wskaże nam problem. + + + + + Angenommen, wir sind bei D: + + + Zalozmym ze jestesmy w D: + + + + + Angenommen, zwei andere Entwickler arbeiten an Deinem Projekt und wir wollen beide im Auge behalten. + + + Przyjmijmy, dwóch innych programistów pracuje nad twoim projektem i chcielibyśmy mieć ich na oku. + + + + + Anhang A: Git's Mängel + + + Załącznik A: Wady GIT + + + + + Anhang B: Diese Anleitung übersetzen + + + Załącznik B: Przetłumaszyć to HOWTO + + + + + Ansonsten: + + + W przeciwnym razie: + + + + + Anstatt 'pull' benutzt Du dann: + + + Zamiast 'pull' skorzystaj z: + + + + + Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + + Zamiast kopiować i wklejać klucze z 'reflog', możesz: + + + + + Anstatt die Details aufzudecken, bieten wir grobe Anweisungen für die jeweiligen Funktionen. + + + Zamiast wchodzić głęboko w szczegóły, oferujemy proste instrukcje do odpowiednich funkcji. + + + + + Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch Ausführen von: + + + Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + + + + + Anstelle des zweiten Befehl kann man auch `git commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. + + + Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. + + + + + Antworte mit "y" für Ja oder "n" für Nein. + + + Odpowiedz po prostu "y" dla tak, albo "n" dla nie. + + + + + Arbeit ist Spiel + + + Praca jest zabawą + + + + + Arbeite wie du willst + + + Pracuj jak chcesz + + + + + Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem nutzt und vermisst du Git? + + + Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? + + + + + Argh! + + + Och! + + + + + Auch auf Deiner Seite ist alles was Du brauchst ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' aufzusetzen. + + + Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + + + + + Auch wenn Git die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + + + Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + + + + + Auch wenn du den ``master'' 'Branch' umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch respektieren. + + + Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + + + + + Auch wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser Faustregel weniger anfällig für falsche Vergleiche. + + + Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + + + + + Auf Debian und Ubuntu, findet man dieses Verzeichnis unter +/usr/share/doc/git-core/contrib+. + + + W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + + + + + Auf Git bauen + + + Budować na git + + + + + Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem Ordner: + + + Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + + + + + Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + + Po stronie odbiorcy zapamiętaj email jako daną i podaj: + + + + + Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, gibt es keinen Sicherheitsüberprüfungen mehr. + + + Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. + + + + + Aufgedeckte Geheimnisse + + + Uchylenie tajemnicy + + + + + Aus diesem Grund plädiere ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man Mercurial bevorzugt. + + + Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial + + + + + Außerdem kannst du sie komprimieren um Speicherplatz zu sparen. + + + Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. + + + + + Außerdem können so alle Übersetzungen in einem 'Repository' existieren. + + + Poza tym wszystkie tłumaszenia mogą być prowadzone w jednym repozytorium. + + + + + Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen hinauswachsen. + + + Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. + + + + + Außerdem kümmert sich Git um die Details wie Autorname und eMail-Adresse, genauso wie um Datum und Uhrzeit und es fordert den Autor zum Beschreiben seiner eigenen Änderungen auf. + + + Pozatym Git martwi się o szczegóły, jak nazwa autora i adres maila, tak samo jak i o datę i godzinę oraz motywuje autora do opisywania swoich zmian. + + + + + Außerdem waren sich die Entwickler der Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen bewusst. + + + Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + + + + + B ist identisch mit A, außer dass einige Dateien gelöscht wurden. + + + B rozni sie od A, jedynie tym, ze usunieto kilka plikow. + + + + + Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine historische Unwegbarkeiten umgehen. + + + Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. + + + + + Beachte, dass alle Änderungen, die nicht 'commitet' sind übernommen werden. + + + Zauwaz, ze wszystkie zmiany, ktorre nie zostaly 'commit', zostaly przejete + + + + + Bearbeite das Makefile und füge das Sprachkürzel zur Variable `TRANSLATIONS` hinzu. + + + Edytuj Makefile i dodaj skrót języka do zmiennej `TRANSLATIONS`. + + + + + Beginne ein paar 'Branches': + + + Wystartuj kilka BRANCHES: + + + + + Bei Softwareprojekten kann das ähnlich sein. + + + W projektach programistycznych moze to wygladac podobnie. + + + + + Bei einem 'pull' aus anderen 'Repositories' müssen wir explizit angeben, welchen 'Branch' wir wollen: + + + Przy 'pull' z innego repozytorium musimy podać z którego branch chcemy korzystać. + + + + + Bei einem Mercurial Projekt gibt es gewöhnlich immer einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt automatisch die Benutzer von Mercurial mit einbezieht. + + + W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + + + + + Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem Ordner voller Dateien. + + + Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. + + + + + Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren und für andere Benutzer veröffentlichen will. + + + Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. + + + + + Bei regelmäßiger Anwendung wirst Du allmählich verstehen, wie die Tricks funktionieren und wie Du die Rezepte auf Deinen Bedarf zuschneiden kannst. + + + Podczas regularnego korzystania sam dojdziesz do tego, jak te sztuczki funkcjpnują i jak możesz dopasować podane instrukcje na swoje własne potrzeby. + + + + + Bei verteilen Systemen ist das viel besser, da wir die benötigt Version lokal 'clonen' können. + + + Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + + + + + Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen gib ein: + + + Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + + + + + Beide laden ihre Änderungen hoch. + + + Obydwoje ładują swoje zmiany na serwer. + + + + + Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin um die alte Version zu erhalten. + + + Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. + + + + + Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + + + Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + + + + + Benutze *git submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten willst. + + + Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + + + + + Beschaffe dir die `hg-git`-Erweiterung mit Git: + + + Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + + + + + Betrachten wir Webbrowser. + + + Przyjżyjmy się takiej przeglądarce internetowej. + + + + + Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. + + + Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom + + + + + Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir uns mit ihm auseinandersetzen um das bisherige zu erklären. + + + Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. + + + + + Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' gewechselt, wie in: + + + Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + + + + + Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. + + + Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* + + + + + Blobs + + + Bloby + + + + + Changelog erstellen + + + Utwożenie historii + + + + + Chronik umschreiben + + + Przepisanie historii + + + + + Computer synchronisieren + + + Synchronizacja komputera + + + + + Computerspiele machten das lange Zeit so, viele von ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + + + Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + + + + + Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in Versionsverwaltungssystemen die einzelne Dateien überwachen. + + + Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + + + + + Da das Abfragen des Dateistatus erheblich schneller ist als das Lesen der Datei, kann Git, wenn Du nur ein paar Dateien verändert hast, seinen Status im Nu aktualisieren. + + + Ponieważ sprawdzenie statusu pliku trwa dużo krócej niż jego całkowite wczytanie, to jeśli dokonałaś zmian tylko na kilku plikach Git zaktualizuje swój stan w mgnieniu oka. + + + + + Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen: + + + Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + + + + + Da diese Anweisung aber auch zu ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option hinzufügen. + + + Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + + + + + Da ich in erster Linie unter Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + + + Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + + + + + Da war auch ein interessanter http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige Engpässe zu vermeiden. + + + Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. + + + + + Dadurch agieren nun alle Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, während deine Dateien unverändert erhalten bleiben. + + + Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. + + + + + Dafür ist es nun zu spät. + + + Na to jest już za późno. + + + + + Damit alles zu unserem Beispiel passt, müssen wir ein wenig tricksen: + + + By wszystko do naszego przykładu pasowało, musimy trochę pokombinować. + + + + + Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. + + + Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. + + + + + Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor der Operation. + + + Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. + + + + + Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen und am Teil II arbeiten, bevor Teil I offiziell freigegeben wurde. + + + Dzieki bezbolesnemu 'branch' i 'merge' mozemy te regoly naciagnac i pracowac nad druga czescia jeszcze zanim pierwsza zostanie oficjalnie zatwierdzona + + + + + Danke! + + + Dziękuję! + + + + + Dann 'branche' zu Teil II: + + + Najpierw zmień 'branch' do części drugiej + + + + + Dann 'commite' dein Projekt und gib ein: + + + Wtedy COMMIT twój projekt i wykomaj: + + + + + Dann auf dem anderen: + + + Potem na następnym: + + + + + Dann erstelle ein Git 'Repository' in deinem Arbeitsverzeichnis: + + + Utwórz GIT REPOSITORY w katalogu roboczym + + + + + Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + + + No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + + + + + Dann gehe wieder ins neue Verzeichnis und gib ein: + + + Następnie przejdź do dowego katalogu i podaj: + + + + + Dann gib ein: + + + Wpisujesz: + + + + + Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. + + + W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. + + + + + Dann mache diese Änderungen und gib ein: + + + Wykonaj je i wpisz: + + + + + Dann mache folgendes auf deinem Server: + + + To po prostu zwób coś takiego na twoim serwerze: + + + + + Dann nutze: + + + Możesz w tym wypadku skorzystać z: + + + + + Dann sage deinen Nutzern: + + + Następnie udostępnij link twoim użytkownikom: + + + + + Dann tippe: + + + Wpisz wtedy: + + + + + Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch Eingabe von: + + + Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + + + + + Dann, wenn du den Fehler behoben hast: + + + Jak juz uporasz sie z bledem: + + + + + Dann: + + + Wtedy: + + + + + Das 'Mergen' mehrerer 'Branches' erzeugt einen 'Commit' mit mindestens zwei Eltern. + + + 'merge' kilku 'branche' wytwarza 'commit' z minimum 2 rodzicami. + + + + + Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen werden; nur diejenigen mit SSH Zugriff können es einsehen. + + + To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. + + + + + Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf Git aufbauen. + + + Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. + + + + + Das Beispiel 'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation über 'Git-agnostic transports' wie z.B. HTTP benötigt. + + + Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. + + + + + Das Geheimnis liegt in der Konfiguration, die beim 'Clonen' erzeugt wurde. + + + Tajemnica leży w konfiguracji, która utworzona zostaje podczas klonowania. + + + + + Das Neueste vom Neuen + + + Najnowsze z nowych + + + + + Das Problem ist, den entsprechenden SHA1-Wert zu finden. + + + Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. + + + + + Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann. + + + To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + + + + + Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese Bezeichnung hatten. + + + Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. + + + + + Das `tailor` Programm konvertiert Bazaar 'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während `bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + + + Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + + + + + Das bedeutet auch, dass sich der SHA1-Hash-Wert des offiziellen HEAD von dem des manipulierten 'Repository' unterscheidet. + + + Oznacza to również, że klusz oficjalnego HEAD różni się od klucza HEAD manipulowanego rapozytorium. + + + + + Das dritte ist ein 'Commit'-Objekt. + + + Ten trzeci to objekt 'commit' + + + + + Das erfordert aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch aufrufen, wenn sie eine Datei bearbeiten. + + + Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + + + + + Das funktioniert wahrscheinlich ganz gut, wenn auch unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen Dateien braucht. + + + Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + + + + + Das führende `blob 6` ist lediglich ein Vermerk, der sich aus dem Objekttyp und seiner Länge in Bytes zusammensetzt; er vereinfacht die interne Verwaltung. + + + Początkowe `blob 6`, to jedynie adnotacja, która określa jedynie rodzaj objektu i jego wieklość w bajtach, pozwala to na uproszczenie zarządzania wewnętrznego. + + + + + Das geht wesentlich schneller, aber der resultierende Klon hat nur eingeschränkte Funktionalität. + + + Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + + + + + Das gilt stellvertretenden für andere Anweisungen. + + + Reprezentuje to również wszystkie inne polecenia. + + + + + Das hast Du vielleicht noch nicht bemerkt, denn Git versteckt diese: Du musst speziell danach fragen. + + + Może jeszcze tego nie zauważyłeś, ponieważ Git je ukrywa: musisz się o nie specjalnie pytać: + + + + + Das heißt auch, dass sie jeden SHA1-Hash-Wert der 'Tree'-Objekte ändern müssen, welche dieses Objekt referenzieren und demzufolge alle SHA1-Hash-Werte der 'Commit'-Objekte, welche diese 'Tree'-Objekte beinhalten, zusätzlich zu allen Abkömmlingen dieses 'Commits'. + + + To znaczy róniweż, że musiałabyś zmienić każdy klucz objektu 'tree', które ją referują oraz w wyniku tego wszystkie klucze 'commits' zawierające obejkty 'tree' dodatkowo do pochodnych tych 'commits'. + + + + + Das heißt, bis Du sie brauchst. + + + To znaczy - do czasu aż będzie ci potrzebna. + + + + + Das heißt, nachdem Du ein 'Bundle' gesendet hast, gib ein: + + + To znaczy, po wysłaniu 'bundle', podaj: + + + + + Das ist Deine eigene Kopie der Versionsgeschichte, damit kannst Du so lange offline bleiben, bis Du mit anderen kommunizieren willst. + + + Jest to twoja własna kopie całej historii, z którą mogłabyś pracować offline, aż do momentu gdy zechcesz wymienić dane z innymi. + + + + + Das ist der erste 'Commit' gewesen, deshalb gibt es keine Eltern-'Commits'. + + + To jest pierwszy 'commit', przez to nie posiada rodziców 'commit'. + + + + + Das ist ein großartiger Ansatz, um an Git heranzugehen: Anfänger können seine inneren Mechanismen ignorieren und Git als ein Ding ansehen, das mit seinen erstaunlichen Fähigkeiten Freunde verzückt und Gegner zur Weißglut bringt. + + + Jest to wspaniałe podejście, by zacząć pracę z Git: Amatorzy mogą zognorować swoje wewnętrzene mechanizmy i ujrzeć Git jako rzecz, która urzeka przyjaciół swoimi niezwykłymi możliwościami, a przeciwników doprowadza do białej gorączki. + + + + + Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. + + + To zadanie dla *git rebase*, jak wyżej opisane. + + + + + Das ist eine primitive und mühselige Form der Versionsverwaltung. + + + Jest to prymitywna i pracochłonna forma kontroli wersji. + + + + + Das ist unüblich. + + + Znajduje to dość szerokie zastosowanie + + + + + Das ist wie bei den Spielen der alten Schule, die nur Speicherplatz für eine Sicherung hatten: sicherlich konntest du speichern, aber du konntest nie zu einem älteren Stand zurück. + + + To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. + + + + + Das kannst Du kontrollieren, durch die Eingabe von: + + + Możesz to skontrolować wpisując: + + + + + Das kannst du mit folgendem Befehl erstellen: + + + Możesz go utwoszyć korzystając z polecenia: + + + + + Das neue Verzeichnis enthält die Dateien mit deinen Änderungen. + + + Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami + + + + + Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche Versionsgeschichte die beiden Versionen automatisch synchron bleiben. + + + Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. + + + + + Das obige erklärt, warum einige von unseren früheren 'push' und 'pull' Beispielen keine Argumente hatten. + + + To wyjaśnia dlaczego nasze poprzednie przykłady z 'push' i 'pull' nie posiadały argumentów. + + + + + Das setzt voraus, dass sie einen SSH-Zugang haben. + + + Wymaga to od nich posiadanie klucza SSH do twojego komputera. + + + + + Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) und stellt den vorherigen Stand wieder her. + + + Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. + + + + + Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine Authentifizierung, also kann jeder das Projekt abrufen. + + + Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. + + + + + Das verhindert, dass 'Branches' vom entfernten 'Repository' Deine lokalen 'Branches' stören und es macht Git einfacher für Anfänger. + + + To zapobiega temu, że branches z oddalonego repozytorium nie przeszkadza twoim lokalnym branches i czyni to Git łatwiejszym dla początkujących. + + + + + Das war eine Schande, denn vielleicht war deine vorherige Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du später gerne noch einmal zurückkehren möchtest. + + + To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. + + + + + Das wendet den eingegangenen 'Patch' an und erzeugt einen 'Commit', inklusive der Informationen wie z.B. den Autor. + + + Patch zostanie wprowadzony i utworzy commit, włącznie z informacjami jak naprzykład o autorze. + + + + + Das wirft die Frage auf: Welchen 'Commit' referenziert `HEAD~10` tatsächlich? + + + To nasuwa pytanie; ktoremu 'commit' referuje HEAD++10 wlasciwie? + + + + + Dass, wenn der Chef ins Büro spaziert, während du das Spiel spielst, du es schnell verstecken kannst? + + + By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + + + + + Dateien herunterladen + + + Zładowanie danych + + + + + Dateien ohne Bezug + + + Pliki z brakiem odniesienia + + + + + Dateien sind können schreibgeschützt sein, bis Du einem zentralen Server mitteilst, welche Dateien Du gerne bearbeiten möchtest. + + + Pliki mogą być zapezpieczone przed zapisem, aż do momentu gdy uda ci się poinformować centralny serwer o tym, że chciałabyś nad nimi popracować. + + + + + Dateihistorie + + + Historia pliku + + + + + Dein Arbeitsverzeichnis erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu editieren. + + + Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować + + + + + Deine Arbeit kommt zum Stillstand, wenn das Netzwerk oder der zentrale Server weg sind. + + + Gdy tylko zniknie sieć lub centralny serwer praca staje. + + + + + Deine Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so weiter. + + + Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi i tak dalej. + + + + + Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. + + + Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali + + + + + Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je komplizierter der Kontextwechsel ist, desto größer ist der Verlust. + + + Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty + + + + + Der Absender erstellt ein 'Bundle': + + + Nadawca tworzy 'bundle': + + + + + Der Dateiname ist irrelevant: nur der Dateiinhalt wird zum Erstellen des 'Blob'-Objekt verwendet. + + + Nazwa pliku nie ma znaczenia, jedynie jego zawartość służy do utworzenia objektu 'blob'. + + + + + Der Empfänger kann das sogar mit einem leeren 'Repository' tun. + + + Odbiorca może to zrobić z pustym repozytorium. + + + + + Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten 'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. + + + Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. + + + + + Der Index ist ein temporärer Bereitstellungsraum. + + + Index jest tymczasowym rusztowaniem + + + + + Der Index: Git's Bereitstellungsraum + + + Index: ruszkowanie gita + + + + + Der Inhalt von +.git/objects+ bleibt der selbe, ganz egal wieviele Dateien Du hinzufügst. + + + Zawartość +.git/objects+ nie zmieni się, niezależnie ile kopii dodałaś. + + + + + Der SHA1-Hash-Wert wird während eines 'Commit' aktualisiert, genauso bei vielen anderen Anweisungen. + + + Klucz SHA1 zostaje aktualizowany podczas wykonania 'commit', tak samo jak i przy wielu innych poleceniach. + + + + + Der Unterschied zwischen A und B sind die gelöschten Dateien. + + + Roznica miedzy A i B, to skasowane pliki. + + + + + Der Verlauf der Firmware interessiert den Anwender nicht und Änderungen lassen sich schlecht komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' unnötig auf. + + + Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + + + + + Der ``master'' 'Branch' ist ein nützlicher Brauch. + + + MASTER BRANCH jest bardzo użytecznym + + + + + Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den Rest. + + + Teraz 'master branch' zawiera cześć 1 a 'branch' czesc2 posiada resztę. + + + + + Der aktuelle HEAD wird in der Datei +.git/HEAD+ gehalten, welche den SHA1-Hash-Wert eines 'Commit'-Objekts enthält. + + + Aktualny HEAD przetrzymywany jest w pliku +.git/HEAD+, która posiada klucz SHA1 ostatniego 'commit'. + + + + + Der angegebene Pfad wird stillschweigend überschrieben. + + + Podana ścieżka zostanie bez pytania zastąpiona. + + + + + Der erste Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten Datei im Index. + + + Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. + + + + + Der erster Klon + + + Pierwszy klon + + + + + Der ganze Beitrag ist eine faszinierende archäologische Seite für Git Historiker. + + + Cały post jest archeologicznie fascynującą stroną dla historyków zajmujących sie Gitem. + + + + + Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten zukünftigen Operationen dann schnell und offline erfolgen. + + + Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. + + + + + Der zweite Schritt speichert dauerhaft den Schnappschuß, der sich nun im Index befindet. + + + Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. + + + + + Der zweite Teil eines Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und getestet wurde. + + + Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. + + + + + Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch Dateinamen mit ungewöhnlichen Zeichen. + + + Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików + + + + + Die *pull* Anweisung holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese dann mit dem aktuellen 'Branch'. + + + Polecenie *pull* ładuje ('fetch') 'commits' i je zespala ('merge'), wtedy z aktualnym 'branch'. + + + + + Die +branch.master.merge+ Option definiert den Standard-Remote-'Branch' bei einem *git pull*. + + + Opcja +branch.master.merge+ definuje standardowy Remote-'Branch' dla *git pull*. + + + + + Die +remote.origin.url+ Option kontrolliert die Quell-URL; ``origin'' ist der Spitzname, der dem Quell-'Repository' gegeben wurde. + + + Opcja +remote.origin.url+ kontroluje źródłowe URL; ``origin'' to alias, nadany źródłowemu repozytorium. + + + + + Die Anweisung + + + Polecenie: + + + + + Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu schreiben und außerdem um 'Repositories' in Klartext zu übertragen. + + + Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. + + + + + Die Chef-Taste + + + Przycisk SZEF + + + + + Die Datei zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden könnte. + + + Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. + + + + + Die Entwicklung findet in den 'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis auskommen. + + + Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + + + + + Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' umwandeln, indem man in ein leeres 'Repository' 'pushed'. + + + To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT + + + + + Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. + + + Termin opublikowania pewnej wlasciwosci zbliza sie. + + + + + Die Hilfeseiten schlagen vor 'Tags' zu benutzen um dieses Problem zu lösen. + + + Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. + + + + + Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da andere Operationen dafür unglaublich effizient sind. + + + Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. + + + + + Die Objektdatenbank + + + Obiektowa baza danych + + + + + Die Objektdatenbank ist einfach aber trotzdem elegant und sie ist die Quelle von Git's Macht. + + + Obiektowa baza danych jest prosta, mimo to jesnak elegancka i jest źródłem siły Gita. + + + + + Die Objektdatenbank ist immun gegen unerwartete Unterbrechungen wie zum Beispiel einen Stromausfall. + + + Objektowa baza dynch jest osporna na nieoczekiwane przerwy, jak na przykład przerwanie dostawy prądu. + + + + + Die Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer Kopie der ganzen Datei. + + + Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + + + + + Die SHA1-Hash-Wert Prüfung mit 'cat-file' ist etwas kniffliger, da dessen Ausgabe mehr als die rohe unkomprimierte Objektdatei enthält. + + + Sprawdzanie za pomocą 'cat-file' jest troszeczkę kłopotliwe, bo jego output zawiera więcej niż tylko nieskomprymowany objekt pliku. + + + + + Die Summe der Bemühungen verschlimmerte die Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu verbrauchen um noch längere Wartezeiten zu verhindern. + + + Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. + + + + + Die Textdatei ist wiederhergestellt. + + + Poprzedni plik jest przywrocony do stanu pierwotnego + + + + + Die Ursachen für die großen Unterschiede sollten ermittelt werden. + + + Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. + + + + + Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom anderen Versionsverwaltungssystem ab. + + + Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. + + + + + Die aktuelle Implementierung von Git, weniger sein Design, ist verantwortlich für diesen Pferdefuß. + + + To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. + + + + + Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + + Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + + + + + Die allererste Git Hosting Seite. + + + Pierwsza powstała strona hostingowa dla Git. + + + + + Die beschriebene Situation ist eine erwähnenswerte Ausnahme. + + + Ta przywołana sytuacja jest wyjątkiem wartym wspomnienia. + + + + + Die einfachsten Befehle werden bis zum Schneckentempo verlangsamt, wenn die Anzahl der Anwender steigt. + + + Przy wzroście liczby użytkowników nawet najprostsze polecenia stają się wolne jak ślimak. + + + + + Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. + + + Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. + + + + + Die letztere kann verwendet werden um SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich gestutzt wurde. + + + Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + + + + + Die meisten Leute verbinden mit Kryptographie die Geheimhaltung von Informationen, aber ein genau so wichtiges Ziel ist es Informationen zu sichern. + + + Z kryptografią przez większość ludzi łączona jest poufność informacji, jednak równie ważnym jej celem jest zabezpieczenie danych. + + + + + Die meisten Systeme wählen automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + + + Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + + + + + Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, werden verteilte Systeme genannt und können als eine Verallgemeinerung der zentralisierten Systeme verstanden werden. + + + Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. + + + + + Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen Logdateien. + + + Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. + + + + + Die resultierenden Dateien können an *git-send-email* übergeben werden oder von Hand verschickt werden. + + + Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. + + + + + Die richtige Anwendung von kryptographischen Hash-Funktionen kann einen versehentlichen oder bösartigen Datenverlust verhindern. + + + Właściwe zastosowanie kraptograficznych funkcji hashujących (funkcji skrótu) może uchronić przed nieumyślnym lub celowym zniszczeniem danych. + + + + + Die vergangenen 'Commits' wissen nichts von der Zukunft. + + + Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + + + + + Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des 'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. + + + Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu + + + + + Die zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird oder die ganze Zeile überarbeiten. + + + Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + + + + + Die Änderungen bleiben im .git Unterverzeichnis gespeichert und können wieder hergestellt werden, wenn der entsprechende SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" oben). + + + Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). + + + + + Die, welche dir am besten gefällt. + + + To, ktore najbardziej tobie odpowiada. + + + + + Dies holt lediglich die Chroniken. + + + Polecenie to załaduje jedynie historię + + + + + Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten Elternteil während eines 'Merge'; häufig bist du nur von Änderungen betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen die von anderen 'Branches' eingebracht wurden. + + + Należy wspomnieć, że aktualny 'branch' staje sie pierwszym rodzicem podczas 'merge'; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym 'branch' bardziej, niz ze zmianami z innych 'branch'. + + + + + Dies verleiht ihnen eine universelle Anziehungskraft. + + + Dodaje im to uniwersalnej mocy przyciągania. + + + + + Diese Anleitung ist unter der http://www.gnu.org/licenses/gpl-3.0.html[GNU General Public License Version 3] veröffentlicht. + + + Ten poradnik publikowany jest na bazie licencji http://www.gnu.org/licenses/gpl-3.0.html[GNU General Public License Version 3]. + + + + + Diese Datei ist ein 'Tree'-Objekt: eine Liste von Datensätzen, bestehend aus dem Dateityp, dem Dateinamen und einem SHA1-Hash-Wert. + + + Nasz plik to takzwany objekt 'tree': lista wyrażeń, na którą składają się rodzaj pliku, jego nazwa i jego klucz SHA1. + + + + + Diese Liste zeigt die 'Branches' und den HEAD des entfernten 'Repository', welche auch in regulären Git Anweisungen verwendet werden können. + + + Lista ta ukazje BRANCHES i HEAD odległego repozytorium, które mogą być również stosowane w zwykłych poleceniach Git. + + + + + Diese Operationen sind schnell und lokal, also warum nicht damit experimentieren um die beste Kombination für sich selbst zu finden? + + + Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. + + + + + Diese Option gilt nur für das 'Repository', von dem als erstes 'gecloned' wurde, was in der Option +branch.master.remote+ hinterlegt ist. + + + Ta opcja jest ważna jedynie dla repozytorium, z którego dokonało się pierwsze klonowanie, co zapisane jest w opcji +branch.master.remote+. + + + + + Diese Spiele versteckten die Details vor dem Spieler und präsentierten eine bequeme Oberfläche um verschiedene Versionen des Ordners zu verwalten. + + + Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + + + + + Diese Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. + + + Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. + + + + + Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. + + + Ta inna rzeczywistość, to tzw. branch <<branch, zajmiemy się tym w późniejszym czasie>>. + + + + + Diese einfache Beobachtung ist überraschend nützlich: suche nach 'hash chains'. + + + Ta prosta obserwacja okazała się niesamowicie pożyteczna: jeśli cię to zainteresowało poszukaj informacji na temat 'hash chains'. + + + + + Dieser Zyklus wiederholt sich ein paar Mal bevor du zum 'Pushen' in den zentralen Zweig bereit bist. + + + Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + + + + + Dieser http://lkml.org/lkml/2005/4/6/121['Linux Kernel Mailing List' Beitrag] beschreibt die Kette von Ereignissen, die zu Git geführt haben. + + + Ten http://lkml.org/lkml/2005/4/6/121['Linux Kernel Mailing List' post] opisuje cały łańcuch zdarzeń, które inicjowały powstanie Git. + + + + + Dieser spezielle 'Commit' repräsentiert einen leeren 'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git 'Repositories'. + + + Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + + + + + Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange Geschichte existiert, aber auf Dauer wird es sich lohnen. + + + Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. + + + + + Dieses mal kann ich Dir nicht sagen, wie die zwei neuen Dateien heißen, weil es zum Teil vom gewählten Dateiname abhängt, den Du ausgesucht hast. + + + Tym razem nie jestem w stanie powiedzieć, jak nazywają sie te dwa nowe pliki, ponieważ częściowo są zależne od nazwy jaką nadałeś plikom. + + + + + Doch anstelle ein paar Knöpfe zu drücken, machst du 'create', 'check out', 'merge' und 'delete' von temporären 'Branches'. + + + Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. + + + + + Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie auch die ganze Geschichte bis zum angegebenen Punkt mit sich. + + + Jednak 'clone' niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. + + + + + Du arbeitest also an Teil II und 'commitest' deine Änderungen regelmäßig. + + + Pracujesz w cześci 2 i regularnie wykonujesz 'commit'. + + + + + Du arbeitest an einem aktiven Projekt. + + + Pracujesz nad aktywnym projektem. + + + + + Du bekommst einen Haufen Dateien eines bestimmten Sicherungsstands. + + + Otrzymasz całą masę plików konkretnego stanu + + + + + Du denkst, du kannst das besser? + + + Uważasz, że potrafisz to lepiej + + + + + Du hast auch noch andere Optionen, z.B. den Aufschub der Entscheidung; drücke "?" + + + Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" + + + + + Du hast die absolute Kontrolle über das Schicksal Deiner Dateien, denn Git kann jederzeit einfach einen gesicherten Stand aus `.git` wiederherstellen. + + + Posiadasz absolutną kontrolę nad losem twoich danych, ponieważ Git potrafi dla ciebie w każdej chwili odtworzyć zapamiętany poprzednio stan z właśnie podkatalogu .git. + + + + + Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch ging. + + + Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. + + + + + Du kannst Dir alle SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten 'Commit' findest. + + + Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' + + + + + Du kannst auch 'Commits' aufteilen. + + + Możesz również podzielć 'commits'. + + + + + Du kannst auch eine Gruppe von 'Commits' angeben: + + + Możesz podać grupę 'commits' + + + + + Du kannst auch nach dem 5. letzten 'Commit' fragen: + + + Możesz również udać się do 5 z ostatnich COMMIT: + + + + + Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst: + + + Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + + + + + Du kannst den Zustand des Ordners sichern so oft du willst und du kannst später jeden Sicherungspunkt wieder herstellen. + + + Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. + + + + + Du kannst die Logs nach dem entsprechenden SHA1 Hashwert durchsuchen, aber es ist viel einfacher folgendes einzugeben: + + + Możesz przeszukać logi za odpowiednim kluczem SHA1, ale dużo prościej jest podać: + + + + + Du kannst die Nummer für den ersten Elternteil weglassen. + + + Mozesz pominac numer pierwszego rodzica + + + + + Du kannst diese Notation mit anderen Typen kombinieren. + + + Mozesz łączyć ta notacje takze z innymi + + + + + Du kannst diese Änderungen sogar 'commiten'. + + + Mozesz te zmiany nawet 'commit'. + + + + + Du kannst einen 'Patch' Entwicklern schicken, ganz egal, was für ein Versionsverwaltungssystem sie benutzen. + + + Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. + + + + + Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen referenzieren. + + + Mozesz tez jakiegos rodzica referowac go daszkiem. + + + + + Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. + + + Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. + + + + + Du kannst noch viel mehr machen: die Hilfe erklärt, wie man 'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu beschleunigen. + + + Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + + + + + Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. + + + Możesz pracować nad dwoma funkcjami jednocześnie + + + + + Du kannst sogar 'Branches' in einem 'Repository' umorganisieren. + + + Możesz nawet przeorganizować 'branches' w repozytorium. + + + + + Du kannst sogar die frisch gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + + Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + + + + + Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + + + Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak tylko zechcesz, niezaleznie od tego, w kazdej z tych wersji mozesz wykonać 'commit' + + + + + 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. + + + Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. + + + + + Du magst Kopieren und Einfügen von Hashes nicht? + + + Nie lubisz kopiować i wklejać hash-ów? + + + + + Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. + + + Może pytasz się, czy BRANCHES są warte tego zachodu. + + + + + Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + + Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + + + + + Du merkst, dass du vergessen hast eine Datei hinzuzufügen? + + + Zauważasu, że zapomniałeś dodać jakiegoś pliku? + + + + + Du solltes etwas sehen wie: + + + Powinieneś zobaczyć coś jak: + + + + + Du solltest nun +.git/objects/49/993fe130c4b3bf24857a15d7969c396b7bc187+ finden, was dem SHA1-Hash-Wert seines Inhalts entspricht: + + + Powinieneś znaleźć +.git/objects/49/993fe130c4b3bf24857a15d7969c396b7bc187+, co odpowiada kluczowi SHA1 jego zawartości: + + + + + Du solltest nun drei Objekte sehen. + + + Powinieneś ujrzeć teraz 3 objekty. + + + + + Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + + Akurat gdy strasznie zajety biezacymi zadaniami projektu, otrzymujesz polecenie zajecie sie bledem w 'commit' 1b6d... + + + + + Du willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und hinter den offiziellen Änderungen sehen. + + + Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + + + + + Du willst deine laufenden Arbeiten für dich behalten und andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert hast. + + + Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. + + + + + Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? + + + Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? + + + + + Du willst zahlreiche, vor Manipulation geschützte, redundante Datensicherungen an unterschiedlichen Orten? + + + Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach + + + + + Du wirst Dich fragen, was mit identischen Dateien ist. + + + Pytasz się, a co w przypadku identycznych plików? + + + + + Du wirst folgendes sehen: +.git/objects/aa/823728ea7d592acc69b36875a482cdf3fd5c8d+. + + + Zobaczysz coś takiego: +.git/objects/aa/823728ea7d592acc69b36875a482cdf3fd5c8d+. + + + + + Dumme Fehler verschmutzen meine 'Repositories'. + + + Głupie błędy zaśmiecają moje repozytoria. + + + + + Durch Bilden von SHA1-Hash-Werten aus den SHA1-Hash-Werten anderer Objekte, erreichen wir Integrität auf allen Ebenen. + + + Poprzez tworzenie kluczy SHA1 z kluczy SHA1 innych objektów, osiągniemy integralność danych na wszystkich poziomach. + + + + + Durch cleveres verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine Versionsgeschichte mit dem original 'Repository' teilt: + + + Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + + + + + Durch das Herauspicken der Rosinen kannst du einen 'Branch' konstruieren, der nur endgültigen Code enthält und zusammengehörige 'Commits' gruppiert hat. + + + Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + + + + + Durch die Verwendung von Identitätsnummern als Dateiname, zusammen mit ein paar Sperrdateien und Zeitstempeltricks, macht Git aus einem einfachen Dateisystem eine effiziente und robuste Datenbank. + + + Poprzez wykorzystanie tych numerów identyfikacyjnych jako nazwy plików razem z kilkoma innymi trikami związanymi z plikami blokującymi i znacznikami czasu, Git zamienia twój prosty system plików na produktywną i solidną bazę danych. + + + + + Dustin Sallings, Alberto Bertogli, James Cameron, Douglas Livingstone, Michael Budde, Richard Albury, Tarmigan, Derek Mahar, Frode Aannevik, Keith Rarick, Andy Somerville, Ralf Recker, Øyvind A. Holm, Miklos Vajna, Sébastien Hinderer, Thomas Miedema, Joe Malin, und Tyler Breisacher haben Korrekturen und Verbesserungen beigesteuert. + + + Dustin Sallings, Alberto Bertogli, James Cameron, Douglas Livingstone, Michael Budde, Richard Albury, Tarmigan, Derek Mahar, Frode Aannevik, Keith Rarick, Andy Somerville, Ralf Recker, Øyvind A. Holm, Miklos Vajna, Sébastien Hinderer, Thomas Miedema, Joe Malin, i Tyler Breisacher przyczynilli się do poprawek i korektur. + + + + + EOT + + + EOT + + + + + Ebenso grundlegende Funktionen wie das Durchsuchen der Chronik oder das 'comitten' einer Änderung. + + + Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. + + + + + Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu überschreiben, wenn das einen Datenverlust zur Folge hat. + + + Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. + + + + + Ebenso, wenn Git Dateien vergessen soll: + + + To samo, gdy chcesz by GIT zapomnial o plikach: + + + + + Eigenarten der Anwendung + + + Charakterystyka zastosowania + + + + + Ein 'Commit' kann mehrere Eltern haben, welchem folgen wir also? + + + 'commit' moze posiadac wiecej rodzicow, za którym właściwie iść? + + + + + Ein 'Commit' ohne die *-a* Option führt nur den zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + + + Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + + + + + Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem zentralisierten Versionsverwaltungssystem: Das Zuhause deines Projekts. + + + BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu + + + + + Ein Auto, das repariert werden soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. + + + Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. + + + + + Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + + + Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + + + + + Ein Liste aller 'Branches' bekommst du mit: + + + Listę wszystkich BRANCHES otrzymasz poprzez: + + + + + Ein Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die Konstruktion fortgesetzt werden kann. + + + Prototyp musi czekac na wyprodukowanie części zanim mozna podjac dalsza konstrukcje. + + + + + Ein SHA1-Hash-Wert selbst ist eine Zeichenfolge von Bytes. + + + sam kluch SHA1 też jest łańcuchem znaków w formie Bajtów. + + + + + Ein Versionsverwaltungssystem zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die periodisch von einer Webcam gemacht werden. + + + Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + + + + + Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche die Form einer großen Binärdatei annimmt. + + + Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. + + + + + Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. + + + Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. + + + + + Ein beliebter Vertreter ist +workdir/git-new-workdir+. + + + Ulubionym przedstawicielem jest +workdir/git-new-workdir+. + + + + + Ein dummer Aberglaube + + + Głupi przesąd + + + + + Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden um die am häufigsten benutzten Anweisungen zu verkürzen: + + + Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + + + + + Ein einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und so weiter. + + + Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. + + + + + Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die so ein System bietet. + + + Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. + + + + + Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, bezogen auf 'Commits', hält sich Git nicht an diese Konvention. + + + Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. + + + + + Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein Arbeitsverzeichnis hat. + + + Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego + + + + + Ein negativer Rückgabewert beendet die 'bisect'-Operation sofort. + + + Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + + + + + Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. + + + O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. + + + + + Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. + + + powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. + + + + + Ein unmittelbarer Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist keine Kommunikation mit dem Hauptserver notwendig. + + + Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + + + + + Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. + + + Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. + + + + + Ein zuverlässiges, vielseitiges Mehrzweck-Versionsverwaltungswerkzeug, dessen außergewöhnliche Flexibilität es schwierig zu erlernen macht, ganz zu schweigen davon, es zu meistern. + + + Niezawodne, wielostronne narzędzie do kontroli wersji, jego niezwykła elastyczność sprawia trudności w poznaniu, nie wspominając o samym użyciu. + + + + + Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. + + + Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. + + + + + Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach verändert werden kann. + + + Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. + + + + + Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + + Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + + + + + Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen jedes nur die in Beziehung stehenden Dateien enthält. + + + Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. + + + + + Eine Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + + + Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + + + + + Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git 'Repositories' arbeiten. + + + Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git + + + + + Eine gute erste Annäherung ist, dass alles was eine zentralisierte Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. + + + Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. + + + + + Eine unzuverlässige Internetverbindung stört mit Git nicht sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig wie ein lokale Festplatte sein sollte. + + + Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. + + + + + Einen Klon zu erstellen ist aufwendiger als in anderen Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + + + Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + + + + + Einen SHA1-Hash-Wert kann man sich als eindeutige 160-Bit Identitätsnummer für jegliche Zeichenkette vorstellen, welche Dir in Deinem ganzen Leben begegnen wird. + + + Klucz hashujący SHA1 mogłabyś wyobrazić sobie jako składający się ze 160 bitów numer identyfikacyjny jednoznacznie opisujący dowolny łańcuch znaków, i który spotkasz w sowim życiu jeden jedyny raz. + + + + + Eines Tages brauchst du vielleicht dringend einen Schraubendreher, dann bist du froh mehr als nur einen einfachen Flaschenöffner bei dir zu haben. + + + Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + + + + + Einfach: + + + Proste; + + + + + Einfacher geht das mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + + Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + + + + + Einfaches Veröffentlichen + + + Uproszczone publikowanie + + + + + Einige Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für unterschiedliche Webseiten. + + + Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron + + + + + Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik ein, mit allen Fehlern, Nachteilen und Mängeln. + + + Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. + + + + + Einige Git Anweisungen lassen Dich ihn manipulieren. + + + Niektóre komendy git pozwolą ci nim manipulować. + + + + + Einige Projekte erfordern, dass dein Code überprüft werden muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + + + Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, nim bedziesz mogl zaczac z następną część. + + + + + Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf irgendeine Weise für die Bearbeitung zu kennzeichnen. + + + Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. + + + + + Einige lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. + + + Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. + + + + + Einige plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für seine Arbeit einen neuen 'Branch' anzulegen. + + + Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + + + + + Einleitung + + + Wprowadzenie + + + + + Entfernte 'Branches' + + + Oddalone 'Branches' + + + + + Entschuldigung, wir sind umgezogen. + + + Przepraszamy, przeprowadziliśmy się + + + + + Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten offiziellen Änderungen dort hin. + + + Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. + + + + + Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten. + + + Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + + + + + Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' Anweisungen. + + + Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. + + + + + Er muss sicher sein, aber nicht privat. + + + Musi być bezpieczne, jednak nie musi być prywatne + + + + + Erinnere Dich an das erste Kapitel: + + + Przypomnij sobie pierwszy rozdział: + + + + + Erinnere Dich, dass ein 'Pull' hinter den Kulissen einfach ein *fetch* gefolgt von einem *merge* ist. + + + Przypomnij sobie, że 'pull' za kulisami to to samo co 'fetch' z następującym za nim *merge*. + + + + + Erste Schritte + + + Pierwsze kroki + + + + + Erstelle ein Git 'Repository' für deine Dateien: + + + Utwóż GIT REPOSITORY dla twoich danych + + + + + Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen Rechner. + + + Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. + + + + + Erstelle eine Dummy-Datei um dieses Problem zu umgehen. + + + Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + + + + + Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + + + Es enthält nur Dateien, die normalerweise im '.git' Unterverzeichnis versteckt sind. + + + Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. + + + + + Es gibt drei Arten von Objekten die uns betreffen: 'Blob'-, 'Tree'-, und 'Commit'-Objekte. + + + Istnieją trzy rodzaje objektów, które nas interesują: 'blob', 'tree'-, i 'commit'. + + + + + Es gibt geringfügige Unterschiede bei mbox-basierten eMail Anwendungen, aber wenn Du eine davon benutzt, gehörst Du vermutlich zu der Gruppe Personen, die damit einfach umgehen können ohne Anleitungen zu lesen.! + + + Występują minimalne różnice między aplikacjami emailowymi bazującymi na mbox, ale jeśli korzystasz z takiej, należysz do grupy ludzi która za pewne umią się z nimi obchodzić bez czytania instrukcji! + + + + + Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + + + O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + + + + + Es gibt mindestens 3 Lösungen. + + + Istnieja przynajmniej 3 rozwiazania. + + + + + Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der ganze Verlauf geklont wird. + + + Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + + + + + Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das Ergebnis ist das selbe. + + + Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. + + + + + Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit 'tarball' Archiven oder *rsync* zu arbeiten. + + + Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. + + + + + Es ist als ob der Hauptserver gespiegelt wird. + + + Wygląda to jak klonowanie serwera. + + + + + Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel. + + + Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. + + + + + Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu erweitern. + + + Dość łatwo zastosować tą samą sztuczkę na dowolną ilość części. + + + + + Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen wäre. + + + Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 'commit' wcześniej utworzyć 'branch'- + + + + + Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu sehen was auf dem anderen Kanal los ist. + + + Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. + + + + + Es können noch weitaus kompliziertere Situationen entstehen. + + + Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. + + + + + Es liegt an dir diese weise zu nutzen. + + + Stosowanie tej możliwości zależy od ciebie + + + + + Es sei denn die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, oder die `--bare` Option wird übergeben. + + + Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + + + + + Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. + + + Wyglada jakbysmy ten plik zmienili i wykonali 'commit' + + + + + Es sieht so aus als müsste man nur ein paar Kommandozeilenskripte zusammenmixen, einen Schuß C-Code hinzufügen und innerhalb ein paar Stunden ist man fertig: eine Mischung von grundlegenden Dateisystemoperationen und SHA1-Hash-Berechnungen, garniert mit Sperrdateien und Synchronisation für Stabilität. + + + Wygląda to jak połączenie kilku skryptów, troszeczkę kodu C i w przeciągu kilku godzin jesteśmy gotowi: zmiksowanie podstawowych operacji na systemie danych obliczenia SHA1, przyprawione danymi blokującymy i synchronizacją dla stabilności. + + + + + Es stellt sich heraus, dass diese Notation immer den ersten Elternteil wählt. + + + Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. + + + + + Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. + + + Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. + + + + + Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, erstelle temporären Code und so weiter und 'commite' deine Änderungen oft. + + + Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. + + + + + Fahren wir fort mit der Annahme, Du hast eine Datei ``rose'' genannt. + + + Pójdźmy dalej, zakładając, że jedną z tych danych nazwałeś ``rose''. + + + + + Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können Verwirrungen entstehen. + + + Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + + + + + Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen: + + + Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + + + + + Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes: + + + Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + + + + + Filtere sie durch http://www.zlib.net/zpipe.c[zpipe -d], oder gib ein: + + + Przefiltruj je najpierw przez http://www.zlib.net/zpipe.c[zpipe -d], albo wpisz: + + + + + Finde heraus was du seit dem letzten 'Commit' getan hast: + + + Znajdz co zrobiles od ostatniego COMMIT: + + + + + Firewalls könnten uns stören und was, wenn wir gar keine Berechtigung für eine Serverkonsole haben. + + + Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + + + + + Folgen wir dem Pfad der differierenden SHA1-Hash-Werte, finden wir die verstümmelte Datei, wie auch den 'Commit', in dem sie erstmals auftauchte. + + + Wystrarczy teraz prześledzić ścieżkę różniących się kluczy SHA1, odnajeźć okaleczony plik, jak i 'commit' w którym po raz pierwszy wystąpił. + + + + + Folglich ist standardmäßig das 'Pushen' per Git-Protokoll verboten. + + + Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + + + + + Fortgeschrittenes Rückgängig machen/Wiederherstellen + + + Zaawansowane usuwanie/przywracanie + + + + + François Marier unterhält das Debian Packet, das ursprünglich von Daniel Baumann erstellt wurde. + + + François Marier jest mentorem pakietu Debiana, który uprzednio utworzony został przez Daniela Baumann. + + + + + Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. + + + Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. + + + + + Führe *git add* aus um sie hinzuzufügen und dann die vorhergehende Anweisung. + + + Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + + + + + Führe die Anweisungen des anderen Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale 'Repository' zu übertragen. + + + Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + + + + + Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst leeren Git 'Repository'. + + + Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY + + + + + Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und "A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen Bereich. + + + Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. + + + + + Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + + Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + + + + + Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. + + + Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. + + + + + Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt wird. + + + Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok + + + + + Für eine vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur Versionsverwaltung]. + + + Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + + + + + Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. + + + Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. + + + + + Für jede überwachte Datei speichert Git Informationen wie deren Größe, ihren Erstellzeitpunkt und den Zeitpunkt der letzten Bearbeitung in einer Datei die wir als 'Index' kennen. + + + Dla każdego kontrolowanego pliku, Git zapamiętuje informacje o jego wielkości, czasie utworzenia i czasie ostatniej edycji w pliku znanym nam jako index. + + + + + Für jetzt, merke dir + + + zapamietaj jednak na razie, że: + + + + + Für meine Projekte bevorzuge ich es, wenn Unterstützer 'Repositories' vorbereiten, von denen ich 'pullen' kann. + + + W moich projektach preferuję, gdy pomagający mi programiści przygotują własne repozytoria, z których mogę wykonać 'pull'. + + + + + Für reale Projekte solltest Du solche Anweisungen üblicherweise vermeiden, da Du dadurch Datensicherungen zerstörst. + + + W prawdziwych projektach powinnaś unikać takich komend, poonieważ zniszczą zabezpieczone dane. + + + + + Für tiefer gehende Erklärungen verweise ich auf das http://www.kernel.org/pub/software/scm/git/docs/user-manual.html[englischsprachige Benutzerhandbuch]. + + + Dla pogłębienia tematu odsyłam na http://www.kernel.org/pub/software/scm/git/docs/user-manual.html[anielskojęzychny podręcznik użytkownika]. + + + + + Gegründet und betrieben von einem der ersten Git Entwickler. + + + Założona i uprawiana przez jednego z pierwszych deweloperów Git. + + + + + Geheime Quellen + + + Utajnione Zródła + + + + + Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus der Geschichte zu löschen. + + + Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. + + + + + Genau deswegen gibt es Releasezyklen. + + + Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. + + + + + Genauso wenig setzt das 'Clonen' des zentralen 'Repository' dessen Bedeutung herab. + + + Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + + + + + Generell sollten Referenzen mit *git update-ref -d* gelöscht werden, auch wenn es gewöhnlich sicher ist +refs/original+ von Hand zu löschen. + + + Generalnie do kasowania referencji powinnaś używać *git update-ref -d*, nawet gdy ręczne usunięcie +ref/original+ jest dość bezpieczne. + + + + + Geschichte machen + + + Tworzyć historię + + + + + Geschichtsstunde + + + Lekcja historii + + + + + Gewagte Kunststücke + + + Śmiałe wyczyny + + + + + Gib ein: + + + Za pomoc + + + + + Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut ('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas zwischen 1 und 127 für 'bad'. + + + Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. + + + + + Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. + + + GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* + + + + + Git für Fortgeschrittene + + + Git dla zaawansowanych + + + + + Git hat mir bewundernswert gedient und hat mich bis jetzt noch nie im Stich gelassen. + + + Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. + + + + + Git ist 'assoziativ': Dateien werden nicht nach Ihren Namen gespeichert, sondern eher nach dem SHA1-Hash-Wert der Daten, welche sie enthalten, in einer Datei, die wir als 'Blob'-Objekt bezeichnen. + + + Git pracuje asocjacyjnie (skojarzeniowo): dane nie są zapamiętywane na podstawie ich nazwy, tylko wartości ich własnego klucza SHA1 w pliku, który określamy mianem objektu 'blob'. + + + + + Git kommt beim 'Commit' dazu sich um die Dateinamen zu kümmern: + + + Podczas wykonywania 'commit' Git troszczy się o nazwy plików: + + + + + Git lässt dich genauso arbeiten, wie du es willst. + + + GIT pozwoli ci pracować dokładnie tak jak chcesz. + + + + + Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + + + GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + + + + + Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben: + + + Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + + + + + Git referenziert Änderungen anhand ihres SHA1-Hash, was in vielen Fällen besser ist. + + + Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + + + + + Git ruft eine Stand ab, der genau dazwischen liegt. + + + Git przywoła stan, który leży dokładnie pośrodku. + + + + + Git speichert den Dateiinhalt nur ein einziges Mal. + + + Git zapamięta zawartość pliku wyłącznie jeden raz. + + + + + Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. + + + Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` + + + + + Git stöbert Umbenennungen und Kopien zwischen aufeinander folgenden Versionen heuristisch auf. + + + Git poszukuje heurystycznie zmian nazw w następującymch po sobie wersjach kopii. + + + + + Git tauscht selten Daten direkt zwischen Deinem Projekt und seiner Versionsgeschichte aus. + + + Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. + + + + + Git unter Microsoft Windows kann frustrierend sein: + + + Korzystanie z GIT pod Microsoft Windows może być frustrujące: + + + + + Git versetzt dich wieder auf einen Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert so die Möglichkeiten. + + + Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. + + + + + Git versteht beide Gesichtspunkte. + + + Git jest wyrozumiały dla oby dwuch stron. + + + + + Git von Anfang an zu benutzen, ist wie ein Schweizer Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen geöffnet werden. + + + Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. + + + + + Git war das erste Versionsverwaltungssystem, das ich benutzt habe. + + + Git był pierwszym systemem kontroli wersji którego używałem. + + + + + Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die Details selbst erarbeiten. + + + Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. + + + + + Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der Änderungen. + + + Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. + + + + + Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von 20 Null-Bytes gesetzt. + + + Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash + + + + + Git über SSH, HTTP + + + Git przez SSH, HTTP + + + + + Git über alles + + + Git ponad wszystko + + + + + Git überwacht immer das ganze Projekt, was normalerweise schon von Vorteil ist. + + + GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + + + + + Git's Geheimnisse scheinen zu einfach. + + + Tajemnice Gita wydają się być proste. + + + + + Git's Wurzeln + + + Korzenie Git + + + + + GitHub hat eine Schnittstelle, die das erleichtert: Erzeuge deine eigene 'Fork' vom "gitmagic" Projekt, 'pushe' deine Änderungen, dann gib mir Bescheid, deine Änderungen zu 'mergen'. + + + GitHub posiada interfejs, który to ułatwi: utwórz twój własny 'Fork' projektu "gitmagic", 'push' twoje zmiany i daj mi znać, by je 'mergen'. + + + + + Globaler Zähler + + + Licznik globalny + + + + + Glücklicherweise hat Git eine Abkürzung dafür, die genauso komfortabel ist wie eine Fernbedienung: + + + Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + + + + + Glücklicherweise ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + + + Na szczęście jest to silną stroną git i chyba jego racją bytu. + + + + + Hast Du es zu lange versäumt zu 'comitten'? + + + Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? + + + + + Hast Du so versessen programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? + + + Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? + + + + + Hast du es satt, wie sich ein Projekt entwickelt? + + + Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt + + + + + Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung eingegeben? + + + Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? + + + + + Hast du gravierende Änderungen vor? + + + Masz zamiar dokonania wielu zmian? + + + + + Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes angezeigt hat? + + + Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? + + + + + Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu zerstören. + + + Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. + + + + + Hinzufügen, Löschen, Umbenennen + + + Dodac, skasowac, zmienic nazwe + + + + + Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die Forschung SHA1 komplett unnütz macht. + + + Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + + + + + Hätte ich mein Projekt fertig gestellt, wäre ich trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + + + Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + + + + + Hättest du nur die Funktion während der Entwicklung getestet. + + + A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + + + + + Ich 'merge' meine eigenen Änderungen und führe eventuell weitere Änderungen durch. + + + Wykonuję 'merge' moich własnych zmian i przeprowadzam ewentualnie dalsze zmiany. + + + + + Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. + + + By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. + + + + + Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin süchtig nach schellen Ausführungszeiten. + + + Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + + + + + Ich bin erstaunt, dass so viele Leute an der Übersetzung dieser Seiten gearbeitet haben. + + + Jestem mile zaskoczony, że tak dużo ludzi pracowało nad przetłumaczeniem tych stron. + + + + + Ich bin schnell in die Anwendung hineingewachsen und betrachtete viele Funktionen als selbstverständlich. + + + Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. + + + + + Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur als akademische Übungen. + + + Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. + + + + + Ich empfehle folgende Schritte um diese Anleitung zu übersetzen, damit meine Skripte einfach eine HTML- und PDF-Version erstellen können. + + + Aby przetłumaszyć mije HOWTO polecam wykonanie następujących ponniżej kroków, wtedy moje skrypty będą w prosty sposób mogły wygenerować wersje HTML i PDF. + + + + + Ich habe diese Phänomen aus erster Hand erfahren. + + + Dowiedziałem się o tym fenomenie z pierwszej ręki. + + + + + Ich habe einfach vorausgesetzt, dass andere Systeme ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht anders sein als die Auswahl eines Texteditors oder Internetbrowser. + + + Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + + + + + Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. + + + Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. + + + + + Ich hatte noch keinen Grund zu wechseln. + + + Nie miałem jeszcze powodu do zmiany. + + + + + Ich musste lernen, wie man Projekte verwaltet, an denen mehrere Entwickler aus aller Welt beteiligt waren. + + + Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. + + + + + Ich nehme alles zurück + + + Wycofuję wszystko co na ten temat powiedziałem. + + + + + Ich spiele Computerspiele schon fast mein ganzes Leben. + + + Gram w gry komputerowe przez całe moje życie. + + + + + Ich vermute, dass ich damit nicht alleine bin und der Vergleich hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + + + Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + + + + + Ich war geschockt, als ich später gezwungen war ein zentralisiertes System zu benutzen. + + + Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. + + + + + Ich war versucht, euch hier alle aufzuzählen, aber das könnte Erwartungen in unermesslichem Umfang wecken. + + + Chciałem was tu wszystkich wyszczegąlnić, mogłoby to jednak wzbudzić oczekiwania w szerokim zakresie. + + + + + Ich weiß es zu würdigen, dass ich, dank der Bemühungen der oben genannten, einen größeren Leserkreis erreiche. + + + bardzo doceniam to, że dzięki staraniom tylu wyżej wymienionych osób mam możliwość osiągnąć większy zakres czytelników. + + + + + Ich werde nicht ins Detail gehen. + + + Nie będę wchodził w szczegóły. + + + + + Im Gegensatz dazu habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu benutzen. + + + W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. + + + + + Im Gegensatz dazu hält Git seinen Verlauf einfach im `.git` Verzeichnis von Deinem Arbeitsverzeichnis. + + + W przeciwieństwie do tego, Git posiada kronikę całej swojej historii w podkatalogu .git twojego katalogu roboczego. + + + + + Im Gegensatz zu den meisten Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem Speicherplatz umzugehen. + + + W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. + + + + + Im Gegensatz zu vielen anderen Versionsverwaltungssystemen funktioniert diese Operation offline, es wird nur von der lokalen Festplatte gelesen. + + + W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + + + + + Im letzten Fall zeigt der SHA1-Hash-Wert auf ein 'Tree'-Objekt. + + + W ostatnim przypadku klucz SHA1 wskazuje na objekt 'tree'. + + + + + Immerhin sind 'Clone' fast genauso schnell und du kannst mit *cd* anstelle von esoterischen Git Befehlen zwischen ihnen wechseln. + + + Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + + + + + In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die Standardaktion. + + + W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. + + + + + In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die Fertigstellung des ersten Schritt warten. + + + W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego + + + + + In der Git Welt zu bleiben ist etwas bequemer als 'Patch'-Dateien, denn es erspart mir sie in Git 'Commits' zu konvertieren. + + + Pozostając w świecie Gita jest wygodniejsze niż otrzymywanie patchów, ponieważ zaoszczędza mi to konwertowanie ich do 'commits' Gita. + + + + + In der Praxis möchtest Du aber das "refs/heads/" entfernen und Fehler ignorieren: + + + W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + + + + + In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' gehalten werden und die Binärdatei außerhalb des Projekts. + + + W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. + + + + + In diesem Fall verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber sehr flexibel. + + + W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. + + + + + In diesem Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. + + + W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. + + + + + In diesem Fall, gib folgendes ein: + + + W tym wypadku użyj komendy: + + + + + In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und Konvertierungswerkzeugen und so weiter. + + + W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. + + + + + In ein paar Jahren hat vielleicht schon ein ganz normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' unbemerkt zu korrumpieren. + + + Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + + + + + In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. + + + W sali sądowej można pewne zdarzenia wykreślić z akt. + + + + + In einem Git 'Repository' gib ein: + + + W repozytorium git natomiast podajesz: + + + + + In einem leeren Verzeichnis: + + + W pustym katalogu: + + + + + In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der Chronik eine schwierige Angelegenheit und den Administratoren vorbehalten. + + + W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. + + + + + In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach einem bestimmten Punkt durch Eingabe von: + + + W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + + + + + In extremen Fällen trifft das auch auf die grundlegenden Anweisungen zu. + + + W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. + + + + + In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen 'bundlest', die in den anderen 'Repositories' fehlen. + + + W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. + + + + + In irgendeinem Verzeichnis: + + + W jakimkolwiek katalogu: + + + + + In manchen Systemen benötigt der Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu sehen oder um eine Datei zum Bearbeiten zu öffnen. + + + W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + + + + + In unserem Beispiel ist der Dateityp 100644, was bedeutet, dass `rose` eine normale Datei ist und der SHA1-Hash-Wert entspricht dem 'Blob'-Objekt, welches den Inhalt von `rose` enthält. + + + W naszym przykładzie typ pliku to 100644, co oznacza, że `rose` jest plikiem zwykłym, natomiast klucz SHA1 odpowiada kluczowi SHA1 objektu 'blob' zawierającego zawartość `rose`. + + + + + In vielen Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + + + W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + + + + + In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation um Dateien zu bekommen. + + + W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. + + + + + Indizierung + + + Indeksowanie + + + + + Initialer 'Commit' + + + Pierwszy 'commit' + + + + + Integrität + + + Integralność + + + + + Intelligenz + + + Inteligencja + + + + + Irgendwann wirst du dann mit den anderen synchronisieren wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen Versionsverwaltungssystem und gib ein: + + + Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + + + + + Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' werden: + + + Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + + + + + Irgendwo speicherte ein Server alle gespeicherten Spiele, sonst niemand. + + + Jeden serwer zapamiętywał wszystkie gry, nikt inny. + + + + + Irren ist menschlich und so kann es vorkommen, dass du zurück zu Teil I willst um einen Fehler zu beheben. + + + Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. + + + + + Je mehr gespeicherte Spiele benötigt werden, desto mehr Kommunikation ist erforderlich. + + + Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + + + + + Jede Datei einzeln nachzuprüfen ist frustrierend und ermüdend. + + + Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. + + + + + Jede Datei in `.git/objects` ist ein 'Objekt'. + + + Każdy plik w `.git/objects` jest 'objektem'. + + + + + Jeder 'Clone' deines Codes ist eine vollwertige Datensicherung. + + + Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa + + + + + Jeder 'Commit' ab jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen Namen geben können. + + + Kazdy wykonyny od teraz 'commit' prowadzi twoje dane inna droga, ktorej później jeszcze mozemy nadac nazwe. + + + + + Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git log* angezeigt werden. + + + Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. + + + + + Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für alle relevant. + + + Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + + + + + Jeder Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. + + + Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. + + + + + Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. + + + Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. + + + + + Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses Null-'Commits'. + + + Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + + + + + Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert hat. + + + Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + + + + + Jeder kann oberflächliche Klone erstellen, die nur wenig oder gar nichts vom Verlauf des Projekts enthalten. + + + Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. + + + + + Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. + + + Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany + + + + + Jedoch kann es nicht alle Fälle abdecken, aber es leistet ordentliche Arbeit und diese Eigenschaft wird immer besser. + + + Mimo iż wykonuje kawał dobrej roboty, a ta właściwość staje się coraz lepsza, nie potrafi niestety jeszcze poradzić sobie z wszystkimi możliwymi przypadkami. + + + + + Jegliche Version Deiner Daten wird in der Objektdatenbank gehalten, welche im Unterverzeichnis `.git/objects` liegt; Die anderen Orte in `.git/` enthalten weniger wichtige Daten: den Index, 'Branch' Namen, Bezeichner ('tags'), Konfigurationsoptionen, Logdateien, die Position des aktuellen 'HEAD Commit' und so weiter. + + + Każda wersja twoich danych jest przechowywana w objektowej bazie danych, która znajduje sie w podkatalogu `.git/objects`. Inne miejsca w `.git/` posiadają mniej ważne dane, jak indeks, nazwy gałęzi ('branch'), tagi, logi,konfigurację, aktualną pozycję HEAD i tak dalej. + + + + + Jemanden zu fotografieren stiehlt nicht dessen Seele. + + + Fotografując kogoś nie kradziemy jego duszy. + + + + + Jetzt lass uns das Problem etwas komplizierter machen. + + + Skomplikujmy teraz trochę cały ten problem. + + + + + KOPF-Jagd + + + Łowcy głów + + + + + Keine Sorge, gib ein: + + + Nie ma sprawy, wpisz polecenie: + + + + + Keine Sorge: Für solche Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + + Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + + + + + Klassische Quellcodeverwaltung + + + Klasyczne zarządzanie kodem źródłowym + + + + + Kleinere Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie möglich bewirken. + + + Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + + + + + Kleinere Verfehlungen sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + + + Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + + + + + Kontinuierlicher Arbeitsfluss + + + Nieprzerywany ciąg pracy + + + + + Kopiere alle +txt+-Dateien aus dem "en"-Verzeichnis in das neue Verzeichnis und übersetze diese. + + + Skopiuj wszystkie pliki +txt+ z katalogu "en" do nowoutworzonego katalogu. + + + + + Kurz gesagt, Git hält Deine Daten in dem `.git/objects` Unterverzeichnis, wo Du anstelle von normalen Dateinamen nur Identitätsnummern findest. + + + Krótko mówiąc, Git przechowuje twoje dane w podkatalogu `.git/objects`, gdzie zamiast nazw plików znajdziesz numery identyfikacyjne. + + + + + Kurz gesagt, so lange die 20 Byte, welche den SHA1-Hash-Wert des letzen 'Commit' repräsentieren sicher sind, ist es unmöglich ein Git 'Repository' zu fälschen. + + + Krótko mówiąc, doputy reprezentujące ostatni commit 20 bajtów są zabezpieczone, przefałszowanie repozytorium Gita nie jest możliwe. + + + + + Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein 'bare Repository' ist; andernfalls benutze 'pull'. + + + Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + + + + + Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto und erstellen ein 'Repository' in Deinem Webverzeichnis: + + + Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + + + + + Lasse den -global Schalter weg um diese Einstellungen für das aktuelle 'Repository' zu setzen. + + + Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + + + + + Lasst uns einen Blick riskieren: + + + Zaryzykujmy spojrzenie: + + + + + Leere Unterverzeichnisse + + + Puste katalogi + + + + + Leere Unterverzeichnisse können nicht überwacht werden. + + + Nie ma możliwości wersjonowania pustych katalogów. + + + + + Leider gibt es noch ein paar Problemfälle. + + + Niestety występuje jeszcze kilka innych problemów. + + + + + Leider kenne ich keine solche Erweiterung für Git. + + + Niestety nie są mi znane takie rozszerzenia dla GIT. + + + + + Leute machen kleine Änderungen von Version zu Version. + + + Ludzie robią jednak pomniejsze zmiany z wersji na wersję. + + + + + Lizenz + + + Lizencja + + + + + Lokale Änderungen zum Schluß + + + Końcowe lokalne zmian + + + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + + + M 100644 inline hello.c data <<EOT #include <unistd.h> + + + +M 100644 inline hello.c data <<EOT #include <unistd.h> + + + + + Machst Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + + + Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + + + + + Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' zuletzt gesendet wurde. + + + Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. + + + + + Man kann das aber auch in einem einzigen Schritt ausführen mit: + + + Można to także wykonać za jednyym zamachem: + + + + + Man muss vom Hauptserver das alte gespeicherte Spiel anfordern. + + + Za każdym razem trzeba ściągnąć wszystkie dane z serwera. + + + + + Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. + + + Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales + + + + + Mehrere 'Remotes' + + + Więcej serwerów + + + + + Mein 'Commit' ist zu groß! + + + Mój 'commit' jest za duży! + + + + + Meine Dankbarkeit gilt auch vielen anderen für deren Unterstützung und Lob. + + + Chcałbym podziękować również wszystkim innym za ich pomoc i dobre słowo. + + + + + Meine Einstellungen + + + Moje ustawienia + + + + + Meistens befindet es sich auf einem Server, der nicht viel tut außer Daten zu verbreiten. + + + Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. + + + + + Menschen sind nicht gut im Kontextwechsel. + + + Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + + + + + Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit Git zusammenarbeiten kann. + + + Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT + + + + + Mischmasch Reorganisieren + + + Reorganizacja chaosu + + + + + Mit Git ist 'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + + + Z Git 'merge' jest tak proste, ze wogóle nie zauwazysz, gdy to nastepuje + + + + + Mit anderen Worten, es verwaltet die Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner beliebigen Version. + + + Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + + + + + Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* benannt und gesichert werden kann. + + + Innymi slowami, po przywolaniu starego stanu Git automatychnie zamienia sie w nowy, nienazwany 'branch', ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + + + + + Mit anderen Worten, wir wollen ihre 'Branches' untersuchen ohne dass deren Änderungen in unser Arbeitsverzeichnis einfließen. + + + Innymi słowami, chcemy zbadać ich branches bez importowania ich zmian do naszego katalogu roboczego. + + + + + Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon heute wäre es technisch machbar für finanzkräftige Unternehmen Hash-Kollisionen zu finden. + + + Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach + + + + + Mit der Zeit können einige davon zu offiziellen Anweisungen befördert werden. + + + Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. + + + + + Mit der `hg-git`-Erweiterung kann ein Benutzer von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus 'pullen'. + + + Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + + + + + Mit diesem Zauberwort verwandeln sich die Dateien in deinem Arbeitsverzeichnis plötzlich von einer Version in eine andere. + + + Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. + + + + + Mit ein bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen entspricht. + + + Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + + + + + Mit ein paar Tastendrücken kannst Du mehrere geänderte Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') oder Änderungen einzelner Dateien nachprüfen und hinzufügen. + + + Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. + + + + + Mit einer Webmail Anwendung musst Du eventuell ein Button anklicken um die eMail in ihrem rohen Originalformat anzuzeigen, bevor Du den 'Patch' in eine Datei sicherst. + + + Jeśli stosujesz webmail musisz ewentualnie kliknąć, by pokazać treść niesformatowaną, zanim zapamiętasz patch do pliku. + + + + + Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' einfach, aber das Zusammenfügen ('Mergen') ist schwierig. + + + Za pomoca niektorych systemow kontroli wersji utworzenie nowego 'branch' moze i jest proste, jednak pozniejsze zespolenie ('merge') trudne. + + + + + Mit etwas Glück, wenn Git's Verbreitung zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie vielleicht implementiert. + + + Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + + + + + Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. + + + Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. + + + + + Mit zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server herunterladen. + + + Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. + + + + + Mit zpipe, ist es einfach den SHA1-Hash-Wert zu prüfen: + + + Za pomocą zpipe łatwo sprawdzić klucz SHA1: + + + + + Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das meiste verstanden haben. + + + W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. + + + + + Multitasking mit Lichtgeschwindigkeit + + + Multitasking z prędkością światła + + + + + Musst Du während eines Notfalls improvisieren? + + + Musisz improwizować w nagłym wypadku? + + + + + Möglicherweise reicht ORIG_HEAD nicht aus. + + + Może się zdarzyć, że ORIG_HEAD nie wystarczy. + + + + + Nach dem 'Clonen' eines 'Repositories', wird *git push* oder *git pull* automatisch auf die original URL zugreifen. + + + Po sklonowaniu repozytorium, polecenia *git push* albo *git pull* będą automatycznie wskazywały na orginalne URL. + + + + + Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + + Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + + + + + Nach ein paar Durchläufen wird dich diese binäre Suche zu dem 'Commit' führen, der die Probleme verursacht. + + + Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. + + + + + Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige 'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder irgendetwas anderes. + + + Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + + + + + Nach einer längeren Sitzung hast du einen Haufen 'Commits' gemacht. + + + Po dłuższej sesji zrobiłeś całą masę 'commits'. + + + + + Nachdem ich einen Zweig abgerufen habe, benutze ich Git Anweisungen um durch die Änderungen zu navigieren und zu untersuchen, die idealerweise gut organisiert und dokumentiert sind. + + + Gdy przywołałem moją gałęź korzystam z poleceń Gita dla nawigacji i kontroli zmian, które najłepiej gdy są dobrze zorganizowane i udokumentowane. + + + + + Natürlich funktioniert der Trick für fast alles, nicht nur Skripts. + + + Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + + + + + Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und vielleicht bist du mit einem anderen System besser dran. + + + Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. + + + + + Natürlich sind dann viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' übermittelt werden. + + + Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. + + + + + Natürlich wird der Quelltext in einem Git 'Repository' gehalten und kann abgerufen werden durch: + + + Oczywiście, tekst źródłowy znajduje się w repozytorium Git i może zostać powielone przez: + + + + + Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. + + + Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami + + + + + Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. + + + Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. + + + + + Netzwerkressourcen sind einfach teurer als lokale Ressourcen. + + + Zasoby sieciowe są po prostu droższe niż zasoby lokalne. + + + + + Nicht nur des aktuellen Stand, sondern der gesamten Geschichte. + + + Nie tylko jedo aktualny stan, lecz również jego całą historię. + + + + + Nichts könnte weiter von der Wahrheit entfernt sein. + + + Nic nie jest bardziej oddalone od rzeczywistości. + + + + + Nichtsdestotrotz, abgesehen von geschickten Verpackungstricks um Speicherplatz zu sparen und geschickten Indizierungstricks um Zeit zu sparen, wissen wir nun, wie Git gewandt ein Dateisystem in eine Datenbank verwandelt, das perfekt für eine Versionsverwaltung geeignet ist. + + + Tym niemniej, abstrahując od udanych trików pakujących, by oszczędnie odnosić się z pamięcią i udanych trików indeksujących by zaoszczędzić czas, wiemy jak Git sprawnie przemienia system danych i bazę danych, co jest optymalne dla kontroli wersji. + + + + + Normalerweise füllt man ein Formular auf einer Website aus. + + + Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + + + + + Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den vorhergehenden 'Commit'. + + + Zazwyczaj kazdy 'commit' posiada rodzica-'commit', a mianowicie poprzedni 'commit'. + + + + + Normalerweise können wir den Index ignorieren und so tun als würden wir direkt aus der Versionsgeschichte lesen oder in sie schreiben. + + + Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. + + + + + Normalerweise machen wir einen *pull* weil wir die letzten 'Commits' abrufen und einbinden wollen. + + + W normalnym wypadku wykonalibyśmy *pull*, bo chcielibyśmy przywołać również ostatnie 'commmits'. + + + + + Normalerweise wird ein Skript, das diese Anweisung benutzt, hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem einzigen Lauf zu migrieren. + + + Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + + + + + Normalerweise ändern sich immer nur wenige Dateien zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. + + + W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. + + + + + Nun bist du wieder im `master` 'Branch', mit Teil II im Arbeitsverzeichnis. + + + Znajdujesz się znowu w `master` 'branch', z częścią II w katalogu roboczym. + + + + + Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + + + I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + + + + + Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach Herzenslust. + + + Przejdź teraz do nowego katalogu i pracuj według upodobania. + + + + + Nun gib ein: + + + Podajemy teraz; + + + + + Nun haben wir einen 'Branch' vom zweiten 'Repository' eingebunden und wir haben einfachen Zugriff auf alle 'Branches' von allen 'Repositories': + + + Teraz przyłączyliśmy jeden branch z dwóch repozytorii i uzyskaliśmy łatwy dostęp do wszystkich branch z wszystkich repozytorii. + + + + + Nun kannst Du Deine Arbeit jederzeit wie folgt überprüfen: + + + Teraz możesz swoją pracę w każdej chwili sprawdzić: + + + + + Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus veröffentlichen. + + + Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + + + + + Nun kannst du Fehler beheben, Änderungen vom zentralen 'Repository' holen ('pull') und so weiter. + + + Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. + + + + + Nun kannst du überall wild temporären Code hinzufügen. + + + Teraz mozesz wszedze wprowadzac na dziko kod tymczasowy. + + + + + Nun können wir die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten Stand, aber wir müssen den 'Master Branch' verlassen. + + + Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic 'master branch'. + + + + + Nun müsstest Du die Datei +.git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9+ sehen, denn das ist der SHA1-Hash-Wert ihres Inhalts: + + + Powinnaś zobaczyć teraz plik +.git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9+, ponieważ jest to klucz SHA1 jego zawartości. + + + + + Nun stell dir ein ganz kompliziertes Computerspiel vor. + + + Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. + + + + + Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben Zeile. + + + Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. + + + + + Nur Kleinigkeiten. + + + To szczegół. + + + + + Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab: + + + Nie ma sprawy, jednak najpierw zabezpiecz dane. + + + + + Obwohl das Arbeitsverzeichnis unverändert bleibt, können wir nun jeden 'Branch' aus jedem 'Repository' in einer Git Anweisung referenzieren, da wir eine lokale Kopie besitzen. + + + Mimo, że nasz katalog pozostał bez zmian, możemy teraz referować z każdego repozytorium poprzez polecenia Gita, ponieważ posiadamy lokalną kopię. + + + + + Obwohl es extrem lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, so hat es doch zwei Vorteile: + + + Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + + + + + Obwohl ich nur unregelmäßig Beiträge erhalte, glaube ich, dass diese Methode sich auszahlt. + + + Mimo, iż dość rzadko otrzymuję posty, jestem zdania, że ta metoda się opłaca. + + + + + Obwohl sie automatisch über Bord geworfen werden, wenn ihre Gnadenfrist abgelaufen ist, wollen wir sie nun löschen, damit wir unserem Beispiel besser folgen können. + + + Mimo iż automatycznie zostaną usunięte po upłynięciu okresu łaski, chcemy się ich pozbyć od zaraz, aby lepiej prześledzić następne przykłady. + + + + + Oder Du kannst schauen, was auf dem 'Branch' ``experimentell'' los war: + + + Możesz też sprawdzić co działo się w 'Branch' ``experimental'' + + + + + Oder anders gesagt, du spiegelst den zentralen Server. + + + Lub inaczej mówiąc, odzwierciedlasz zentralny server. + + + + + Oder noch besser, anpacken und mithelfen. + + + Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + + + + + Oder noch schlimmer, deine aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz vorne beginnen. + + + Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + + + + + Oder rufe den fünftletzten 'Commit' ab, mit: + + + Albo przywołaj 5 ostatnich 'commits' za pomocą: + + + + + Oder seit Gestern: + + + Albo od wczoraj + + + + + Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel ein Spieler geleistet hat. + + + Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + + + + + Oder zwischen irgendeiner Version und der vorvorletzten: + + + Albo miedzy jakakolwiek wersja a przedostatnia: + + + + + Patches: Das globale Zahlungsmittel + + + Patches: globalny środek płatniczy + + + + + Persönliche Erfahrungen + + + Osobiste doświadczenia + + + + + Praktisch, http://csdcf.stanford.edu/status/[wenn dieser Server offline ist]. + + + Praktyczne, http://csdcf.stanford.edu/status/[gdyby ten serwer był offline]. + + + + + Praktisch, wenn es keinen Strom gibt. + + + Praktyczna, gdyby zabrakło prądu. + + + + + Prüfe, ob die 'filter-branch' Anweisung getan hat was du wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' Operationen durchführst. + + + Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + + + + + Prüfe, ob diese Datei tatsächlich dem obigen Inhalt entspricht, durch Eingabe von: + + + Sprawdź, czy plik na prawdę odpowiada powyższej zawartości przez polecenie: + + + + + Quellcode veröffentlichen + + + +Publikowanie kodu źródłowego + + + + + Rund ums 'Clonen' + + + Polecenie CLONEN + + + + + Rückgängig machen + + + Przywracanie + + + + + SHA1 Schwäche + + + Słabości SHA1 + + + + + Sagen wir du bist im `master` 'Branch'. + + + Powiedzmy też, że znajdujesz sie w 'master branch'. + + + + + Sagen wir, du hast einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt oder Dateien einer Website. + + + Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. + + + + + Schließlich, Teil I ist zugelassen: + + + Wreszcie, dopuszczamy część I: + + + + + Schmutzarbeit + + + Brudna robota + + + + + Schnelle Fehlerbehebung + + + Szybkie poprawianie bledow. + + + + + Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. + + + Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. + + + + + Sei auch vorsichtig, wenn Du +.git+ direkt manipulierst: was, wenn zeitgleich ein Git Kommando ausgeführt wird oder plötzlich der Strom ausfällt? + + + Bądź też ostrożna przy bezpośredniej manipulacji +.giz+: gdy równocześnie wykonywane jest polecenie Git i zgaśnie światło? + + + + + Sei vorsichtig, wenn Du 'checkout' auf diese Weise benutzt. + + + Bądź ostrożny stosując 'checkout' w ten sposób. + + + + + Sein Inhalt hängt von der 'Commit'-Beschreibung ab, wie auch vom Zeitpunkt der Erstellung. + + + Jego zawartość jest zależna od opisu 'commit' jak i czasu jego wykonania. + + + + + Sicher, Du hast vielleicht *git mv* benutzt, aber das ist exakt das selbe wie *git rm* gefolgt von *git add*. + + + Oczywiście, być może użyłaś polecenia *git mv*, jest to jednak to samo jakbyś użyła *git rm*, a następnie *git add*. + + + + + Sie alle haben bequeme Schnittstellen um Ordner voller Dateien zu verwalten. + + + Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. + + + + + Sie müssen irgendwo gespeichert sein. + + + Przecież muszą być gdzieś zapisane. + + + + + Siehe *git help branch*. + + + Zobacz: *git help branch*. + + + + + Siehe *git help diff* und *git help rev-parse*. + + + Sprawdź *git help diff* i *git help rev-parse*. + + + + + Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine schnellere Methode vorstellt wird. + + + Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. + + + + + Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die ignoriert werden sollen. + + + Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + + + + + Siehe *git help remote* um zu sehen wie man Remote-'Repositories' entfernt, bestimmte 'Branches' ignoriert und mehr. + + + Sprawdź *git help remote* by zobaczyć, jak usuwa się repozytoria, ignoruje pewne branches i więcej- + + + + + Siehe *git help stash*. + + + Zobacz *git help stash*. + + + + + Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen Anweisung. + + + Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. + + + + + Siehe auf der Git Hilfeseite für einige Anwendungsbeispiele. + + + Na stronach pomocy git znajdziesz więcej zasosowań. + + + + + Siehe http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[diesen Blog Beitrag von Linus Torvalds (englisch)]. + + + Zobacz http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[Post na Blogu Linusa Torvalds (po angielsku)]. + + + + + Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für mehr. + + + Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + + + + + So konnte ich einfach vorhersagen, was Du sehen wirst. + + + Przez to właśnie mogłem 'przepowiedzieć' wynik. + + + + + So schwierig zu lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das Spiel zu beenden. + + + Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. + + + + + So wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' mit abweichender Chronik hat und die Zweige sich austauschen sollen. + + + Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + + + + + Sogar einige Git Anweisungen selbst sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. + + + Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. + + + + + Sogar mehr als das: jegliche Zeichenfolge, die alle Menschen über mehrere Generationen verwenden. + + + Nawet i więcej niż to: wszystkie łańcuchy znaków, jakie ludzkość przez wiele generacji stworzyła. + + + + + Solange Deine Mitstreiter ihre eMails lesen können, können sie auch Deine Änderungen sehen. + + + Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. + + + + + Solltest du kürzlich konkurrierende Änderungen an der selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut 'commiten' nachdem du die Konflikte aufgelöst hast. + + + Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + + + + + Speichere und Beende. + + + Zapamietaj i zakończ. + + + + + Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von Mitstreitern einbinden. + + + Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów + + + + + Stand sichern + + + Backup + + + + + Standardmäßig beginnst du in einem 'Branch' namens ``master''. + + + Standardowo zaczynasz w BRANCH zwanym MASTER. + + + + + Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. + + + Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. + + + + + Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + + + Standardowo dane te pozostają jeszcze przez 2 tygodnie. + + + + + Standardmäßig nutzt Git Systemeinstellungen um diese Felder auszufüllen. + + + Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. + + + + + Stattdessen stellen wir uns wieder vor, wir editieren ein Dokument. + + + Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + + + + + Stell Dir vor, jemand will den Inhalt einer Datei ändern, die in einer älteren Version eines Projekt liegt. + + + Wyobraź sobie,, ktoś ma zamiar zmienić treść jakiegoś pliku, która leży w jakiejś starszej wersji projektu. + + + + + Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am Dateiende. + + + Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. + + + + + Stell dir zum Beispiel vor, du willst ein Projekt veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen privat bleiben muss. + + + Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. + + + + + Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein Computerspiel vor. + + + Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. + + + + + Stimmen diese Daten überein, kann Git das Lesen des Dateiinhalts überspringen. + + + Jeśli dane te nie różnią się, Git może pominąć czytanie zawartości pliku. + + + + + Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, wird von unzähligen Projekten benutzt. + + + Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. + + + + + Suche Dir einen Dateinamen aus, irgendeinen. + + + Wymyśl jakąś nazwę pliku, jakąkolwiek. + + + + + Tatsächlich beschreibt dies die früheste Version von Git. + + + W sumie można by tak opisać najwcześniejsze wersje Gita. + + + + + Tatsächlich sind wir dem 'Mergen' schon lange begegnet. + + + W gruncie rzeczy spotkalismy sie juz wczesniej z 'merge'. + + + + + Temporäre 'Branches' + + + Tymczasowe BRANCHES + + + + + Teste die Funktion und wenn sich immer noch nicht funktioniert: + + + Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + + + + Tippe: + + + Wpisz: + + + + + Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. + + + Momo ich prostoty, wszystkie sa wazne i pozyteczne. + + + + + Trotz seiner Größe, +einedatei+ enthält das komplette original Git 'Repository'. + + + Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + + + + + Trotzdem gibt es Situationen, in denen es besser ist einen oberflächlichen Klon mit der `--depth` Option zu erstellen. + + + Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. + + + + + Trotzdem kann es langwierig sein, den exakten Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. + + + Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. + + + + + Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe von: + + + Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + + + + + Ultimative Datensicherung + + + Ultymatywny backup danych + + + + + Um Dateien zu bekommen, erstellst du einen 'Clone' des gesamten 'Repository'. + + + By pozyskać dane, tworzysz klon całej REPOSITORY. + + + + + Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. + + + Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, + + + + + Um auf die aktuelle Server-Version zu aktualisieren: + + + Aby zaktualizować do wersji na serwerze: + + + + + Um das Leben zu vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die Firmware. + + + By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + + + + + Um das Löschen zu erzwingen, gib ein: + + + By wymusić skasowanie, podaj: + + + + + Um das Verschieben zu erzwingen, gib ein: + + + By wymusić przesunięcie, podaj: + + + + + Um das zu tun, klickst du auf auf Speichern in deinem vertrauten Editor. + + + W tym celu klikasz na 'zapisz' w wybranym edytorze. + + + + + Um den neuen Stand zu sichern: + + + Aby zapisac nowy stan: + + + + + Um die Objektdatenbank intakt aussehen zu lassen, müssten sie außerdem den SHA1-Hash-Wert des korrespondierenden 'Blob'-Objekt ändern, da die Datei nun eine geänderte Zeichenfolge enthält. + + + By sprawić pozory, że baza danych wygląda nienaruszona. musiałabyś wmienić klucze SHA1 korespondujących objektów, ponieważ plik zawiera teraz zmieniony sznur znaków. + + + + + Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + + By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + + + + + Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + + Lokalne zmiany przekazujemy do serwera poleceniem: + + + + + Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + + Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + + + + Um diese Angaben explizit zu setzen, gib ein: + + + Aby wprowadzić te dane bezpośrednio, podaj: + + + + + Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht. + + + Bedac szczery, w pierwszych miesiacach pracy z GIT nie potrzebowalem zadnych innych poleceń, niz opisane w tym rozdziale + + + + + Um ein tarball-Archiv des Quellcodes zu erzeugen, verwende ich den Befehl: + + + Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + + + + + Um es zu erzwingen, verwende: + + + By zmusić dgo do tego, możesz użyć: + + + + + 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. + + + Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. + + + + + Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + + Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + + + + + Um wieder die Computerspielanalogie anzuwenden: + + + Jeśli znów skorzystamy z analogii do gier komputerkowych: + + + + + Um zu ermitteln, ob eine Datei verändert wurde, vergleicht Git den aktuellen Status mit dem im Index gespeicherten. + + + By ustalić, czy nastąpiła jakaś zmiana, Git porównuje stan aktualny ze stanem zapamiętanym w indeksie. + + + + + Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'. + + + Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + + + + + Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze: + + + By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + + + + + Um zum Beispiel die Anleitung auf http://de.wikipedia.org/wiki/Klingonische_Sprache[Klingonisch] zu übersetzen, mußt du folgendes machen: + + + Aby przykładowo przetłumaczyć to HOWTO na http://de.wikipedia.org/wiki/Klingonische_Sprache[Klingonisch], musisz wykonać następujące polecenia: + + + + + Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + + By na przyklad pokazać logi drugiego rodzica + + + + + Um zum Beispiel die Unterschiede zum ersten Elternteil anzuzeigen: + + + Natomiast, by pokazać roznice do pierwszgo rodzica + + + + + Unbeständige Projekte + + + Niestałe projekty + + + + + Und das ist, wenn Du froh bist, dass Git die ganze Zeit über Dich gewacht hat. + + + A oto chodzi, byś był zadoowolony z tego, że Git cały czas czuwa nad twoją pracą + + + + + Und eigene Sicherungen bereitstellt? + + + Natomiast własne innym udostępni? + + + + + Und wenn der Chef in diesem Verzeichnis herumschnüffelt, tippe: + + + A gdy szef grzebie w twoim katalogu, wpisz: + + + + + Unsichtbarkeit + + + Niewidzialność + + + + + Unter den Befehlen im Zusammenhang mit Git's verteilter Art, brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an unterschiedlichen Orten halten. + + + Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + + + + + Unterschiede sind schnell gefunden, weil nur die markierten Dateien untersucht werden müssen. + + + Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + + + + + Untracked .txt files. + + + untracket.txt files. + + + + + Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden Eigenschaften von Git. + + + niezwloczne 'branch' i MERGEN sa uderzajacymi wlasciwosciami GIT + + + + + Verhindere schlechte 'Commits' + + + Zapobiegaj złym 'commits' + + + + + Verliere nicht Deinen KOPF + + + Nie trać głowy + + + + + Verschiedene Git Hosting Anbieter lassen Dich mit einem Klick deine eigene 'Fork' eines Projekts hosten. + + + Większość hosterów Gita pozwala na utworzenie jednym kliknięciem twojego własnego forka innego projektu. + + + + + Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. + + + Niektóre projekty wymagają pliku historii zmian + + + + + Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit jedem 'Commit' erhöht wird. + + + Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". + + + + + Versionsverwaltung + + + Kontrola wersji + + + + + Versionsverwaltung im Untergrund + + + Zarządzanie wersją w poddziemiu + + + + + Versionsverwaltungen sind nicht anders. + + + Systemy kontroli wersji nie różnią się tutaj zbytnio. + + + + + Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und überlassen die schwierigen uns Menschen. + + + Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. + + + + + Versuche + + + Wypróbuj polecenie: + + + + + Versuche Kopien Deiner Datei hinzuzufügen, mit beliebigen Dateinamen. + + + Spróbuj dodać kopie twojej danej pod jakąkolwiek nazwą. + + + + + Versuche auch: + + + Sprobuj rowniez: + + + + + Verteilte Kontrolle + + + Rozproszona kontrola + + + + + Viele Git Befehle funktionieren nicht in 'bare Repositories'. + + + Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH + + + + + Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. + + + Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. + + + + + Viele Kommandos sind mürrisch vor dem intialen 'Commit'. + + + Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. + + + + + Viele Versionen auf diese Art zu archivieren ist mühselig und kann sehr schnell teuer werden. + + + Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + + + + + Vielen Dank an alle diese Seiten für das Hosten dieser Anleitung. + + + Duże dzięki dla wszystkich tych stron za hosting tego poradnika. + + + + + Vielleicht habe ich meine Kreditkartennummer in einer Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. + + + Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? + + + + + Vielleicht hast Du gerade bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + + + Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + + + + + Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash des letzten 'Commit' verknüpft ist. + + + Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + + + + + Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar ist. + + + Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. + + + + + Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung gesucht, nicht ein Versionsverwaltungssystem. + + + Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. + + + + + Vielleicht kann ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich in der Vergangenheit gebraucht habe. + + + Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + + + + + Vielleicht können Dateiformate geändert werden. + + + Ewentualnie można czasami zmienić format danych. + + + + + Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' abzuarbeiten. + + + Może lubisz odpracować wszystkie aspekty projektu w + + + + + Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' konfigurieren. + + + Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. + + + + + Vielmehr kann es sogar Codeblöcke erkennen, die zwischen Dateien hin und her kopiert oder verschoben wurden! + + + Dodatkowo potrafi czasami nawet znaleźć całe bloki z kodem przenoszonym tam i spowrotem między plikami! + + + + + Vielmehr schreibt Git die Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an ihren eigentlichen Bestimmungsort. + + + Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + + + + + Von Magie nicht zu unterscheiden + + + Nie do odróżnienia od magii + + + + + Von jetzt an wird + + + Od teraz poleceniem: + + + + + Vorwort + + + Przedmowa + + + + + Wann immer du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + + Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + + + + + Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten 'pull'-Befehl zu bleiben? + + + Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? + + + + + Warum ich Git benutze + + + Dlaczego korzystam z GIT + + + + + Warum kann ein Haufen von Dateistatusinformationen ein Bereitstellungsraum sein? + + + Jak to możliwe, że stos informacji o statusie danych może być przechowywalnią? + + + + + Warum mehrere Tabs unterstützen und mehrere Fenster? + + + Dlaczego pozwalają używać tabs albo okien? + + + + + Was habe ich getan? + + + Co ostatnio robilem? + + + + + Was ist mit Git's berühmten Fähigkeiten? + + + A co ze sławnymi możliwościami Gita? + + + + + Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? + + + A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? + + + + + Was, wenn du am Ende die temporären Änderungen sichern willst? + + + A co jesli chcesz zapamietac wprowadzone zmiany? + + + + + Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? + + + A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? + + + + + Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. + + + Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. + + + + + Weil der SHA1-Hash-Wert von: + + + Poniewaś wartość klucza SHA1 dla: + + + + + Weil die 'add' Anweisung Dateien in die Git Datenbank befördert und die Dateistatusinformationen aktualisiert, während die 'commit' Anweisung, ohne Optionen, einen 'Commit' nur auf Basis der Dateistatusinformationen erzeugt, weil die Dateien ja schon in der Datenbank sind. + + + Ponieważ polecenie 'add' transportuje pliki do bazy danych Git i aktualizuje informacje o ich statusie, podczas gdy polecenie 'commit' (bez opcji) tworzy commit tylko wyłącznie na podstawie informacji o statusie plików, ponieważ pliki te już sie w tej bazie znajdują. + + + + + Welche Lösung ist die beste? + + + Ktore rozwiazanie jest najlepsze? + + + + + Wenn Anwender langsame Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss unterbrochen wird. + + + Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + + + + + Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien überwacht. + + + Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. + + + + + Wenn Du 'filter-branch' aufrufst, bekommst Du alte Objekte, welche nicht länger benötigt werden. + + + Jeśli użyjesz polecenia 'filter-branch', otrzymasz stare objekty, które nie są już używane. + + + + + Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + + Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + + + + + Wenn Du ein 'Repository' 'clonst', 'clonst' Du auch alle seine 'Branches'. + + + Jeśli klonujesz repozytorium, klonujesz równierz wszystkie jego 'branches' + + + + + Wenn Du ein sauberes 'Repository' willst, ist es am besten, einen neuen Klon anzulegen. + + + Jeśli chcesz posiadać czyste repozytorium, to najlepiej załóż nowy klon. + + + + + Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + + Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + + + + + Wenn Du zufrieden bist, gib + + + Jeśli jesteś zadowolony z wyniku, wpisz: + + + + + Wenn Spieler vom Hauptserver herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt gespeicherte. + + + Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany + + + + + Wenn alle 'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu lassen, da jegliche Kommunikation über SSH läuft. + + + Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + + + + + Wenn auch nicht so effizient wie mit dem systemeigenen Protokoll, kann Git über HTTP kommunizieren. + + + Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + + + + + Wenn das original 'Repository' verschoben wird, können wir die URL aktualisieren mit: + + + Jeśli orginalne repozytorium zostanie przesunięte, możemy zaktualizować link poprzez: + + + + + Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst um dort einen 'Clone' zu platzieren. + + + Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + + + + + Wenn dein Projekt viele Entwickler hat, musst du nichts tun! + + + Jeśli projekt posiada wielu programistów, nie musisz niczego robić + + + + + Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter Form zu verwenden. + + + Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. + + + + + Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen: + + + Jesli dodales nowe pliki, musisz o tym poinformowac GIT + + + + + Wenn du Glück hast oder sehr gut bist, kannst du die nächsten Zeilen überspringen. + + + Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + + + + + Wenn du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir Konflikte melden. + + + Jesli jednak wprowadziles zmiany, Git bedzie je automatycznie 'merge' i powiadomi cie o eventualnych konfliktach. + + + + + Wenn du deine Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + + Po skończeniu dochodzenia przejdź do orginalnego stanu: + + + + + Wenn du einen 'Commit' mit 'edit' markiert hast, gib ein: + + + Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + + + + + Wenn du fertig bist, + + + A gdy skończysz: + + + + + Wenn du gut voran gekommen bist, willst du das Erreichte sichern. + + + Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. + + + + + Wenn du keine lokalen Änderungen hast, dann ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. + + + Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu kontroli wersji. + + + + + Wenn du nun eine alte Version erhalten willst, musst du den ganzen Ordner archivieren. + + + Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. + + + + + Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit: + + + Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + + + + + Wenn du wieder zurück zu deinen Änderungen willst, tippe: + + + Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + + + + + Wenn ein Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + + + Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + + + + + Wenn es bei Dir nicht funktioniert, versuche Optionen zur aufwendigeren Erkennung von Kopien oder erwäge einen Upgrade. + + + Jeśli to u ciebie nie działa, spróbuj poszukać opcji rozszerzonego rozpoznawania kopii, aktualizacja samegi Git, też może pomóc. + + + + + Wenn es mit einem der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon jemand ein Skript geschrieben hat, das die gesamte Chronik für Git exportiert. + + + Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + + + + + Wenn ich Dich versehentlich vergessen habe, sag' mir bitte Bescheid oder schicke mir einfach einen Patch! + + + Gdybym o tobie przypadkowo zapomniał, daj mi znać albo przyślij mi po prostu patch. + + + + + Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + + Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + + + + + Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger Schaden zugefügt. + + + Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. + + + + + Wenn ich zufrieden bin, 'pushe' ich in das zentrale 'Repository'. + + + Gdy już jestem zadowolony, 'push' do zentralnego repozytorium.- + + + + + Wenn ich zur ursprünglichen Arbeit zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr Zeit beim Versuch mich zu erinnern was ich getan habe. + + + Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. + + + + + Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver eingegangen sind, schlägt dein 'push' fehl. + + + Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. + + + + + Wenn mehrere 'Branches' mit unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' gemacht wird, ist ein manuelles Eingreifen erforderlich. + + + Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + + + + + Wenn nicht, ersetzte "bad" mit "good". + + + Jeśli nie, zamień "bad" na "good". + + + + + Wenn nicht, kannst Du den Verlauf so umschreiben, dass es so aussieht als hättest Du es: + + + Jeśli nie, możesz zmienić opis, by wyglądał jakby był twój: + + + + + Wenn nötig, starte den Git-Dämon: + + + Jeśli konieczne, wystartuj GIT-DAEMON + + + + + Wer bin ich? + + + Kim jestem? + + + + + Wer ist verantwortlich? + + + Kto ponosi odpowiedzialność? + + + + + Wer macht was? + + + Kto robi co? + + + + + Wie 'Clonen', 'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine weitere Stärke, die Git dir bietet. + + + Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. + + + + + Wie Arthur C. Clarke festgestellt hat, ist jede hinreichend fortschrittliche Technologie nicht von Magie zu unterscheiden. + + + Jak stwierdźił Arthur C. Clarke, każda wystarczająco postępowa technologia jest porównywalna z magią. + + + + + Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein 'Repository' ab. + + + W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY + + + + + Wie auch immer, mit Git kannst du nicht viel falsch machen. + + + Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. + + + + + Wie auch immer, vorausgesetzt du hast oft 'comittet', kann Git dir sagen, wo das Problem liegt: + + + Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + + + + + Wie du dir vielleicht schon gedacht hast, verwendet Git 'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + + + Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + + + + + Wie kann Git so unauffällig sein? + + + Jak to możliwe, że Git jest taki niepostrzeżony? + + + + + Wie konnte ich das wissen, ohne den Dateiname zu kennen? + + + Skąd mogłem to wiedzieć, mimo iż nie znałem nazwy pliku? + + + + + Wie macht Git das? + + + Jak Git to robi? + + + + + Wie mit der ``master'' 'Branch' Konvention können wir diesen Spitznamen ändern oder löschen, aber es gibt für gewöhnlich keinen Grund dies zu tun. + + + Tak jak i przy konwencji z ``master'' 'Branch' , możemy ten alias zmienić albo skasować, zwykle jednak nie ma powodów by to robić. + + + + + Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + + Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + + + + + Wie vorhin, kannst Du 'zpipe' oder 'cat-file' benutzen um es für Dich zu überprüfen. + + + Jak i w poprzednich przykładach możesz użyć 'zpipe' albo 'cat-file' by to sprawdzić. + + + + + Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die Sicherungen der anderen bekommt? + + + W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? + + + + + Wieder andere bevorzugen irgendetwas dazwischen. + + + Inni znowu wolą coś pomiędzy. + + + + + Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne Netzwerkverbindung? + + + Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? + + + + + Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. + + + Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 + + + + + Wir erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß permanent. + + + Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + + + + + Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das bekannteste freie verteilte Versionsverwaltungssystem ist. + + + Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + + + + + Wir haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. + + + We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. + + + + + Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer bestimmten Nachricht enthält. + + + Utworzylismy repozytorium posiadające plik z ta zawartoscia + + + + + Wir haben früher festgestellt, dass der Index ein Bereitstellungsraum ist. + + + Stwierdziliśmy już wcześniej, że indeks jest przechowalnią (ang. staging area). + + + + + Wir haben gesehen, dass man mit <<makinghistory, *git fast-export* und *git fast-import* 'Repositories' in eine einzige Datei konvertieren kann und zurück>>. + + + Widzieliśmym, że poleceniami <<makinghistory, *git fast-export* i *git fast-import* możemy konwertować całe repozytoria w jeden jedyny plik i spowrotem>>. + + + + + Wir haben nun zwei von drei Objekten erklärt. + + + Wytłumaczyliśmy dwa z trzech objektów. + + + + + Wir können SHA1-Hash-Werte aus Zeichenfolgen generieren, die selbst SHA1-Hash-Werte enthalten. + + + Możemy generować klucze SHA1 z łańcuchów samych zawierających klucze SHA1. + + + + + Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen: + + + Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + + + + + Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden: + + + Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + + + + + Wir können mehr als ein 'Repository' gleichzeitig beobachten mit: + + + Możemy obserwować więcej niż jedno reposytorium jednocześnie: + + + + + Wir können sogar den hinterhältigsten Gegnern widerstehen. + + + Możemy przetrwać nawet podstępnego przeciwnika. + + + + + Wir können solche Dateien hin und her schicken um Git 'Repositories' über jedes beliebige Medium zu transportieren, aber ein effizienteres Werkzeug ist *git bundle*. + + + W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + + + + + Wir können uns den SHA1-Hash-Wert als eindeutige Identnummer des Dateiinhalts vorstellen, was sinngemäß bedeutet, dass die Dateien über ihren Inhalt adressiert werden. + + + Klucz SHA1 możemy sobie wyobrazić jako niepowtarzalny numer identyfikacyjny zawartości pliku, co oznacza, że pliki adresowane są na podstawie ich zawartości. + + + + + Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das? + + + Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + + + + + Wir müssen die Datei aus allen 'Commits' entfernen: + + + Musimy ten plik usunąć ze wszystkich 'commits': + + + + + Wir müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen 'pullen', also abholen wollen. + + + Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. + + + + + Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung gekommen, als wir das Laden alter Stände besprochen haben. + + + Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow + + + + + Wir werden später sehen, wie Git diese nutzt um effizient die Datenintegrität zu garantieren. + + + Zobaczymy później w jaki sposób wykorzystje je Git dla zapewnienia produktywności i integralności danych. + + + + + Wir werfen einen Blick unter die Motorhaube und erklären, wie Git seine Wunder vollbringt. + + + Rzućmy spojrzenie pod maskę silnika i wytłumaczymy w jaki sposób Git realizuje swoje cuda. + + + + + Wird irgendein 'Clone' beschädigt, wird dies dank des kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit anderen zu kommunizieren. + + + Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + + + + + Wirklich, diese Anweisung kann Klartext-'Repositories' über reine Textkanäle übertragen. + + + Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + + + + + Wo ging alles schief? + + + Gdzie wszystko poszło źle? + + + + + Wo kommt dieser Fehler her? + + + Skąd wziął się ten błąd? + + + + + Wobei SP ein Leerzeichen ist, NUL ist ein Nullbyte und LF ist ein Zeilenumbruch. + + + Przyczym SP to spacja, NUL - to bajt zerowy, a LF to znak nowej linii ('newline'). + + + + + Woher weiß Git, dass Du eine Datei umbenannt hast, obwohl Du es ihm niemals explizit mitgeteilt hast? + + + Skąd Git wie o tym, że zmieniłaś nazwę jakiegoś pliku, jeśli nigdy go o tym wyraźnie nie poinformowałaś? + + + + + Während dem Warten auf das Ende der Serverkommunikation tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails lesen oder Dokumentation schreiben. + + + Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. + + + + + Während dem ursprünglichen 'clonen', wird sie auf den aktuellen 'Branch' des Quell-'Repository' gesetzt, so dass selbst dann, wenn der 'HEAD' des Quell-'Repository' inzwischen auf einen anderen 'Branch' gewechselt hat, ein späterer 'pull' wird treu dem original 'Branch' folgen. + + + Podczas początkowego klonowania, zostanie ustawiony na aktualny branch źródłowego repozytorium, że nawet i potym jak 'HEAD' źródłowego repozytorium przejdzie do innego branch, późniejszy 'pull' pozostanie wierny orginalnemu branch. + + + + + Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem fatalen Fehler zu beenden. + + + Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. + + + + + Zeige die entfernten 'Branches' an mit: + + + Oddalone 'branches' możesz pokazać poprzez: + + + + + Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler steigt. + + + Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. + + + + + Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts 'mergen' mit: + + + W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + + + + + Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon 'pullen'. + + + W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + + + + + Zu link:/~blynn/gitmagic/intl/zh_tw/[Traditionellem Chinesisch] konvertiert via +cconv -f UTF8-CN -t UTF8-TW+. + + + Do link:/~blynn/gitmagic/intl/zh_tw/[tradycyjny chiński] skonwertowany przez +cconv -f UTF8-CN -t UTF8-TW+. + + + + + Zuerst ein Zaubertrick. + + + Na początek magiczna sztuczka + + + + + Zuerst, 'pull' funktioniert nicht mit 'bare Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später behandeln. + + + Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. + + + + + Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten Version, falls du später mit ihnen interagieren möchtest. + + + Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + + + + + Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. + + + na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. + + + + + Zum Beispiel ist `git checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu komprimieren als eine Sammlung von Änderungen auf Dateibasis. + + + Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + + + + + Zum Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert wird. + + + Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany + + + + + Zum Beispiel wäre es sicher, ihn in einer Zeitung zu veröffentlichen, denn es ist schwer für einen Angreifer jede Zeitungskopie zu manipulieren. + + + Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + + + + + Zum Beispiel, Englisch ist "en", Japanisch ist "ja". + + + Na przykład, angielski to "en", a japoński to "ja". + + + + + Zum Beispiel, angenommen Du hast viele 'Commits' gemacht und möchtest einen Vergleich zur letzten abgeholten Version machen. + + + Przyjmijmy, na przykład, że wykonałeś wiele COMMITTS i chciałbyś uzyskać porównanie do ostatnio ściągniętej wersji. + + + + + Zum Beispiel, nehmen wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien haben: + + + Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + + + + Zum Beispiel: + + + Na przyklad: + + + + + Zum Glück ist es einfach, Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' einen Zähler erhöht. + + + Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. + + + + + Zum Konvertieren gib in einem leeren Verzeichnis ein: + + + Aby przekonwertować wejść do pustego katalogu: + + + + + Zusätzlich habe ich mich dabei ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten meinem gewohnten Arbeitsablauf zu folgen. + + + Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + + + + + Zusätzlich müssen verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines 'Branch' mit einem abweichenden initialen 'Commit'. + + + Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + + + + + [[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum auch immer, drei Versionen zurückgehen um ein paar print Anweisungen einzufügen, damit du siehst, wie etwas funktioniert. + + + [[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzialanie. + + + + + [[makinghistory]] Du möchtest ein Projekt zu Git umziehen? + + + [[makinghistory]] Masz zamiar przenieść projekt do git? + + + + + aa823728ea7d592acc69b36875a482cdf3fd5c8d ist. + + + wynosi właśnie: aa823728ea7d592acc69b36875a482cdf3fd5c8d. + + + + + bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + + + znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + + + + + beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen Hashwert mit 1b6d beginnt. + + + rozpoczyna z nowym BRANCH o nazwie '``archaiczny'', ktory posiada stan 10 'commit' spowrotem od drugiego rodzica 'commit', ktorego klucz rozpoczyna sie na 1b6d. + + + + + bewegt den HEAD Bezeichner drei 'Commits' zurück. + + + przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. + + + + + bringt dich wieder in die Gegenwart. + + + sprowadzi cie znów do teraźniejszości. + + + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + + + dann 'Clone' es: + + + następnie sklonuj go: + + + + + das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie zuletzt geändert hat und wann. + + + które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. + + + + + den Zustand der Dateien des anderen Computer auf den übertragen, an dem du gerade arbeitest. + + + przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz + + + + + ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" Änderungen). + + + by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) + + + + + exit 1 fi + + + exit 1 fi + + + + + gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt werden kann. + + + produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. + + + + + http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine herkömmliche Datensicherung. + + + Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + + + + + http://git.or.cz/[Git] ist eine Art "Schweizer Taschenmesser" für Versionsverwaltung. + + + http://git.or.cz/[Git] to rodzaj scyzoryka szwajcarskiego dla kontroli wersji. + + + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + + + int main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + + + nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + + + po uprzednim dodaniu skryptu do `$ PATH`. + + + + + oder Mercurial: + + + albo Mercurial: + + + + + oder von einem der Mirrorserver: + + + albo z lustrzanego serwera: + + + + + origin/HEAD origin/master origin/experimentell + + + origin/HEAD origin/master origin/experimental + + + + + pick 5c6eb73 Link repo.or.cz hinzugefügt pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert pick 100834f Push-Ziel zum Makefile hinzugefügt + + + pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + + + + + um dein Skript herunterzuladen. + + + by mogli zładować skrypt. + + + + + um den 'Patch' anzuwenden. + + + By zastosować patch. + + + + + um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen. + + + możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + + + + + um die letzte Beschreibung zu ändern. + + + by zmienić ostatni opis. + + + + + um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. + + + by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. + + + + + um mehr zu erfahren. + + + by dowiedzieć się więcej. + + + + + um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. + + + by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, + + + + + um zur ursprünglichen Arbeit zurückzukehren. + + + by wrocic do poprzedniego zajęcia + + + + + und 'commite' bevor du auf den 'Master Branch' zurückschaltest. + + + i tylko jeszcze 'commit' zanim wrocisz do 'master branch'. + + + + + und Simsalabim! + + + i Simsalabim! + + + + + und das machst du für jede txt-Datei. + + + i zrób to z każdą następną daną textową. + + + + + und deine Nutzer können ihr Skript aktualisieren mit: + + + a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + + + + + und die letzten zehn 'Commits' erscheinen in deinem bevorzugten $EDITOR. Auszug aus einem Beispiel: + + + i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + + + + + und erstelle neue Aktualisierungsbundles mit: + + + a nowy 'bundle' tworzymy następnie poprzez: + + + + + und fahre mit deiner ursprünglichen Arbeit fort. + + + i kontynuujesz przerwane zajęcie + + + + + und jedermann kann Dein Projekt abrufen mit: + + + i każdy może teraz sklonować twój projekt przez: + + + + + und noch viel mehr + + + i tak dalej. + + + + + und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich die 'Commits' aus dem 'Bundle' durch Eingabe von: + + + i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + + + + untersuchen wes you can study for writing exporters, and also to transport repositories in a human-readable format. + + + + + + + + was Dir das Objekt im Klartext anzeigt. + + + polecenie to pokaże ci zawartość objektu jako tekst. + + + + + wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den ``bereinigt'' 'Branch' an. + + + zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. + + + + + wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. + + + To polecenie skasuje COMMIT o wybranym hash-u. + + + + + wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell aufrufst. + + + wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + + + + + zeigt den Namen des aktuellen 'Branch'. + + + pokaże nazwę aktualnego 'branch'. + + + + + zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + + + pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + + + + + Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + + Podobnie możesze celowo wykasować wybrane COMMITS. + + + + + Über die Zeit haben sich einige lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' mit dem offiziellen Zweig. + + + Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. + + + + + Übertrage ('push') dein Projekt auf den zentralen Server mit: + + + Przenieś (PUSH) twój projekt teraz na centralny serwer: + + + + + Üblicherweise ist deren Verhalten einstellbar. + + + Zazwyczaj ich zachowanie daje się ustawić. + + + + + Übrigens, die Dateien in +.git/objects+ sind mit zlib komprimiert, Du solltest sie also nicht direkt anschauen. + + + Na marginesie, dane w +.git/objects+ są spakowane poprzez zlib, nie powinieneś otwierać ich bezpośrednio. + + + + + Übung + + + Cwiczenie + + + + + diff --git a/pl/omegat-tmp/omegat/project_save.tmx.201307020402.bak b/pl/omegat-tmp/omegat/project_save.tmx.201307020402.bak new file mode 100644 index 0000000..987dd3f --- /dev/null +++ b/pl/omegat-tmp/omegat/project_save.tmx.201307020402.bak @@ -0,0 +1,6534 @@ + + + +
+ + + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + + + $ chmod a+x hooks/post-update + + + chmod a+x hooks/post-update + + + + + $ git am < email.txt + + + $ git am < email.txt + + + + + $ git apply < mein.patch + + + $ git apply < moj.patch + + + + + $ git bisect bad + + + +$ git bisect bad + + + + + $ git bisect reset + + + $ git bisect reset + + + + + $ git bisect run mein_skript + + + $ git bisect run moj_skrypt + + + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + + + $ git blame bug.c + + + $ git blame bug.c + + + + + $ git branch -D dead_branch # instead of -d + + + $ git branch -D dead_branch # zamiast -d + + + + + $ git branch -M source target # instead of -m + + + git branch -M zrodlo cel # zamiast -m + + + + + $ git bundle create einedatei HEAD + + + $ git bundle create plik HEAD + + + + + $ git bundle create einedatei HEAD ^1b6d + + + +$ git bundle create plik HEAD ^1b6d + + + + + $ git bundle create neuesbundle HEAD ^letztesbundle + + + $ git bundle create nowybundle HEAD ^ostatnibundle + + + + + $ git checkout -f HEAD^ + + + $ git checkout -f HEAD^ + + + + + $ git checkout master . + + + $ git checkout master + + + + + $ git clean -f -d + + + $ git clean -f -d + + + + + $ git clone http://web.server/proj.git + + + $ git clone http://web.server/proj.git + + + + + $ git commit --amend + + + $ git commit --amend + + + + + $ git commit --amend -a + + + $ git commit --amend -a + + + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + + + $ git config --global user.name "Max Mustermann" $ git config --global user.email maxmustermann@beispiel.de + + + $ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + + + + + $ git config gc.auto 0 + + + $ git config gc.auto 0 + + + + + $ git config gc.pruneexpire "30 days" + + + $ git config gc.pruneexpire "30 days" + + + + + $ git diff 1b6d > mein.patch + + + $ git diff 1b6d > moj.patch + + + + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + + + $ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + + + + + $ git format-patch 1b6d + + + git format-patch 1b6d + + + + + $ git format-patch 1b6d..HEAD^^ + + + $ git format-patch 1b6d..HEAD^^ + + + + + $ git init $ git add . + + + + + + + + $ git pull einedatei + + + +$ git pull plik + + + + + $ git push web.server:/pfad/zu/proj.git master + + + $ git push web.server:/sciezka/do/proj.git master + + + + + $ git rebase --continue + + + $ git rebase --continue + + + + + $ git rebase -i HEAD~10 + + + $ git rebase -i HEAD~10 + + + + + $ git reset --hard 1b6d + + + $ git reset --hard 1b6d + + + + + $ git symbolic-ref HEAD + + + $ git symbolic-ref HEAD + + + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + + + $ git tag -f letztesbundle HEAD + + + $ git tag -f ostatnibundle HEAD + + + + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + + + $ git-new-workdir ein/istniejacy/repo nowy/katalog + + + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + + + 'Branch'-Magie + + + Magia BRANCH + + + + + 'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das Öffnen eines neuen Browserfenster. + + + BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. + + + + + 'Branches' verwalten + + + Organizacja BRANCHES + + + + + 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne Netzwerkverbindung. + + + Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. + + + + + 'Commite' Änderungen + + + Zmiany 'commit' + + + + + 'Fork' eines Projekts + + + FORK projektu + + + + + 'Merge' Konflikte + + + Konflikty z 'merge' + + + + + 'Mergen' + + + MERGEN + + + + + 'Nackte Repositories' + + + Gołe REPOSITORIES + + + + + 'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern und Menschen gleichermaßen einfach verstanden werden. + + + 'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. + + + + + 'Push' oder 'Pull' + + + PUSH albo PULL + + + + + 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + + + 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + + + + + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + + + * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + + + + + * `reword` um die Log-Beschreibung zu ändern. + + + * `reword`, by zmienić opisy logu. + + + + + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + + + * `squash` by połączyć 'commit' z poprzednim ('merge'). + + + + + *Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. + + + *Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. + + + + + *Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. + + + *Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. + + + + + *Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. + + + *clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. + + + + + *Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + + + *Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie: *git branch*. + + + + + *Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. + + + *Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. + + + + + *Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. + + + *reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. + + + + + - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. + + + - *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. + + + + + - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene. + + + - *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + + + + + - Entferne 'Commits' durch das Löschen von Zeilen. + + + - usuń 'commits' poprzez skasowanie lini. + + + + + - Ersetze `pick` mit: * `edit` um einen 'Commit' für 'amends' zu markieren. + + + - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. + + + + + - Organisiere 'Commits' durch verschieben von Zeilen. + + + - przeorganizuj 'commits' przesuwając linie. + + + + + ---------------------------------- + + + ---------------------------------- + + + + + ... + + + ... + + + + + <<branch,Dazu kommen wir später>>. + + + <<branch, wrócimy do tego później>> + + + + + A, B, C, D sind 4 aufeinander folgende 'Commits'. + + + A, B, C i D sa 4 nastepujacymi po sobie COMMITS. + + + + + Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + + Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + + + + + Aber auch wenn wir ein normales 'Repository' auf dem zentralen Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. + + + Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. + + + + + Aber deshalb ein einfacheres, schlecht erweiterbares System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen zu verwenden. + + + Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + + + + + Aber du bist mit der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas umformuliert werden. + + + Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. + + + + + Aber einige Leute sind diesen Zähler gewöhnt. + + + Niektórzy jednak przyzwyczaili się do tego licznika. + + + + + Aber es gibt einen viel einfacheren Weg. + + + Istnieje jednak dużo prostszy sposób. + + + + + Aber es ist eine Illusion. + + + Ale to iluzja. + + + + + Aber manchmal arbeite ich an meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich inzwischen nicht austauschen können. + + + Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + + + + + Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. + + + Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. + + + + + Aber stell Dir vor, Du hast ihn niemals notiert? + + + Wyobraź jednak sobie, że nigdy go nie notowałeś? + + + + + Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein Verlauf um die Größe des gesamten Projekts wachsen. + + + Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + + + + + Aber wie kannst Du zurück in die Zukunft? + + + Ale jak teraz wrócić znów do przyszłości? + + + + + Aber, das überschreibt die vorherige Version. + + + Jednak, przepisze to poprzednią wersję. + + + + + Aber, wenn du an der Vergangenheit manipulierst, sei vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. + + + Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. + + + + + Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der häufigsten Anweisungen umgehen. + + + Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + + + + + 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'. + + + Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + + + + + Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls wird Git alle Änderungen 'comitten'. + + + Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + + + + + Aktualisiere das lokale 'Repository' erneut mit 'pull', löse eventuell aufgetretene 'Merge'-Konflikte und versuche es nochmal. + + + Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + + + + + Alles, was man mit dem zentralen 'Repository' tun kann, kannst du auch mit deinem 'Clone' tun. + + + Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + + + + + Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus. + + + Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + + + + + Allgemein, *filter-branch* lässt dich große Bereiche der Chronik mit einer einzigen Anweisung verändern. + + + Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + + + + + Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + + + A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + + + + + Alternativ kannst Du *git commit \--interactive* verwenden, was dann automatisch die ausgewählten Änderungen 'commited' nachdem Du fertig bist. + + + Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + + + + + Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen. + + + Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + + + + + Am schrecklichsten sind fehlende Dateien wegen eines vergessenen *git add*. + + + Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. + + + + + Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte Anweisungen scheuen, bis sie absolut notwendig sind. + + + Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. + + + + + Andere bestehen auf dem anderen Extrem: mehrere Fenster, ganz ohne Tabs. + + + Inni upierają się przy tym: więcej okien, zupełnie bez tabs. + + + + + Andere denken, daß Zweige vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit losgelassen werden. + + + Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. + + + + + Andere können davon ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und dass er die offizielle Version enthält. + + + Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję + + + + + Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen Format einliest um eine Git Chronik von Anfang an zu erstellen. + + + W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. + + + + + Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen das Zerstören der Daten. + + + Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. + + + + + Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige Entwickler war. + + + Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. + + + + + Angenommen du hast Teil I 'commitet' und zur Prüfung eingereicht. + + + Przyjmijmy, że wykonałeś COMMIT pierwszej części i przekazałeś do sprwadzenia. + + + + + Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. + + + Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. + + + + + Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht installiert. + + + Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. + + + + + Angenommen, wir sind bei D: + + + Zalozmym ze jestesmy w D: + + + + + Anhang A: Git's Mängel + + + Załącznik A: Wady GIT + + + + + Ansonsten: + + + W przeciwnym razie: + + + + + Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + + Zamiast kopiować i wklejać klucze z 'reflog', możesz: + + + + + Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch Ausführen von: + + + Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + + + + + Anstelle des zweiten Befehl kann man auch `git commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. + + + Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. + + + + + Antworte mit "y" für Ja oder "n" für Nein. + + + Odpowiedz po prostu "y" dla tak, albo "n" dla nie. + + + + + Arbeit ist Spiel + + + Praca jest zabawą + + + + + Arbeite wie du willst + + + Pracuj jak chcesz + + + + + Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem nutzt und vermisst du Git? + + + Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? + + + + + Argh! + + + Och! + + + + + Auch auf Deiner Seite ist alles was Du brauchst ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' aufzusetzen. + + + Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + + + + + Auch wenn Git die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + + + Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + + + + + Auch wenn du den ``master'' 'Branch' umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch respektieren. + + + Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + + + + + Auch wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser Faustregel weniger anfällig für falsche Vergleiche. + + + Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + + + + + Auf Debian und Ubuntu, findet man dieses Verzeichnis unter +/usr/share/doc/git-core/contrib+. + + + W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + + + + + Auf Git bauen + + + Budować na git + + + + + Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem Ordner: + + + Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + + + + + Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + + Po stronie odbiorcy zapamiętaj email jako daną i podaj: + + + + + Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, gibt es keinen Sicherheitsüberprüfungen mehr. + + + Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. + + + + + Aus diesem Grund plädiere ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man Mercurial bevorzugt. + + + Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial + + + + + Außerdem kannst du sie komprimieren um Speicherplatz zu sparen. + + + Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. + + + + + Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen hinauswachsen. + + + Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. + + + + + Außerdem waren sich die Entwickler der Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen bewusst. + + + Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + + + + + B ist identisch mit A, außer dass einige Dateien gelöscht wurden. + + + B rozni sie od A, jedynie tym, ze usunieto kilka plikow. + + + + + Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine historische Unwegbarkeiten umgehen. + + + Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. + + + + + Beachte, dass alle Änderungen, die nicht 'commitet' sind übernommen werden. + + + Oauwaz, ze wszystkie zmiany, ktorre nie zostaly COMMITTED, zostaly przejete + + + + + Beginne ein paar 'Branches': + + + Wystartuj kilka BRANCHES: + + + + + Bei Softwareprojekten kann das ähnlich sein. + + + W projektach software moze to wygladac podobnie. + + + + + Bei einem Mercurial Projekt gibt es gewöhnlich immer einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt automatisch die Benutzer von Mercurial mit einbezieht. + + + W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + + + + + Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem Ordner voller Dateien. + + + Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. + + + + + Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren und für andere Benutzer veröffentlichen will. + + + Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. + + + + + Bei verteilen Systemen ist das viel besser, da wir die benötigt Version lokal 'clonen' können. + + + Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + + + + + Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen gib ein: + + + Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + + + + + Beide laden ihre Änderungen hoch. + + + Obydwoje ładują swoje zmiany na serwer. + + + + + Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin um die alte Version zu erhalten. + + + Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. + + + + + Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + + + Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + + + + + Benutze *git submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten willst. + + + Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + + + + + Beschaffe dir die `hg-git`-Erweiterung mit Git: + + + Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + + + + + Betrachten wir Webbrowser. + + + Przyjżyjmy się takiej przeglądarce internetowej. + + + + + Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. + + + Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom + + + + + Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir uns mit ihm auseinandersetzen um das bisherige zu erklären. + + + Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. + + + + + Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' gewechselt, wie in: + + + Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + + + + + Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. + + + Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* + + + + + Changelog erstellen + + + Utwożenie historii + + + + + Chronik umschreiben + + + Przepisanie historii + + + + + Computer synchronisieren + + + Synchronizacja komputera + + + + + Computerspiele machten das lange Zeit so, viele von ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + + + Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + + + + + Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in Versionsverwaltungssystemen die einzelne Dateien überwachen. + + + Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + + + + + Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen: + + + Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + + + + + Da diese Anweisung aber auch zu ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option hinzufügen. + + + Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + + + + + Da ich in erster Linie unter Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + + + Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + + + + + Da war auch ein interessanter http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige Engpässe zu vermeiden. + + + Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. + + + + + Dadurch agieren nun alle Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, während deine Dateien unverändert erhalten bleiben. + + + Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. + + + + + Dafür ist es nun zu spät. + + + Na to jest już za późno. + + + + + Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. + + + Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. + + + + + Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor der Operation. + + + Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. + + + + + Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen und am Teil II arbeiten, bevor Teil I offiziell freigegeben wurde. + + + Dzieki bezbolowemu BANCHEN i MERGEN kozemy te regoly naciagnac i praccowac nad druga czescia juz zanim pierwsza zostanie oficjalnie zatwierdzona + + + + + Dann 'branche' zu Teil II: + + + Najpierw zmień BRANCH do części drugiej + + + + + Dann 'commite' dein Projekt und gib ein: + + + Wtedy COMMIT twój projekt i wykomaj: + + + + + Dann auf dem anderen: + + + Potem na następnym: + + + + + Dann erstelle ein Git 'Repository' in deinem Arbeitsverzeichnis: + + + Utwórz GIT REPOSITORY w katalogu roboczym + + + + + Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + + + No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + + + + + Dann gehe wieder ins neue Verzeichnis und gib ein: + + + Następnie przejdź do dowego katalogu i podaj: + + + + + Dann gib ein: + + + Wpisujesz: + + + + + Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. + + + W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. + + + + + Dann mache diese Änderungen und gib ein: + + + Wykonaj je i wpisz: + + + + + Dann mache folgendes auf deinem Server: + + + To po prostu zwób coś takiego na twoim serwerze: + + + + + Dann nutze: + + + Możesz w tym wypadku skorzystać z: + + + + + Dann sage deinen Nutzern: + + + Następnie udostępnij link twoim użytkownikom: + + + + + Dann tippe: + + + Wpisz wtedy: + + + + + Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch Eingabe von: + + + Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + + + + + Dann, wenn du den Fehler behoben hast: + + + Jak juz uporasz sie z bledem: + + + + + Dann: + + + Wtedy: + + + + + Das 'Mergen' mehrerer 'Branches' erzeugt einen 'Commit' mit mindestens zwei Eltern. + + + MERGEN kilku BRANCHES wytwarza COMMIT z minimum 2 rodzicami-COMMIT. + + + + + Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen werden; nur diejenigen mit SSH Zugriff können es einsehen. + + + To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. + + + + + Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf Git aufbauen. + + + Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. + + + + + Das Beispiel 'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation über 'Git-agnostic transports' wie z.B. HTTP benötigt. + + + Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. + + + + + Das Neueste vom Neuen + + + Najnowsze z nowych + + + + + Das Problem ist, den entsprechenden SHA1-Wert zu finden. + + + Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. + + + + + Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann. + + + To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + + + + + Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese Bezeichnung hatten. + + + Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. + + + + + Das `tailor` Programm konvertiert Bazaar 'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während `bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + + + Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + + + + + Das erfordert aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch aufrufen, wenn sie eine Datei bearbeiten. + + + Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + + + + + Das funktioniert wahrscheinlich ganz gut, wenn auch unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen Dateien braucht. + + + Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + + + + + Das geht wesentlich schneller, aber der resultierende Klon hat nur eingeschränkte Funktionalität. + + + Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + + + + + Das gilt stellvertretenden für andere Anweisungen. + + + Reprezentuje to również wszystkie inne polecenia. + + + + + Das heißt, nachdem Du ein 'Bundle' gesendet hast, gib ein: + + + To znaczy, po wysłaniu 'bundle', podaj: + + + + + Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. + + + To zadanie dla *git rebase*, jak wyżej opisane. + + + + + Das ist eine primitive und mühselige Form der Versionsverwaltung. + + + Jest to prymitywna i pracochłonna forma kontroli wersji. + + + + + Das ist unüblich. + + + Znajduje to dość szerokie zastosowanie + + + + + Das ist wie bei den Spielen der alten Schule, die nur Speicherplatz für eine Sicherung hatten: sicherlich konntest du speichern, aber du konntest nie zu einem älteren Stand zurück. + + + To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. + + + + + Das kannst du mit folgendem Befehl erstellen: + + + Możesz go utwoszyć korzystając z polecenia: + + + + + Das neue Verzeichnis enthält die Dateien mit deinen Änderungen. + + + Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami + + + + + Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche Versionsgeschichte die beiden Versionen automatisch synchron bleiben. + + + Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. + + + + + Das setzt voraus, dass sie einen SSH-Zugang haben. + + + Wymaga to od nich posiadanie klucza SSH do twojego komputera. + + + + + Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) und stellt den vorherigen Stand wieder her. + + + Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. + + + + + Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine Authentifizierung, also kann jeder das Projekt abrufen. + + + Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. + + + + + Das war eine Schande, denn vielleicht war deine vorherige Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du später gerne noch einmal zurückkehren möchtest. + + + To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. + + + + + Das wirft die Frage auf: Welchen 'Commit' referenziert `HEAD~10` tatsächlich? + + + To nasuwa pytanie; ktoremu COMMIT referencuje HEAD++10 wlasciwie? + + + + + Dass, wenn der Chef ins Büro spaziert, während du das Spiel spielst, du es schnell verstecken kannst? + + + By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + + + + + Dateien herunterladen + + + Zładowanie danych + + + + + Dateien ohne Bezug + + + Pliki z brakiem odniesienia + + + + + Dateihistorie + + + Historia pliku + + + + + Dein Arbeitsverzeichnis erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu editieren. + + + Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować + + + + + Deine Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so weiter. + + + Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi u tak dalej. + + + + + Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. + + + Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali + + + + + Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je komplizierter der Kontextwechsel ist, desto größer ist der Verlust. + + + Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty + + + + + Der Absender erstellt ein 'Bundle': + + + Nadawca tworzy 'bundle': + + + + + Der Empfänger kann das sogar mit einem leeren 'Repository' tun. + + + Odbiorca może to zrobić z pustym repozytorium. + + + + + Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten 'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. + + + Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. + + + + + Der Index ist ein temporärer Bereitstellungsraum. + + + Index jest tymczasowym rusztowaniem + + + + + Der Index: Git's Bereitstellungsraum + + + Index: ruszkowanie gita + + + + + Der Unterschied zwischen A und B sind die gelöschten Dateien. + + + Roznica miedzy A i B, to skasowane pliki. + + + + + Der Verlauf der Firmware interessiert den Anwender nicht und Änderungen lassen sich schlecht komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' unnötig auf. + + + Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + + + + + Der ``master'' 'Branch' ist ein nützlicher Brauch. + + + MASTER BRANCH jest bardzo użytecznym + + + + + Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den Rest. + + + Teraz MASTER BRANCH zawiera cześć 1 a BRANCH czesc2 posiada resztę. + + + + + Der angegebene Pfad wird stillschweigend überschrieben. + + + Podana ścieżka zostanie bez pytania zastąpiona. + + + + + Der erste Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten Datei im Index. + + + Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. + + + + + Der erster Klon + + + Pierwszy klon + + + + + Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten zukünftigen Operationen dann schnell und offline erfolgen. + + + Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. + + + + + Der zweite Schritt speichert dauerhaft den Schnappschuß, der sich nun im Index befindet. + + + Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. + + + + + Der zweite Teil eines Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und getestet wurde. + + + Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. + + + + + Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch Dateinamen mit ungewöhnlichen Zeichen. + + + Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików + + + + + Die *pull* Anweisung holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese dann mit dem aktuellen 'Branch'. + + + Polecenie *pull* za pomoca ('fetch') laduje COMMITS i je zespala ('merged'), wtedy z aktualnym BRANCH. + + + + + Die Anweisung + + + Polecenie: + + + + + Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu schreiben und außerdem um 'Repositories' in Klartext zu übertragen. + + + Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. + + + + + Die Chef-Taste + + + Przycisk SZEF + + + + + Die Datei zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden könnte. + + + Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. + + + + + Die Entwicklung findet in den 'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis auskommen. + + + Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + + + + + Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' umwandeln, indem man in ein leeres 'Repository' 'pushed'. + + + To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT + + + + + Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. + + + Termin opublikowania pewnej wlasciwosci zbliza sie. + + + + + Die Hilfeseiten schlagen vor 'Tags' zu benutzen um dieses Problem zu lösen. + + + Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. + + + + + Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da andere Operationen dafür unglaublich effizient sind. + + + Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. + + + + + Die Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer Kopie der ganzen Datei. + + + Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + + + + + Die Summe der Bemühungen verschlimmerte die Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu verbrauchen um noch längere Wartezeiten zu verhindern. + + + Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. + + + + + Die Textdatei ist wiederhergestellt. + + + Poprzedni plik jest przywrocony do stanu pierwotnego + + + + + Die Ursachen für die großen Unterschiede sollten ermittelt werden. + + + Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. + + + + + Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom anderen Versionsverwaltungssystem ab. + + + Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. + + + + + Die aktuelle Implementierung von Git, weniger sein Design, ist verantwortlich für diesen Pferdefuß. + + + To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. + + + + + Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + + Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + + + + + Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. + + + Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. + + + + + Die letztere kann verwendet werden um SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich gestutzt wurde. + + + Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + + + + + Die meisten Systeme wählen automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + + + Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + + + + + Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, werden verteilte Systeme genannt und können als eine Verallgemeinerung der zentralisierten Systeme verstanden werden. + + + Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. + + + + + Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen Logdateien. + + + Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. + + + + + Die resultierenden Dateien können an *git-send-email* übergeben werden oder von Hand verschickt werden. + + + Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. + + + + + Die vergangenen 'Commits' wissen nichts von der Zukunft. + + + Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + + + + + Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des 'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. + + + Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu + + + + + Die zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird oder die ganze Zeile überarbeiten. + + + Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + + + + + Die Änderungen bleiben im .git Unterverzeichnis gespeichert und können wieder hergestellt werden, wenn der entsprechende SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" oben). + + + Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). + + + + + Die, welche dir am besten gefällt. + + + To, ktore najbardziej tobie odpowiada. + + + + + Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten Elternteil während eines 'Merge'; häufig bist du nur von Änderungen betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen die von anderen 'Branches' eingebracht wurden. + + + To jest erstrebenswert, poniewaz aktualny BRANCH staje sie pierwszym rodzicem podczas MERGE; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym BRANCH bardziej, niz ze zmianami z innych BRANCHES. + + + + + Dies verleiht ihnen eine universelle Anziehungskraft. + + + Dodaje im to uniwersalnej mocy przyciągania. + + + + + Diese Operationen sind schnell und lokal, also warum nicht damit experimentieren um die beste Kombination für sich selbst zu finden? + + + Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. + + + + + Diese Spiele versteckten die Details vor dem Spieler und präsentierten eine bequeme Oberfläche um verschiedene Versionen des Ordners zu verwalten. + + + Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + + + + + Diese Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. + + + Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. + + + + + Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. + + + Ta inna rzeczywistość, to tzw. branch <<branch, zajmiemy się tym w późniejszym czasie>>. + + + + + Dieser Zyklus wiederholt sich ein paar Mal bevor du zum 'Pushen' in den zentralen Zweig bereit bist. + + + Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + + + + + Dieser spezielle 'Commit' repräsentiert einen leeren 'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git 'Repositories'. + + + Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + + + + + Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange Geschichte existiert, aber auf Dauer wird es sich lohnen. + + + Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. + + + + + Doch anstelle ein paar Knöpfe zu drücken, machst du 'create', 'check out', 'merge' und 'delete' von temporären 'Branches'. + + + Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. + + + + + Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie auch die ganze Geschichte bis zum angegebenen Punkt mit sich. + + + Jednak CLONEN niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. + + + + + Du arbeitest also an Teil II und 'commitest' deine Änderungen regelmäßig. + + + Pracujesz w cześci 2 i regularnie wykonujesz COMMIT. + + + + + Du arbeitest an einem aktiven Projekt. + + + Pracujesz nad aktywnym projektem. + + + + + Du bekommst einen Haufen Dateien eines bestimmten Sicherungsstands. + + + Otrzymasz całą masę plików konkretnego stanu + + + + + Du denkst, du kannst das besser? + + + Uważasz, że potrafisz to lepiej + + + + + Du hast auch noch andere Optionen, z.B. den Aufschub der Entscheidung; drücke "?" + + + Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" + + + + + Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch ging. + + + Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. + + + + + Du kannst Dir alle SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten 'Commit' findest. + + + Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' + + + + + Du kannst auch 'Commits' aufteilen. + + + Możesz również podzielć 'commits'. + + + + + Du kannst auch eine Gruppe von 'Commits' angeben: + + + Możesz podać grupę 'commits' + + + + + Du kannst auch nach dem 5. letzten 'Commit' fragen: + + + Możesz również udać się do 5 z ostatnich COMMIT: + + + + + Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst: + + + Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + + + + + Du kannst den Zustand des Ordners sichern so oft du willst und du kannst später jeden Sicherungspunkt wieder herstellen. + + + Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. + + + + + Du kannst die Nummer für den ersten Elternteil weglassen. + + + Mozesz pominac numer pierwszego rodzica + + + + + Du kannst diese Notation mit anderen Typen kombinieren. + + + mozesz ta notacje kombinowac takze z innymi typami + + + + + Du kannst diese Änderungen sogar 'commiten'. + + + Mozesz te zmiany nawet COMMITEN. + + + + + Du kannst einen 'Patch' Entwicklern schicken, ganz egal, was für ein Versionsverwaltungssystem sie benutzen. + + + Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. + + + + + Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen referenzieren. + + + Mozesz tez jakiegos rodzica referowac znaczkiem CARET + + + + + Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. + + + Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. + + + + + Du kannst noch viel mehr machen: die Hilfe erklärt, wie man 'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu beschleunigen. + + + Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + + + + + Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. + + + Możesz pracować nad dwoma funkcjami jednocześnie + + + + + Du kannst sogar 'Branches' in einem 'Repository' umorganisieren. + + + Możesz nawet przeorganizować 'branches' w repozytorium. + + + + + Du kannst sogar die frisch gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + + Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + + + + + Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + + + Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak czesto zechcesz, niezaleznie od tego w kazdej z tych wersji mozesz COMMITEN + + + + + 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. + + + Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. + + + + + Du magst Kopieren und Einfügen von Hashes nicht? + + + Nie lubisz kopiować i wklejać hash-ów? + + + + + Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. + + + Może pytasz się, czy BRANCHES są warte tego zachodu. + + + + + Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + + Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + + + + + Du merkst, dass du vergessen hast eine Datei hinzuzufügen? + + + Zauważasu, że zapomniałeś dodać jakiegoś pliku? + + + + + Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + + Akurat gdy strasznie zajety biezacymi zadaniami w projekcie otrzymujesz polecenie zajecie sie bledem w COMMIT 1b6d... + + + + + Du willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und hinter den offiziellen Änderungen sehen. + + + Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + + + + + Du willst deine laufenden Arbeiten für dich behalten und andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert hast. + + + Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. + + + + + Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? + + + Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? + + + + + Du willst zahlreiche, vor Manipulation geschützte, redundante Datensicherungen an unterschiedlichen Orten? + + + Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach + + + + + Dumme Fehler verschmutzen meine 'Repositories'. + + + Głupie błędy zaśmiecają moje repozytoria. + + + + + Durch cleveres verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine Versionsgeschichte mit dem original 'Repository' teilt: + + + Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + + + + + Durch das Herauspicken der Rosinen kannst du einen 'Branch' konstruieren, der nur endgültigen Code enthält und zusammengehörige 'Commits' gruppiert hat. + + + Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + + + + + EOT + + + EOT + + + + + Ebenso grundlegende Funktionen wie das Durchsuchen der Chronik oder das 'comitten' einer Änderung. + + + Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. + + + + + Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu überschreiben, wenn das einen Datenverlust zur Folge hat. + + + Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. + + + + + Ebenso, wenn Git Dateien vergessen soll: + + + To samo, gdy chcesz by GIT zapomnial o plikach: + + + + + Eigenarten der Anwendung + + + Charakterystyka zastosowania + + + + + Ein 'Commit' kann mehrere Eltern haben, welchem folgen wir also? + + + COMMIT moze posiadac wiecej rodzicow, ktoremu wlasciwie nastepowac? + + + + + Ein 'Commit' ohne die *-a* Option führt nur den zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + + + Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + + + + + Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem zentralisierten Versionsverwaltungssystem: Das Zuhause deines Projekts. + + + BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu + + + + + Ein Auto, das repariert werden soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. + + + Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. + + + + + Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + + + Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + + + + + Ein Liste aller 'Branches' bekommst du mit: + + + Listę wszystkich BRANCHES otrzymasz poprzez: + + + + + Ein Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die Konstruktion fortgesetzt werden kann. + + + Prototyp musi czekac na wyprodukowanie baustein zanim mozna podjac dalsza konstrukcje. + + + + + Ein Versionsverwaltungssystem zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die periodisch von einer Webcam gemacht werden. + + + Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + + + + + Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche die Form einer großen Binärdatei annimmt. + + + Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. + + + + + Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. + + + Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. + + + + + Ein beliebter Vertreter ist +workdir/git-new-workdir+. + + + Ulubionym przedstawicielem jest +workdir/git-new-workdir+. + + + + + Ein dummer Aberglaube + + + Głupi przesąd + + + + + Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden um die am häufigsten benutzten Anweisungen zu verkürzen: + + + Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + + + + + Ein einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und so weiter. + + + Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. + + + + + Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die so ein System bietet. + + + Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. + + + + + Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, bezogen auf 'Commits', hält sich Git nicht an diese Konvention. + + + Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. + + + + + Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein Arbeitsverzeichnis hat. + + + Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego + + + + + Ein negativer Rückgabewert beendet die 'bisect'-Operation sofort. + + + Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + + + + + Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. + + + O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. + + + + + Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. + + + powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. + + + + + Ein unmittelbarer Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist keine Kommunikation mit dem Hauptserver notwendig. + + + Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + + + + + Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. + + + Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. + + + + + Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. + + + Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. + + + + + Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach verändert werden kann. + + + Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. + + + + + Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + + Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + + + + + Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen jedes nur die in Beziehung stehenden Dateien enthält. + + + Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. + + + + + Eine Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + + + Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + + + + + Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git 'Repositories' arbeiten. + + + Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git + + + + + Eine gute erste Annäherung ist, dass alles was eine zentralisierte Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. + + + Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. + + + + + Eine unzuverlässige Internetverbindung stört mit Git nicht sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig wie ein lokale Festplatte sein sollte. + + + Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. + + + + + Einen Klon zu erstellen ist aufwendiger als in anderen Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + + + Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + + + + + Eines Tages brauchst du vielleicht dringend einen Schraubendreher, dann bist du froh mehr als nur einen einfachen Flaschenöffner bei dir zu haben. + + + Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + + + + + Einfach: + + + Proste; + + + + + Einfacher geht das mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + + Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + + + + + Einfaches Veröffentlichen + + + Uproszczone publikowanie + + + + + Einige Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für unterschiedliche Webseiten. + + + Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron + + + + + Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik ein, mit allen Fehlern, Nachteilen und Mängeln. + + + Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. + + + + + Einige Git Anweisungen lassen Dich ihn manipulieren. + + + Niektóre komendy git pozwolą ci nim manipulować. + + + + + Einige Projekte erfordern, dass dein Code überprüft werden muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + + + Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, zanim bedziesz mogl zaczac z druga czescia + + + + + Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf irgendeine Weise für die Bearbeitung zu kennzeichnen. + + + Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. + + + + + Einige lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. + + + Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. + + + + + Einige plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für seine Arbeit einen neuen 'Branch' anzulegen. + + + Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + + + + + Einleitung + + + Wprowadzenie + + + + + Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten offiziellen Änderungen dort hin. + + + Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. + + + + + Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten. + + + Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + + + + + Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' Anweisungen. + + + Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. + + + + + Er muss sicher sein, aber nicht privat. + + + Musi być bezpieczne, jednak nie musi być prywatne + + + + + Erinnere Dich an das erste Kapitel: + + + Przypomnij sobie pierwszy rozdział: + + + + + Erste Schritte + + + Pierwsze kroki + + + + + Erstelle ein Git 'Repository' für deine Dateien: + + + Utwóż GIT REPOSITORY dla twoich danych + + + + + Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen Rechner. + + + Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. + + + + + Erstelle eine Dummy-Datei um dieses Problem zu umgehen. + + + Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + + + + + Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + + + Es enthält nur Dateien, die normalerweise im '.git' Unterverzeichnis versteckt sind. + + + Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. + + + + + Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + + + O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + + + + + Es gibt mindestens 3 Lösungen. + + + Istnieja przynajmniej 3 rozwiazania. + + + + + Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der ganze Verlauf geklont wird. + + + Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + + + + + Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das Ergebnis ist das selbe. + + + Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. + + + + + Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit 'tarball' Archiven oder *rsync* zu arbeiten. + + + Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. + + + + + Es ist als ob der Hauptserver gespiegelt wird. + + + Wygląda to jak klonowanie serwera. + + + + + Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel. + + + Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. + + + + + Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu erweitern. + + + Dość łatwo zastosować ten sam trik na dowolną ilość części. + + + + + Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen wäre. + + + Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 COMMITS wcześniej utworzyć branch- + + + + + Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu sehen was auf dem anderen Kanal los ist. + + + Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. + + + + + Es können noch weitaus kompliziertere Situationen entstehen. + + + Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. + + + + + Es liegt an dir diese weise zu nutzen. + + + Stosowanie tej możliwości zależy od ciebie + + + + + Es sei denn die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, oder die `--bare` Option wird übergeben. + + + Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + + + + + Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. + + + Wyglada jakbysmy ta dana zmienili i COMMITED + + + + + Es stellt sich heraus, dass diese Notation immer den ersten Elternteil wählt. + + + Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. + + + + + Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. + + + Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. + + + + + Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, erstelle temporären Code und so weiter und 'commite' deine Änderungen oft. + + + Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. + + + + + Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können Verwirrungen entstehen. + + + Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + + + + + Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen: + + + Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + + + + + Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes: + + + Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + + + + + Finde heraus was du seit dem letzten 'Commit' getan hast: + + + Znajdz co zrobiles od ostatniego COMMIT: + + + + + Firewalls könnten uns stören und was, wenn wir gar keine Berechtigung für eine Serverkonsole haben. + + + Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + + + + + Folglich ist standardmäßig das 'Pushen' per Git-Protokoll verboten. + + + Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + + + + + Fortgeschrittenes Rückgängig machen/Wiederherstellen + + + Zaawansowane usuwanie/przywracanie + + + + + Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. + + + Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. + + + + + Führe *git add* aus um sie hinzuzufügen und dann die vorhergehende Anweisung. + + + Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + + + + + Führe die Anweisungen des anderen Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale 'Repository' zu übertragen. + + + Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + + + + + Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst leeren Git 'Repository'. + + + Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY + + + + + Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und "A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen Bereich. + + + Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. + + + + + Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + + Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + + + + + Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. + + + Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. + + + + + Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt wird. + + + Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok + + + + + Für eine vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur Versionsverwaltung]. + + + Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + + + + + Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. + + + Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. + + + + + Für jetzt, merke dir + + + zapamietaj jednak na razie, że: + + + + + Geheime Quellen + + + Utajnione Zródła + + + + + Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus der Geschichte zu löschen. + + + Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. + + + + + Genau deswegen gibt es Releasezyklen. + + + Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. + + + + + Genauso wenig setzt das 'Clonen' des zentralen 'Repository' dessen Bedeutung herab. + + + Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + + + + + Geschichte machen + + + Tworzyć historię + + + + + Geschichtsstunde + + + Lekcja historii + + + + + Gewagte Kunststücke + + + Śmiałe wyczyny + + + + + Gib ein: + + + Za pomoc + + + + + Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut ('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas zwischen 1 und 127 für 'bad'. + + + Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. + + + + + Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. + + + GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* + + + + + Git für Fortgeschrittene + + + Git dla zaawansowanych + + + + + Git hat mir bewundernswert gedient und hat mich bis jetzt noch nie im Stich gelassen. + + + Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. + + + + + Git lässt dich genauso arbeiten, wie du es willst. + + + GIT pozwoli ci pracować dokładnie tak jak chcesz. + + + + + Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + + + GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + + + + + Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben: + + + Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + + + + + Git referenziert Änderungen anhand ihres SHA1-Hash, was in vielen Fällen besser ist. + + + Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + + + + + Git ruft eine Stand ab, der genau dazwischen liegt. + + + Git przywoła stan, który leży dokładnie pośrodku. + + + + + Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. + + + Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` + + + + + Git tauscht selten Daten direkt zwischen Deinem Projekt und seiner Versionsgeschichte aus. + + + Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. + + + + + Git unter Microsoft Windows kann frustrierend sein: + + + Korzystanie z GIT pod Microsoft Windows może być frustrujące: + + + + + Git versetzt dich wieder auf einen Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert so die Möglichkeiten. + + + Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. + + + + + Git versteht beide Gesichtspunkte. + + + Git jest wyrozumiały dla oby dwuch stron. + + + + + Git von Anfang an zu benutzen, ist wie ein Schweizer Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen geöffnet werden. + + + Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. + + + + + Git war das erste Versionsverwaltungssystem, das ich benutzt habe. + + + Git był pierwszym systemem kontroli wersji którego używałem. + + + + + Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die Details selbst erarbeiten. + + + Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. + + + + + Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der Änderungen. + + + Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. + + + + + Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von 20 Null-Bytes gesetzt. + + + Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash + + + + + Git über SSH, HTTP + + + Git przez SSH, HTTP + + + + + Git über alles + + + Git ponad wszystko + + + + + Git überwacht immer das ganze Projekt, was normalerweise schon von Vorteil ist. + + + GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + + + + + Globaler Zähler + + + Licznik globalny + + + + + Glücklicherweise hat Git eine Abkürzung dafür, die genauso komfortabel ist wie eine Fernbedienung: + + + Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + + + + + Glücklicherweise ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + + + Na szczęście jest to silną stroną git i chyba jego racją bytu. + + + + + Hast Du es zu lange versäumt zu 'comitten'? + + + Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? + + + + + Hast Du so versessen programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? + + + Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? + + + + + Hast du es satt, wie sich ein Projekt entwickelt? + + + Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt + + + + + Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung eingegeben? + + + Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? + + + + + Hast du gravierende Änderungen vor? + + + Masz zamiar dokonania wielu zmian? + + + + + Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes angezeigt hat? + + + Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? + + + + + Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu zerstören. + + + Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. + + + + + Hinzufügen, Löschen, Umbenennen + + + Dodac, skasowac, zmienic nazwe + + + + + Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die Forschung SHA1 komplett unnütz macht. + + + Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + + + + + Hätte ich mein Projekt fertig gestellt, wäre ich trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + + + Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + + + + + Hättest du nur die Funktion während der Entwicklung getestet. + + + A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + + + + + Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. + + + By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. + + + + + Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin süchtig nach schellen Ausführungszeiten. + + + Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + + + + + Ich bin schnell in die Anwendung hineingewachsen und betrachtete viele Funktionen als selbstverständlich. + + + Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. + + + + + Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur als akademische Übungen. + + + Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. + + + + + Ich habe diese Phänomen aus erster Hand erfahren. + + + Dowiedziałem się o tym fenomenie z pierwszej ręki. + + + + + Ich habe einfach vorausgesetzt, dass andere Systeme ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht anders sein als die Auswahl eines Texteditors oder Internetbrowser. + + + Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + + + + + Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. + + + Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. + + + + + Ich hatte noch keinen Grund zu wechseln. + + + Nie miałem jeszcze powodu do zmiany. + + + + + Ich musste lernen, wie man Projekte verwaltet, an denen mehrere Entwickler aus aller Welt beteiligt waren. + + + Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. + + + + + Ich nehme alles zurück + + + Wycofuję wszystko co na ten temat powiedziałem. + + + + + Ich spiele Computerspiele schon fast mein ganzes Leben. + + + Gram w gry komputerowe przez całe moje życie. + + + + + Ich vermute, dass ich damit nicht alleine bin und der Vergleich hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + + + Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + + + + + Ich war geschockt, als ich später gezwungen war ein zentralisiertes System zu benutzen. + + + Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. + + + + + Im Gegensatz dazu habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu benutzen. + + + W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. + + + + + Im Gegensatz zu den meisten Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem Speicherplatz umzugehen. + + + W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. + + + + + Im Gegensatz zu vielen anderen Versionsverwaltungssystemen funktioniert diese Operation offline, es wird nur von der lokalen Festplatte gelesen. + + + W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + + + + + Immerhin sind 'Clone' fast genauso schnell und du kannst mit *cd* anstelle von esoterischen Git Befehlen zwischen ihnen wechseln. + + + Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + + + + + In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die Standardaktion. + + + W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. + + + + + In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die Fertigstellung des ersten Schritt warten. + + + W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego + + + + + In der Praxis möchtest Du aber das "refs/heads/" entfernen und Fehler ignorieren: + + + W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + + + + + In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' gehalten werden und die Binärdatei außerhalb des Projekts. + + + W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. + + + + + In diesem Fall verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber sehr flexibel. + + + W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. + + + + + In diesem Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. + + + W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. + + + + + In diesem Fall, gib folgendes ein: + + + W tym wypadku użyj komendy: + + + + + In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und Konvertierungswerkzeugen und so weiter. + + + W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. + + + + + In ein paar Jahren hat vielleicht schon ein ganz normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' unbemerkt zu korrumpieren. + + + Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + + + + + In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. + + + W sali sądowej można pewne zdarzenia wykreślić z akt. + + + + + In einem Git 'Repository' gib ein: + + + W repozytorium git natomiast podajesz: + + + + + In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der Chronik eine schwierige Angelegenheit und den Administratoren vorbehalten. + + + W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. + + + + + In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach einem bestimmten Punkt durch Eingabe von: + + + W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + + + + + In extremen Fällen trifft das auch auf die grundlegenden Anweisungen zu. + + + W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. + + + + + In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen 'bundlest', die in den anderen 'Repositories' fehlen. + + + W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. + + + + + In irgendeinem Verzeichnis: + + + W pewnym katalogu: + + + + + In manchen Systemen benötigt der Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu sehen oder um eine Datei zum Bearbeiten zu öffnen. + + + W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + + + + + In vielen Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + + + W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + + + + + In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation um Dateien zu bekommen. + + + W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. + + + + + Initialer 'Commit' + + + Pierwszy 'commit' + + + + + Irgendwann wirst du dann mit den anderen synchronisieren wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen Versionsverwaltungssystem und gib ein: + + + Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + + + + + Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' werden: + + + Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + + + + + Irgendwo speicherte ein Server alle gespeicherten Spiele, sonst niemand. + + + Jeden serwer zapamiętywał wszystkie gry, nikt inny. + + + + + Irren ist menschlich und so kann es vorkommen, dass du zurück zu Teil I willst um einen Fehler zu beheben. + + + Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. + + + + + Je mehr gespeicherte Spiele benötigt werden, desto mehr Kommunikation ist erforderlich. + + + Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + + + + + Jede Datei einzeln nachzuprüfen ist frustrierend und ermüdend. + + + Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. + + + + + Jeder 'Clone' deines Codes ist eine vollwertige Datensicherung. + + + Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa + + + + + Jeder 'Commit' ab jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen Namen geben können. + + + Kazdy COMMIT od teraz prowadzi woje dane inna droga, ktorej mozemy rowniez nadac nazwe. + + + + + Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git log* angezeigt werden. + + + Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. + + + + + Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für alle relevant. + + + Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + + + + + Jeder Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. + + + Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. + + + + + Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. + + + Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. + + + + + Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses Null-'Commits'. + + + Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + + + + + Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert hat. + + + Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + + + + + Jeder kann oberflächliche Klone erstellen, die nur wenig oder gar nichts vom Verlauf des Projekts enthalten. + + + Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. + + + + + Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. + + + Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany + + + + + Jemanden zu fotografieren stiehlt nicht dessen Seele. + + + Fotografując kogoś nie kradziemy jego duszy. + + + + + Jetzt lass uns das Problem etwas komplizierter machen. + + + Skomplikujmy teraz trochę cały ten problem. + + + + + KOPF-Jagd + + + Łowcy głów + + + + + Keine Sorge, gib ein: + + + Nie ma sprawy, wpisz polecenie: + + + + + Keine Sorge: Für solche Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + + Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + + + + + Klassische Quellcodeverwaltung + + + Klasyczne zarządzanie kodem źródłowym + + + + + Kleinere Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie möglich bewirken. + + + Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + + + + + Kleinere Verfehlungen sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + + + Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + + + + + Kontinuierlicher Arbeitsfluss + + + Nie przerywany przebieg pracy + + + + + Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein 'bare Repository' ist; andernfalls benutze 'pull'. + + + Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + + + + + Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto und erstellen ein 'Repository' in Deinem Webverzeichnis: + + + Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + + + + + Lasse den -global Schalter weg um diese Einstellungen für das aktuelle 'Repository' zu setzen. + + + Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + + + + + Leere Unterverzeichnisse + + + Puste katalogi + + + + + Leere Unterverzeichnisse können nicht überwacht werden. + + + Nie ma możliwości wersjonowania pustych katalogów. + + + + + Leider gibt es noch ein paar Problemfälle. + + + Niestety występuje jeszcze kilka innych problemów. + + + + + Leider kenne ich keine solche Erweiterung für Git. + + + Niestety nie są mi znane takie rozszerzenia dla GIT. + + + + + Leute machen kleine Änderungen von Version zu Version. + + + Ludzie robią jednak pomniejsze zmiany z wersji na wersję. + + + + + Lokale Änderungen zum Schluß + + + Końcowe lokalne zmian + + + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + + + M 100644 inline hello.c data <<EOT #include <unistd.h> + + + +M 100644 inline hello.c data <<EOT #include <unistd.h> + + + + + Machst Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + + + Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + + + + + Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' zuletzt gesendet wurde. + + + Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. + + + + + Man kann das aber auch in einem einzigen Schritt ausführen mit: + + + Można to także wykonać za jednyym zamachem: + + + + + Man muss vom Hauptserver das alte gespeicherte Spiel anfordern. + + + Za każdym razem trzeba ściągnąć wszystkie dane z serwera. + + + + + Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. + + + Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales + + + + + Mein 'Commit' ist zu groß! + + + Mój 'commit' jest za duży! + + + + + Meistens befindet es sich auf einem Server, der nicht viel tut außer Daten zu verbreiten. + + + Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. + + + + + Menschen sind nicht gut im Kontextwechsel. + + + Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + + + + + Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit Git zusammenarbeiten kann. + + + Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT + + + + + Mischmasch Reorganisieren + + + Reorganizacja chaosu + + + + + Mit Git ist 'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + + + Z GIT MERGE jest tak prostem, ze czasami nawet nie zauwazysz, gdy to nastepuje + + + + + Mit anderen Worten, es verwaltet die Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner beliebigen Version. + + + Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + + + + + Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* benannt und gesichert werden kann. + + + Innymi slowami, po przywolaniu starego stanu GIT automatychnie zamienia sie w nowy, nienazwany BRANCH, ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + + + + + Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon heute wäre es technisch machbar für finanzkräftige Unternehmen Hash-Kollisionen zu finden. + + + Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach + + + + + Mit der Zeit können einige davon zu offiziellen Anweisungen befördert werden. + + + Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. + + + + + Mit der `hg-git`-Erweiterung kann ein Benutzer von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus 'pullen'. + + + Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + + + + + Mit diesem Zauberwort verwandeln sich die Dateien in deinem Arbeitsverzeichnis plötzlich von einer Version in eine andere. + + + Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. + + + + + Mit ein bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen entspricht. + + + Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + + + + + Mit ein paar Tastendrücken kannst Du mehrere geänderte Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') oder Änderungen einzelner Dateien nachprüfen und hinzufügen. + + + Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. + + + + + Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' einfach, aber das Zusammenfügen ('Mergen') ist schwierig. + + + Za pomoca niektorych systemow kontroli wersji utworzenie nowegoi BRANCH moze i jest prostem, jednak pozniejsze MERGE trudne. + + + + + Mit etwas Glück, wenn Git's Verbreitung zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie vielleicht implementiert. + + + Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + + + + + Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. + + + Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. + + + + + Mit zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server herunterladen. + + + Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. + + + + + Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das meiste verstanden haben. + + + W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. + + + + + Multitasking mit Lichtgeschwindigkeit + + + Multitasking z prędkością światła + + + + + Musst Du während eines Notfalls improvisieren? + + + Musisz improwizować w nagłym wypadku? + + + + + Möglicherweise reicht ORIG_HEAD nicht aus. + + + Może się zdarzyć, że ORIG_HEAD nie wystarczy. + + + + + Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + + Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + + + + + Nach ein paar Durchläufen wird dich diese binäre Suche zu dem 'Commit' führen, der die Probleme verursacht. + + + Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. + + + + + Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige 'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder irgendetwas anderes. + + + Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + + + + + Nach einer längeren Sitzung hast du einen Haufen 'Commits' gemacht. + + + Po dłuższej sesji zrobiłeś całą masę 'commits'. + + + + + Natürlich funktioniert der Trick für fast alles, nicht nur Skripts. + + + Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + + + + + Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und vielleicht bist du mit einem anderen System besser dran. + + + Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. + + + + + Natürlich sind dann viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' übermittelt werden. + + + Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. + + + + + Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. + + + Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami + + + + + Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. + + + Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. + + + + + Netzwerkressourcen sind einfach teurer als lokale Ressourcen. + + + Zasoby sieciowe są po prostu droższe niż zasoby lokalne. + + + + + Nicht nur des aktuellen Stand, sondern der gesamten Geschichte. + + + Nie tylko jedo aktualny stan, lecz również jego całą historię. + + + + + Nichts könnte weiter von der Wahrheit entfernt sein. + + + Nic nie jest bardziej oddalone od rzeczywistości. + + + + + Normalerweise füllt man ein Formular auf einer Website aus. + + + Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + + + + + Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den vorhergehenden 'Commit'. + + + Zwyczajnie kazdy COMMIT posiada rodzica-COMMIT, a mianowicie poprzedni COMMIT. + + + + + Normalerweise können wir den Index ignorieren und so tun als würden wir direkt aus der Versionsgeschichte lesen oder in sie schreiben. + + + Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. + + + + + Normalerweise wird ein Skript, das diese Anweisung benutzt, hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem einzigen Lauf zu migrieren. + + + Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + + + + + Normalerweise ändern sich immer nur wenige Dateien zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. + + + W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. + + + + + Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + + + I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + + + + + Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach Herzenslust. + + + Przejdź teraz do nowego katalogu i pracuj według upodobania. + + + + + Nun gib ein: + + + Podajemy teraz; + + + + + Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus veröffentlichen. + + + Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + + + + + Nun kannst du Fehler beheben, Änderungen vom zentralen 'Repository' holen ('pull') und so weiter. + + + Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. + + + + + Nun kannst du überall wild temporären Code hinzufügen. + + + Teraz mozesz temporarnie wszedze wprowadzac na dziko kod + + + + + Nun können wir die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten Stand, aber wir müssen den 'Master Branch' verlassen. + + + Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic MASTER BRANCH. + + + + + Nun stell dir ein ganz kompliziertes Computerspiel vor. + + + Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. + + + + + Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben Zeile. + + + Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. + + + + + Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab: + + + Nie ma sprawy, jednak najpierw zabezpiecz dane. + + + + + Obwohl es extrem lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, so hat es doch zwei Vorteile: + + + Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + + + + + Oder anders gesagt, du spiegelst den zentralen Server. + + + Lub inaczej mówiąc, odzwierciedlasz zentralny server. + + + + + Oder noch besser, anpacken und mithelfen. + + + Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + + + + + Oder noch schlimmer, deine aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz vorne beginnen. + + + Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + + + + + Oder rufe den fünftletzten 'Commit' ab, mit: + + + Albo przywołaj 5 ostatnich 'commits' za pomocą: + + + + + Oder seit Gestern: + + + Albo od wczoraj + + + + + Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel ein Spieler geleistet hat. + + + Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + + + + + Oder zwischen irgendeiner Version und der vorvorletzten: + + + Albo miedzy jakakolwiek wersja a przedostatnia: + + + + + Patches: Das globale Zahlungsmittel + + + Patches: globalny środek płatniczy + + + + + Persönliche Erfahrungen + + + Osobiste doświadczenia + + + + + Prüfe, ob die 'filter-branch' Anweisung getan hat was du wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' Operationen durchführst. + + + Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + + + + + Quellcode veröffentlichen + + + +Publikowanie kodu źródłowego + + + + + Rund ums 'Clonen' + + + Polecenie CLONEN + + + + + Rückgängig machen + + + Przywracanie + + + + + SHA1 Schwäche + + + Słabości SHA1 + + + + + Sagen wir du bist im `master` 'Branch'. + + + Powiedzmy też, że znajdujesz sie w MASTER BRANCH. + + + + + Sagen wir, du hast einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt oder Dateien einer Website. + + + Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. + + + + + Schmutzarbeit + + + Brudna robota + + + + + Schnelle Fehlerbehebung + + + Szybkie koregowanie bledow. + + + + + Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. + + + Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. + + + + + Sei vorsichtig, wenn Du 'checkout' auf diese Weise benutzt. + + + Bądź ostrożny stosując 'checkout' w ten sposób. + + + + + Sie alle haben bequeme Schnittstellen um Ordner voller Dateien zu verwalten. + + + Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. + + + + + Siehe *git help branch*. + + + Zobacz: *git help branch*. + + + + + Siehe *git help diff* und *git help rev-parse*. + + + Sprawdź *git help diff* i *git help rev-parse*. + + + + + Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine schnellere Methode vorstellt wird. + + + Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. + + + + + Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die ignoriert werden sollen. + + + Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + + + + + Siehe *git help stash*. + + + Zobacz *git help stash*. + + + + + Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen Anweisung. + + + Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. + + + + + Siehe auf der Git Hilfeseite für einige Anwendungsbeispiele. + + + Na stronach pomocy git znajdziesz więcej zasosowań. + + + + + Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für mehr. + + + Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + + + + + So schwierig zu lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das Spiel zu beenden. + + + Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. + + + + + So wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' mit abweichender Chronik hat und die Zweige sich austauschen sollen. + + + Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + + + + + Sogar einige Git Anweisungen selbst sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. + + + Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. + + + + + Solange Deine Mitstreiter ihre eMails lesen können, können sie auch Deine Änderungen sehen. + + + Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. + + + + + Solltest du kürzlich konkurrierende Änderungen an der selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut 'commiten' nachdem du die Konflikte aufgelöst hast. + + + Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + + + + + Speichere und Beende. + + + Zapamietaj i zakończ. + + + + + Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von Mitstreitern einbinden. + + + Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów + + + + + Stand sichern + + + Backup + + + + + Standardmäßig beginnst du in einem 'Branch' namens ``master''. + + + Standardowo zaczynasz w BRANCH zwanym MASTER. + + + + + Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. + + + Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. + + + + + Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + + + Standardowo dane te pozostają jeszcze przez 2 tygodnie. + + + + + Standardmäßig nutzt Git Systemeinstellungen um diese Felder auszufüllen. + + + Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. + + + + + Stattdessen stellen wir uns wieder vor, wir editieren ein Dokument. + + + Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + + + + + Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am Dateiende. + + + Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. + + + + + Stell dir zum Beispiel vor, du willst ein Projekt veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen privat bleiben muss. + + + Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. + + + + + Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein Computerspiel vor. + + + Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. + + + + + Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, wird von unzähligen Projekten benutzt. + + + Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. + + + + + Tatsächlich sind wir dem 'Mergen' schon lange begegnet. + + + W gruncie rzeczy spotkalismy sie juz wczesniej z MERGE. + + + + + Temporäre 'Branches' + + + Tymczasowe BRANCHES + + + + + Teste die Funktion und wenn sich immer noch nicht funktioniert: + + + Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + + + + Tippe: + + + Wpisz: + + + + + Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. + + + Momo ich prostoty, wszystkie sa wazne i pozyteczne. + + + + + Trotz seiner Größe, +einedatei+ enthält das komplette original Git 'Repository'. + + + Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + + + + + Trotzdem gibt es Situationen, in denen es besser ist einen oberflächlichen Klon mit der `--depth` Option zu erstellen. + + + Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. + + + + + Trotzdem kann es langwierig sein, den exakten Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. + + + Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. + + + + + Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe von: + + + Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + + + + + Ultimative Datensicherung + + + Ultymatywny backup danych + + + + + Um Dateien zu bekommen, erstellst du einen 'Clone' des gesamten 'Repository'. + + + By pozyskać dane, tworzysz klon całej REPOSITORY. + + + + + Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. + + + Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, + + + + + Um auf die aktuelle Server-Version zu aktualisieren: + + + Aby zaktualizować do wersji na serwerze: + + + + + Um das Leben zu vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die Firmware. + + + By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + + + + + Um das Löschen zu erzwingen, gib ein: + + + By wymusić skasowanie, podaj: + + + + + Um das Verschieben zu erzwingen, gib ein: + + + By wymusić przesunięcie, podaj: + + + + + Um das zu tun, klickst du auf auf Speichern in deinem vertrauten Editor. + + + W tym celu klikasz na 'zapisz' w wybranym edytorze. + + + + + Um den neuen Stand zu sichern: + + + Aby zapisac nowy stan: + + + + + Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + + By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + + + + + Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + + Lokalne zmiany przekazujemy do serwera poleceniem: + + + + + Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + + Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + + + + Um diese Angaben explizit zu setzen, gib ein: + + + Aby wprowadzić te dane bezpośrednio, podaj: + + + + + Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht. + + + Bedac szczery, przez pierwsze miesiace pracy z GIT nie potrzebowalem zadnych innych, niz opisanych w tym rozdziale + + + + + Um ein tarball-Archiv des Quellcodes zu erzeugen, verwende ich den Befehl: + + + Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + + + + + Um es zu erzwingen, verwende: + + + By zmusić dgo do tego, możesz użyć: + + + + + 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. + + + Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. + + + + + Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + + Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + + + + + Um wieder die Computerspielanalogie anzuwenden: + + + Jeśli znów skorzystamy z analogii do gier komputerkowych: + + + + + Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'. + + + Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + + + + + Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze: + + + By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + + + + + Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + + By na przyklad logi drugiego rodzica pokazac + + + + + Um zum Beispiel die Unterschiede zum ersten Elternteil anzuzeigen: + + + By na przyklad pokazac roznice miedzy pierwszym rodzicem + + + + + Unbeständige Projekte + + + Niestałe projekty + + + + + Und eigene Sicherungen bereitstellt? + + + Natomiast własne innym udostępni? + + + + + Und wenn der Chef in diesem Verzeichnis herumschnüffelt, tippe: + + + A gdy szef grzebie w twoim katalogu, wpisz: + + + + + Unter den Befehlen im Zusammenhang mit Git's verteilter Art, brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an unterschiedlichen Orten halten. + + + Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + + + + + Unterschiede sind schnell gefunden, weil nur die markierten Dateien untersucht werden müssen. + + + Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + + + + + Untracked .txt files. + + + untracket.txt files. + + + + + Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden Eigenschaften von Git. + + + niezwloczne BRANCHEN i MERGEN sa uderzajacymi wlasciwosciami GIT + + + + + Verhindere schlechte 'Commits' + + + Zapobiegaj złym 'commits' + + + + + Verliere nicht Deinen KOPF + + + Nie trać głowy + + + + + Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. + + + Niektóre projekty wymagają pliku historii zmian + + + + + Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit jedem 'Commit' erhöht wird. + + + Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". + + + + + Versionsverwaltung + + + Kontrola wersji + + + + + Versionsverwaltung im Untergrund + + + Zarządzanie wersją w poddziemiu + + + + + Versionsverwaltungen sind nicht anders. + + + Systemy kontroli wersji nie różnią się tutaj zbytnio. + + + + + Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und überlassen die schwierigen uns Menschen. + + + Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. + + + + + Versuche + + + Wypróbuj polecenie: + + + + + Versuche auch: + + + Sprobuj rowniez: + + + + + Verteilte Kontrolle + + + Rozproszona kontrola + + + + + Viele Git Befehle funktionieren nicht in 'bare Repositories'. + + + Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH + + + + + Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. + + + Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. + + + + + Viele Kommandos sind mürrisch vor dem intialen 'Commit'. + + + Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. + + + + + Viele Versionen auf diese Art zu archivieren ist mühselig und kann sehr schnell teuer werden. + + + Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + + + + + Vielleicht habe ich meine Kreditkartennummer in einer Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. + + + Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? + + + + + Vielleicht hast Du gerade bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + + + Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + + + + + Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash des letzten 'Commit' verknüpft ist. + + + Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + + + + + Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar ist. + + + Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. + + + + + Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung gesucht, nicht ein Versionsverwaltungssystem. + + + Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. + + + + + Vielleicht kann ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich in der Vergangenheit gebraucht habe. + + + Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + + + + + Vielleicht können Dateiformate geändert werden. + + + Ewentualnie można czasami zmienić format danych. + + + + + Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' abzuarbeiten. + + + Może lubisz odpracować wszystkie aspekty projektu w + + + + + Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' konfigurieren. + + + Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. + + + + + Vielmehr schreibt Git die Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an ihren eigentlichen Bestimmungsort. + + + Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + + + + + Von jetzt an wird + + + Od teraz poleceniem: + + + + + Wann immer du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + + Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + + + + + Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten 'pull'-Befehl zu bleiben? + + + Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? + + + + + Warum ich Git benutze + + + Dlaczego korzystam z GIT + + + + + Warum mehrere Tabs unterstützen und mehrere Fenster? + + + Dlaczego pozwalają używać tabs albo okien? + + + + + Was habe ich getan? + + + Co ostatnio robilem? + + + + + Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? + + + A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? + + + + + Was, wenn du am Ende die temporären Änderungen sichern willst? + + + A co jesli chcesz zapamietac wprowadzone zmiany? + + + + + Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? + + + A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? + + + + + Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. + + + Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. + + + + + Welche Lösung ist die beste? + + + Ktore rozwiazanie jest najlepsze? + + + + + Wenn Anwender langsame Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss unterbrochen wird. + + + Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + + + + + Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien überwacht. + + + Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. + + + + + Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + + Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + + + + + Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + + Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + + + + + Wenn Du zufrieden bist, gib + + + Jeśli jesteś zadowolony z wyniku, wpisz: + + + + + Wenn Spieler vom Hauptserver herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt gespeicherte. + + + Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany + + + + + Wenn alle 'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu lassen, da jegliche Kommunikation über SSH läuft. + + + Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + + + + + Wenn auch nicht so effizient wie mit dem systemeigenen Protokoll, kann Git über HTTP kommunizieren. + + + Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + + + + + Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst um dort einen 'Clone' zu platzieren. + + + Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + + + + + Wenn dein Projekt viele Entwickler hat, musst du nichts tun! + + + Jeśli projekt posiada wielu programistów, nie musisz niczego robić + + + + + Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter Form zu verwenden. + + + Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. + + + + + Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen: + + + Jesli dodales nowe pliki, musisz o tym poinformowac GIT + + + + + Wenn du Glück hast oder sehr gut bist, kannst du die nächsten Zeilen überspringen. + + + Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + + + + + Wenn du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir Konflikte melden. + + + Jesli jednak wprowadziles zmiany, GIT bedzie je automatycznie MERGEN i powiadomi cie o eventualnych konfliktach. + + + + + Wenn du deine Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + + Po skończeniu dochodzenia przejdź do orginalnego stanu: + + + + + Wenn du einen 'Commit' mit 'edit' markiert hast, gib ein: + + + Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + + + + + Wenn du fertig bist, + + + JAk juz jestes gotowy + + + + + Wenn du gut voran gekommen bist, willst du das Erreichte sichern. + + + Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. + + + + + Wenn du keine lokalen Änderungen hast, dann ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. + + + Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu zarzadzania wersja. + + + + + Wenn du nun eine alte Version erhalten willst, musst du den ganzen Ordner archivieren. + + + Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. + + + + + Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit: + + + Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + + + + + Wenn du wieder zurück zu deinen Änderungen willst, tippe: + + + Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + + + + + Wenn ein Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + + + Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + + + + + Wenn es mit einem der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon jemand ein Skript geschrieben hat, das die gesamte Chronik für Git exportiert. + + + Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + + + + + Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + + Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + + + + + Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger Schaden zugefügt. + + + Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. + + + + + Wenn ich zur ursprünglichen Arbeit zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr Zeit beim Versuch mich zu erinnern was ich getan habe. + + + Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. + + + + + Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver eingegangen sind, schlägt dein 'push' fehl. + + + Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. + + + + + Wenn mehrere 'Branches' mit unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' gemacht wird, ist ein manuelles Eingreifen erforderlich. + + + Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + + + + + Wenn nicht, ersetzte "bad" mit "good". + + + Jeśli nie, zamień "bad" na "good". + + + + + Wenn nötig, starte den Git-Dämon: + + + Jeśli konieczne, wystartuj GIT-DAEMON + + + + + Wer bin ich? + + + Kim jestem? + + + + + Wer ist verantwortlich? + + + Kto ponosi odpowiedzialność? + + + + + Wer macht was? + + + Kto robi co? + + + + + Wie 'Clonen', 'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine weitere Stärke, die Git dir bietet. + + + Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. + + + + + Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein 'Repository' ab. + + + W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY + + + + + Wie auch immer, mit Git kannst du nicht viel falsch machen. + + + Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. + + + + + Wie auch immer, vorausgesetzt du hast oft 'comittet', kann Git dir sagen, wo das Problem liegt: + + + Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + + + + + Wie du dir vielleicht schon gedacht hast, verwendet Git 'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + + + Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + + + + + Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + + Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + + + + + Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die Sicherungen der anderen bekommt? + + + W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? + + + + + Wieder andere bevorzugen irgendetwas dazwischen. + + + Inni znowu wolą coś pomiędzy. + + + + + Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne Netzwerkverbindung? + + + Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? + + + + + Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. + + + Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 + + + + + Wir erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß permanent. + + + Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + + + + + Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das bekannteste freie verteilte Versionsverwaltungssystem ist. + + + Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + + + + + Wir haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. + + + We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. + + + + + Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer bestimmten Nachricht enthält. + + + Utworzylismy REPOSITORY, ktora posiada dana z ta zawartoscia + + + + + Wir haben gesehen, dass man mit <<makinghistory, *git fast-export* und *git fast-import* 'Repositories' in eine einzige Datei konvertieren kann und zurück>>. + + + Widzieliśmym, że poleceniami <<makinghistory, *git fast-export* i *git fast-import* możemy konwertować całe repozytoria w jeden jedyny plik i spowrotem>>. + + + + + Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen: + + + Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + + + + + Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden: + + + Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + + + + + Wir können solche Dateien hin und her schicken um Git 'Repositories' über jedes beliebige Medium zu transportieren, aber ein effizienteres Werkzeug ist *git bundle*. + + + W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + + + + + Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das? + + + Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + + + + + Wir müssen die Datei aus allen 'Commits' entfernen: + + + Musimy ten plik usunąć ze wszystkich 'commits': + + + + + Wir müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen 'pullen', also abholen wollen. + + + Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. + + + + + Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung gekommen, als wir das Laden alter Stände besprochen haben. + + + Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow + + + + + Wird irgendein 'Clone' beschädigt, wird dies dank des kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit anderen zu kommunizieren. + + + Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + + + + + Wirklich, diese Anweisung kann Klartext-'Repositories' über reine Textkanäle übertragen. + + + Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + + + + + Wo ging alles schief? + + + Gdzie wszystko poszło źle? + + + + + Wo kommt dieser Fehler her? + + + Skąd wziął się ten błąd? + + + + + Während dem Warten auf das Ende der Serverkommunikation tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails lesen oder Dokumentation schreiben. + + + Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. + + + + + Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem fatalen Fehler zu beenden. + + + Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. + + + + + Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler steigt. + + + Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. + + + + + Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts 'mergen' mit: + + + W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + + + + + Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon 'pullen'. + + + W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + + + + + Zuerst, 'pull' funktioniert nicht mit 'bare Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später behandeln. + + + Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. + + + + + Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten Version, falls du später mit ihnen interagieren möchtest. + + + Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + + + + + Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. + + + na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. + + + + + Zum Beispiel ist `git checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu komprimieren als eine Sammlung von Änderungen auf Dateibasis. + + + Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + + + + + Zum Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert wird. + + + Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany + + + + + Zum Beispiel wäre es sicher, ihn in einer Zeitung zu veröffentlichen, denn es ist schwer für einen Angreifer jede Zeitungskopie zu manipulieren. + + + Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + + + + + Zum Beispiel, nehmen wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien haben: + + + Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + + + + Zum Beispiel: + + + Na przyklad: + + + + + Zum Glück ist es einfach, Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' einen Zähler erhöht. + + + Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. + + + + + Zum Konvertieren gib in einem leeren Verzeichnis ein: + + + Aby przekonwertować wejść do pustego katalogu: + + + + + Zusätzlich habe ich mich dabei ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten meinem gewohnten Arbeitsablauf zu folgen. + + + Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + + + + + Zusätzlich müssen verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines 'Branch' mit einem abweichenden initialen 'Commit'. + + + Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + + + + + [[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum auch immer, drei Versionen zurückgehen um ein paar print Anweisungen einzufügen, damit du siehst, wie etwas funktioniert. + + + [[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzaialanie. + + + + + [[makinghistory]] Du möchtest ein Projekt zu Git umziehen? + + + [[makinghistory]] Masz zamiar przenieść projekt do git? + + + + + bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + + + znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + + + + + beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen Hashwert mit 1b6d beginnt. + + + rozpoczyna z nowym BRANCH o nazwie '``stare', ktory posiada stan 10 COMMIT spoowrotem od drugiego rodzica COMMIT, ktorego hash rozpoczyna sie na 1b6d. + + + + + bewegt den HEAD Bezeichner drei 'Commits' zurück. + + + przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. + + + + + bringt dich wieder in die Gegenwart. + + + sprowadzi cie znów do teraźniejszości. + + + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + + + dann 'Clone' es: + + + następnie sklonuj go: + + + + + das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie zuletzt geändert hat und wann. + + + które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. + + + + + den Zustand der Dateien des anderen Computer auf den übertragen, an dem du gerade arbeitest. + + + przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz + + + + + ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" Änderungen). + + + by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) + + + + + exit 1 fi + + + exit 1 fi + + + + + gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt werden kann. + + + produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. + + + + + http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine herkömmliche Datensicherung. + + + Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + + + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + + + int main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + + + nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + + + po uprzednim dodaniu skryptu do `$ PATH`. + + + + + oder Mercurial: + + + albo Mercurial: + + + + + pick 5c6eb73 Link repo.or.cz hinzugefügt pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert pick 100834f Push-Ziel zum Makefile hinzugefügt + + + pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + + + + + um dein Skript herunterzuladen. + + + by mogli zładować skrypt. + + + + + um den 'Patch' anzuwenden. + + + By zastosować patch. + + + + + um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen. + + + możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + + + + + um die letzte Beschreibung zu ändern. + + + by zmienić ostatni opis. + + + + + um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. + + + by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. + + + + + um mehr zu erfahren. + + + by dowiedzieć się więcej. + + + + + um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. + + + by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, + + + + + um zur ursprünglichen Arbeit zurückzukehren. + + + by wrocic do poprzedniej pracy + + + + + und 'commite' bevor du auf den 'Master Branch' zurückschaltest. + + + i tylko jeszcze COMMIT zanim wrocisz do MASTER BRANCH. + + + + + und Simsalabim! + + + i Simsalabim! + + + + + und deine Nutzer können ihr Skript aktualisieren mit: + + + a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + + + + + und die letzten zehn 'Commits' erscheinen in deinem bevorzugten $EDITOR. Auszug aus einem Beispiel: + + + i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + + + + + und erstelle neue Aktualisierungsbundles mit: + + + a nowy 'bundle' tworzymy następnie poprzez: + + + + + und fahre mit deiner ursprünglichen Arbeit fort. + + + i kontynnuj przerwany prace + + + + + und jedermann kann Dein Projekt abrufen mit: + + + i każdy może teraz sklonować twój projekt przez: + + + + + und noch viel mehr + + + i tak dalej. + + + + + und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich die 'Commits' aus dem 'Bundle' durch Eingabe von: + + + i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + + + + untersuchen wes you can study for writing exporters, and also to transport repositories in a human-readable format. + + + + + + + + wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den ``bereinigt'' 'Branch' an. + + + zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. + + + + + wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. + + + To polecenie skasuje COMMIT o wybranym hash-u. + + + + + wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell aufrufst. + + + wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + + + + + zeigt den Namen des aktuellen 'Branch'. + + + pokaże nazwę aktualnego 'branch'. + + + + + zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + + + pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + + + + + Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + + Podobnie możesze celowo wykasować wybrane COMMITS. + + + + + Über die Zeit haben sich einige lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' mit dem offiziellen Zweig. + + + Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. + + + + + Übertrage ('push') dein Projekt auf den zentralen Server mit: + + + Przenieś (PUSH) twój projekt teraz na centralny serwer: + + + + + Üblicherweise ist deren Verhalten einstellbar. + + + Zazwyczaj ich zachowanie daje się ustawić. + + + + + Übung + + + Cwiczenie + + + + + diff --git a/pl/omegat-tmp/omegat/project_save.tmx.201307020529.bak b/pl/omegat-tmp/omegat/project_save.tmx.201307020529.bak new file mode 100644 index 0000000..2175ada --- /dev/null +++ b/pl/omegat-tmp/omegat/project_save.tmx.201307020529.bak @@ -0,0 +1,6685 @@ + + + +
+
+ + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + + + $ chmod a+x hooks/post-update + + + chmod a+x hooks/post-update + + + + + $ echo "Ich bin klüger als mein Chef" > meinedatei.txt $ git init $ git add . + + + $ echo "jestem mądrzejszy od szefa" > mojplik.txt $ git init $ git add . + + + + + $ git am < email.txt + + + $ git am < email.txt + + + + + $ git apply < mein.patch + + + $ git apply < moj.patch + + + + + $ git bisect bad + + + +$ git bisect bad + + + + + $ git bisect reset + + + $ git bisect reset + + + + + $ git bisect run mein_skript + + + $ git bisect run moj_skrypt + + + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + + + $ git blame bug.c + + + $ git blame bug.c + + + + + $ git branch -D dead_branch # instead of -d + + + $ git branch -D dead_branch # zamiast -d + + + + + $ git branch -M source target # instead of -m + + + git branch -M zrodlo cel # zamiast -m + + + + + $ git branch -m master teil2 # Umbenennen des 'Branch' "master" zu "teil2". + + + $ git branch -m master czesc2 # zmiana nazwy 'branch' "master" na "czesc2". + + + + + $ git branch master HEAD~7 # Erstelle neuen "master", 7 Commits voraus + + + $ git branch master HEAD~7 # utwórz nowy "master", 7 'commit' do przodu + + + + + $ git bundle create einedatei HEAD + + + $ git bundle create plik HEAD + + + + + $ git bundle create einedatei HEAD ^1b6d + + + +$ git bundle create plik HEAD ^1b6d + + + + + $ git bundle create neuesbundle HEAD ^letztesbundle + + + $ git bundle create nowybundle HEAD ^ostatnibundle + + + + + $ git checkout -b chef # scheinbar hat sich danach nichts geändert $ echo "Mein Chef ist klüger als ich" > meinedatei.txt $ git commit -a -m "Ein anderer Stand" + + + $ git checkout -b chef # wydaje się, że nic nie uległo zmianie $ echo "Mój szef jest mądrzejszy ode mnie" > mojplik.txt $ git commit -a -m "Inny stan" + + + + + $ git checkout -b schmutzig + + + $ git checkout -b brudy + + + + + $ git checkout -b teil2 + + + $ git checkout -b czesc2 + + + + + $ git checkout -f HEAD^ + + + $ git checkout -f HEAD^ + + + + + $ git checkout 1b6d^^2~10 -b uralt + + + $ git checkout 1b6d^^2~10 -b archaiczny + + + + + $ git checkout chef # wechsle zur Version die der Chef ruhig sehen kann + + + $ git checkout chef # wersja, którą szef spokojnie może zobaczyć + + + + + $ git checkout master # Gehe zurück zu Teil I. $ fix_problem $ git commit -a # 'Commite' die Lösung. + + + $ git checkout master # wróć do częsci I $ usun_problem $ git commit -a # wykonaj 'commit' z rozwiązaniam. + + + + + $ git checkout master # Gehe zurück zu Teil I. $ submit files # Veröffentliche deine Dateien! + + + $ git checkout master # Idź do części I. $ submit files # Opublikuj dane! + + + + + $ git checkout master # wechsle zur Originalversion der Datei + + + $ git checkout master # przejdź do wersji orginalnej + + + + + $ git checkout master . + + + $ git checkout master + + + + + $ git checkout schnmutzig + + + $ git checkout brudy + + + + + $ git checkout teil2 # Gehe zurück zu Teil II. $ git merge master # 'Merge' die Lösung. + + + $ git checkout czesc2 # Idź do części II. $ git merge master # 'merge' rozwiązanie. + + + + + $ git clean -f -d + + + $ git clean -f -d + + + + + $ git clone http://web.server/proj.git + + + $ git clone http://web.server/proj.git + + + + + $ git commit --amend + + + $ git commit --amend + + + + + $ git commit --amend -a + + + $ git commit --amend -a + + + + + $ git commit -a -m "Fehler behoben" $ git checkout master + + + $ git commit -a -m "usunięto bug" $ git checkout master + + + + + $ git commit -m "Erster Stand" + + + $ git commit -m "pierwszy stan" + + + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + + + $ git config --global user.name "Max Mustermann" $ git config --global user.email maxmustermann@beispiel.de + + + $ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + + + + + $ git config gc.auto 0 + + + $ git config gc.auto 0 + + + + + $ git config gc.pruneexpire "30 days" + + + $ git config gc.pruneexpire "30 days" + + + + + $ git diff 1b6d > mein.patch + + + $ git diff 1b6d > moj.patch + + + + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + + + $ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + + + + + $ git format-patch 1b6d + + + git format-patch 1b6d + + + + + $ git format-patch 1b6d..HEAD^^ + + + $ git format-patch 1b6d..HEAD^^ + + + + + $ git init $ git add . + + + + + + + + $ git merge teil2 # 'Merge' in Teil II. $ git branch -d teil2 # Lösche den Branch "teil2" + + + $ git merge czesc2 # 'merge' w części II. $ git branch -d czesc2 # Usuń 'branch' o nazwie "czesc2" + + + + + $ git pull einedatei + + + +$ git pull plik + + + + + $ git push web.server:/pfad/zu/proj.git master + + + $ git push web.server:/sciezka/do/proj.git master + + + + + $ git rebase --continue + + + $ git rebase --continue + + + + + $ git rebase -i HEAD~10 + + + $ git rebase -i HEAD~10 + + + + + $ git reset --hard 1b6d + + + $ git reset --hard 1b6d + + + + + $ git symbolic-ref HEAD + + + $ git symbolic-ref HEAD + + + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + + + $ git tag -f letztesbundle HEAD + + + $ git tag -f ostatnibundle HEAD + + + + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + + + $ git-new-workdir ein/istniejacy/repo nowy/katalog + + + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + + + 'Branch'-Magie + + + Magia 'branch' + + + + + 'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das Öffnen eines neuen Browserfenster. + + + BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. + + + + + 'Branches' verwalten + + + Organizacja BRANCHES + + + + + 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne Netzwerkverbindung. + + + Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. + + + + + 'Commite' Änderungen + + + Zmiany 'commit' + + + + + 'Fork' eines Projekts + + + FORK projektu + + + + + 'Merge' Konflikte + + + Konflikty z 'merge' + + + + + 'Mergen' + + + 'merge' + + + + + 'Nackte Repositories' + + + Gołe REPOSITORIES + + + + + 'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern und Menschen gleichermaßen einfach verstanden werden. + + + 'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. + + + + + 'Push' oder 'Pull' + + + PUSH albo PULL + + + + + 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + + + 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + + + + + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + + + * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + + + + + * `reword` um die Log-Beschreibung zu ändern. + + + * `reword`, by zmienić opisy logu. + + + + + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + + + * `squash` by połączyć 'commit' z poprzednim ('merge'). + + + + + *Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. + + + *Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. + + + + + *Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. + + + *Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. + + + + + *Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. + + + *clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. + + + + + *Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + + + *Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie jest: *git branch*. + + + + + *Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. + + + *Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. + + + + + *Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. + + + *reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. + + + + + - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. + + + - *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. + + + + + - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene. + + + - *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + + + + + - Entferne 'Commits' durch das Löschen von Zeilen. + + + - usuń 'commits' poprzez skasowanie lini. + + + + + - Ersetze `pick` mit: * `edit` um einen 'Commit' für 'amends' zu markieren. + + + - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. + + + + + - Organisiere 'Commits' durch verschieben von Zeilen. + + + - przeorganizuj 'commits' przesuwając linie. + + + + + ---------------------------------- + + + ---------------------------------- + + + + + ... + + + ... + + + + + <<branch,Dazu kommen wir später>>. + + + <<branch, wrócimy do tego później>> + + + + + A, B, C, D sind 4 aufeinander folgende 'Commits'. + + + A, B, C i D sa 4 nastepujacymi po sobie COMMITS. + + + + + Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + + Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + + + + + Aber auch wenn wir ein normales 'Repository' auf dem zentralen Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. + + + Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. + + + + + Aber deshalb ein einfacheres, schlecht erweiterbares System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen zu verwenden. + + + Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + + + + + Aber du bist mit der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas umformuliert werden. + + + Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. + + + + + Aber einige Leute sind diesen Zähler gewöhnt. + + + Niektórzy jednak przyzwyczaili się do tego licznika. + + + + + Aber es gibt einen viel einfacheren Weg. + + + Istnieje jednak dużo prostszy sposób. + + + + + Aber es ist eine Illusion. + + + Ale to iluzja. + + + + + Aber manchmal arbeite ich an meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich inzwischen nicht austauschen können. + + + Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + + + + + Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. + + + Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. + + + + + Aber stell Dir vor, Du hast ihn niemals notiert? + + + Wyobraź jednak sobie, że nigdy go nie notowałeś? + + + + + Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein Verlauf um die Größe des gesamten Projekts wachsen. + + + Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + + + + + Aber wie kannst Du zurück in die Zukunft? + + + Ale jak teraz wrócić znów do przyszłości? + + + + + Aber, das überschreibt die vorherige Version. + + + Jednak, przepisze to poprzednią wersję. + + + + + Aber, wenn du an der Vergangenheit manipulierst, sei vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. + + + Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. + + + + + Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der häufigsten Anweisungen umgehen. + + + Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + + + + + 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'. + + + Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + + + + + Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls wird Git alle Änderungen 'comitten'. + + + Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + + + + + Aktualisiere das lokale 'Repository' erneut mit 'pull', löse eventuell aufgetretene 'Merge'-Konflikte und versuche es nochmal. + + + Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + + + + + Alles, was man mit dem zentralen 'Repository' tun kann, kannst du auch mit deinem 'Clone' tun. + + + Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + + + + + Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus. + + + Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + + + + + Allgemein, *filter-branch* lässt dich große Bereiche der Chronik mit einer einzigen Anweisung verändern. + + + Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + + + + + Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + + + A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + + + + + Alternativ kannst Du *git commit \--interactive* verwenden, was dann automatisch die ausgewählten Änderungen 'commited' nachdem Du fertig bist. + + + Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + + + + + Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen. + + + Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + + + + + Am schrecklichsten sind fehlende Dateien wegen eines vergessenen *git add*. + + + Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. + + + + + Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte Anweisungen scheuen, bis sie absolut notwendig sind. + + + Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. + + + + + Andere bestehen auf dem anderen Extrem: mehrere Fenster, ganz ohne Tabs. + + + Inni upierają się przy tym: więcej okien, zupełnie bez tabs. + + + + + Andere denken, daß Zweige vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit losgelassen werden. + + + Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. + + + + + Andere können davon ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und dass er die offizielle Version enthält. + + + Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję + + + + + Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen Format einliest um eine Git Chronik von Anfang an zu erstellen. + + + W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. + + + + + Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen das Zerstören der Daten. + + + Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. + + + + + Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige Entwickler war. + + + Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. + + + + + Angenommen du hast Teil I 'commitet' und zur Prüfung eingereicht. + + + Przyjmijmy, że wykonałeś 'commit' pierwszej części i przekazałeś do sprawdzenia. + + + + + Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. + + + Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. + + + + + Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht installiert. + + + Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. + + + + + Angenommen, wir sind bei D: + + + Zalozmym ze jestesmy w D: + + + + + Anhang A: Git's Mängel + + + Załącznik A: Wady GIT + + + + + Ansonsten: + + + W przeciwnym razie: + + + + + Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + + Zamiast kopiować i wklejać klucze z 'reflog', możesz: + + + + + Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch Ausführen von: + + + Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + + + + + Anstelle des zweiten Befehl kann man auch `git commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. + + + Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. + + + + + Antworte mit "y" für Ja oder "n" für Nein. + + + Odpowiedz po prostu "y" dla tak, albo "n" dla nie. + + + + + Arbeit ist Spiel + + + Praca jest zabawą + + + + + Arbeite wie du willst + + + Pracuj jak chcesz + + + + + Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem nutzt und vermisst du Git? + + + Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? + + + + + Argh! + + + Och! + + + + + Auch auf Deiner Seite ist alles was Du brauchst ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' aufzusetzen. + + + Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + + + + + Auch wenn Git die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + + + Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + + + + + Auch wenn du den ``master'' 'Branch' umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch respektieren. + + + Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + + + + + Auch wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser Faustregel weniger anfällig für falsche Vergleiche. + + + Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + + + + + Auf Debian und Ubuntu, findet man dieses Verzeichnis unter +/usr/share/doc/git-core/contrib+. + + + W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + + + + + Auf Git bauen + + + Budować na git + + + + + Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem Ordner: + + + Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + + + + + Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + + Po stronie odbiorcy zapamiętaj email jako daną i podaj: + + + + + Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, gibt es keinen Sicherheitsüberprüfungen mehr. + + + Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. + + + + + Aus diesem Grund plädiere ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man Mercurial bevorzugt. + + + Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial + + + + + Außerdem kannst du sie komprimieren um Speicherplatz zu sparen. + + + Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. + + + + + Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen hinauswachsen. + + + Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. + + + + + Außerdem waren sich die Entwickler der Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen bewusst. + + + Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + + + + + B ist identisch mit A, außer dass einige Dateien gelöscht wurden. + + + B rozni sie od A, jedynie tym, ze usunieto kilka plikow. + + + + + Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine historische Unwegbarkeiten umgehen. + + + Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. + + + + + Beachte, dass alle Änderungen, die nicht 'commitet' sind übernommen werden. + + + Zauwaz, ze wszystkie zmiany, ktorre nie zostaly 'commit', zostaly przejete + + + + + Beginne ein paar 'Branches': + + + Wystartuj kilka BRANCHES: + + + + + Bei Softwareprojekten kann das ähnlich sein. + + + W projektach programistycznych moze to wygladac podobnie. + + + + + Bei einem Mercurial Projekt gibt es gewöhnlich immer einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt automatisch die Benutzer von Mercurial mit einbezieht. + + + W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + + + + + Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem Ordner voller Dateien. + + + Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. + + + + + Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren und für andere Benutzer veröffentlichen will. + + + Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. + + + + + Bei verteilen Systemen ist das viel besser, da wir die benötigt Version lokal 'clonen' können. + + + Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + + + + + Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen gib ein: + + + Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + + + + + Beide laden ihre Änderungen hoch. + + + Obydwoje ładują swoje zmiany na serwer. + + + + + Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin um die alte Version zu erhalten. + + + Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. + + + + + Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + + + Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + + + + + Benutze *git submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten willst. + + + Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + + + + + Beschaffe dir die `hg-git`-Erweiterung mit Git: + + + Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + + + + + Betrachten wir Webbrowser. + + + Przyjżyjmy się takiej przeglądarce internetowej. + + + + + Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. + + + Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom + + + + + Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir uns mit ihm auseinandersetzen um das bisherige zu erklären. + + + Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. + + + + + Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' gewechselt, wie in: + + + Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + + + + + Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. + + + Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* + + + + + Changelog erstellen + + + Utwożenie historii + + + + + Chronik umschreiben + + + Przepisanie historii + + + + + Computer synchronisieren + + + Synchronizacja komputera + + + + + Computerspiele machten das lange Zeit so, viele von ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + + + Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + + + + + Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in Versionsverwaltungssystemen die einzelne Dateien überwachen. + + + Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + + + + + Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen: + + + Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + + + + + Da diese Anweisung aber auch zu ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option hinzufügen. + + + Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + + + + + Da ich in erster Linie unter Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + + + Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + + + + + Da war auch ein interessanter http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige Engpässe zu vermeiden. + + + Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. + + + + + Dadurch agieren nun alle Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, während deine Dateien unverändert erhalten bleiben. + + + Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. + + + + + Dafür ist es nun zu spät. + + + Na to jest już za późno. + + + + + Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. + + + Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. + + + + + Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor der Operation. + + + Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. + + + + + Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen und am Teil II arbeiten, bevor Teil I offiziell freigegeben wurde. + + + Dzieki bezbolesnemu 'branch' i 'merge' mozemy te regoly naciagnac i pracowac nad druga czescia jeszcze zanim pierwsza zostanie oficjalnie zatwierdzona + + + + + Dann 'branche' zu Teil II: + + + Najpierw zmień 'branch' do części drugiej + + + + + Dann 'commite' dein Projekt und gib ein: + + + Wtedy COMMIT twój projekt i wykomaj: + + + + + Dann auf dem anderen: + + + Potem na następnym: + + + + + Dann erstelle ein Git 'Repository' in deinem Arbeitsverzeichnis: + + + Utwórz GIT REPOSITORY w katalogu roboczym + + + + + Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + + + No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + + + + + Dann gehe wieder ins neue Verzeichnis und gib ein: + + + Następnie przejdź do dowego katalogu i podaj: + + + + + Dann gib ein: + + + Wpisujesz: + + + + + Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. + + + W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. + + + + + Dann mache diese Änderungen und gib ein: + + + Wykonaj je i wpisz: + + + + + Dann mache folgendes auf deinem Server: + + + To po prostu zwób coś takiego na twoim serwerze: + + + + + Dann nutze: + + + Możesz w tym wypadku skorzystać z: + + + + + Dann sage deinen Nutzern: + + + Następnie udostępnij link twoim użytkownikom: + + + + + Dann tippe: + + + Wpisz wtedy: + + + + + Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch Eingabe von: + + + Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + + + + + Dann, wenn du den Fehler behoben hast: + + + Jak juz uporasz sie z bledem: + + + + + Dann: + + + Wtedy: + + + + + Das 'Mergen' mehrerer 'Branches' erzeugt einen 'Commit' mit mindestens zwei Eltern. + + + 'merge' kilku 'branche' wytwarza 'commit' z minimum 2 rodzicami. + + + + + Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen werden; nur diejenigen mit SSH Zugriff können es einsehen. + + + To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. + + + + + Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf Git aufbauen. + + + Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. + + + + + Das Beispiel 'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation über 'Git-agnostic transports' wie z.B. HTTP benötigt. + + + Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. + + + + + Das Neueste vom Neuen + + + Najnowsze z nowych + + + + + Das Problem ist, den entsprechenden SHA1-Wert zu finden. + + + Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. + + + + + Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann. + + + To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + + + + + Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese Bezeichnung hatten. + + + Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. + + + + + Das `tailor` Programm konvertiert Bazaar 'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während `bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + + + Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + + + + + Das erfordert aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch aufrufen, wenn sie eine Datei bearbeiten. + + + Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + + + + + Das funktioniert wahrscheinlich ganz gut, wenn auch unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen Dateien braucht. + + + Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + + + + + Das geht wesentlich schneller, aber der resultierende Klon hat nur eingeschränkte Funktionalität. + + + Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + + + + + Das gilt stellvertretenden für andere Anweisungen. + + + Reprezentuje to również wszystkie inne polecenia. + + + + + Das heißt, nachdem Du ein 'Bundle' gesendet hast, gib ein: + + + To znaczy, po wysłaniu 'bundle', podaj: + + + + + Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. + + + To zadanie dla *git rebase*, jak wyżej opisane. + + + + + Das ist eine primitive und mühselige Form der Versionsverwaltung. + + + Jest to prymitywna i pracochłonna forma kontroli wersji. + + + + + Das ist unüblich. + + + Znajduje to dość szerokie zastosowanie + + + + + Das ist wie bei den Spielen der alten Schule, die nur Speicherplatz für eine Sicherung hatten: sicherlich konntest du speichern, aber du konntest nie zu einem älteren Stand zurück. + + + To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. + + + + + Das kannst du mit folgendem Befehl erstellen: + + + Możesz go utwoszyć korzystając z polecenia: + + + + + Das neue Verzeichnis enthält die Dateien mit deinen Änderungen. + + + Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami + + + + + Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche Versionsgeschichte die beiden Versionen automatisch synchron bleiben. + + + Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. + + + + + Das setzt voraus, dass sie einen SSH-Zugang haben. + + + Wymaga to od nich posiadanie klucza SSH do twojego komputera. + + + + + Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) und stellt den vorherigen Stand wieder her. + + + Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. + + + + + Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine Authentifizierung, also kann jeder das Projekt abrufen. + + + Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. + + + + + Das war eine Schande, denn vielleicht war deine vorherige Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du später gerne noch einmal zurückkehren möchtest. + + + To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. + + + + + Das wirft die Frage auf: Welchen 'Commit' referenziert `HEAD~10` tatsächlich? + + + To nasuwa pytanie; ktoremu 'commit' referuje HEAD++10 wlasciwie? + + + + + Dass, wenn der Chef ins Büro spaziert, während du das Spiel spielst, du es schnell verstecken kannst? + + + By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + + + + + Dateien herunterladen + + + Zładowanie danych + + + + + Dateien ohne Bezug + + + Pliki z brakiem odniesienia + + + + + Dateihistorie + + + Historia pliku + + + + + Dein Arbeitsverzeichnis erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu editieren. + + + Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować + + + + + Deine Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so weiter. + + + Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi i tak dalej. + + + + + Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. + + + Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali + + + + + Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je komplizierter der Kontextwechsel ist, desto größer ist der Verlust. + + + Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty + + + + + Der Absender erstellt ein 'Bundle': + + + Nadawca tworzy 'bundle': + + + + + Der Empfänger kann das sogar mit einem leeren 'Repository' tun. + + + Odbiorca może to zrobić z pustym repozytorium. + + + + + Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten 'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. + + + Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. + + + + + Der Index ist ein temporärer Bereitstellungsraum. + + + Index jest tymczasowym rusztowaniem + + + + + Der Index: Git's Bereitstellungsraum + + + Index: ruszkowanie gita + + + + + Der Unterschied zwischen A und B sind die gelöschten Dateien. + + + Roznica miedzy A i B, to skasowane pliki. + + + + + Der Verlauf der Firmware interessiert den Anwender nicht und Änderungen lassen sich schlecht komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' unnötig auf. + + + Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + + + + + Der ``master'' 'Branch' ist ein nützlicher Brauch. + + + MASTER BRANCH jest bardzo użytecznym + + + + + Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den Rest. + + + Teraz 'master branch' zawiera cześć 1 a 'branch' czesc2 posiada resztę. + + + + + Der angegebene Pfad wird stillschweigend überschrieben. + + + Podana ścieżka zostanie bez pytania zastąpiona. + + + + + Der erste Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten Datei im Index. + + + Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. + + + + + Der erster Klon + + + Pierwszy klon + + + + + Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten zukünftigen Operationen dann schnell und offline erfolgen. + + + Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. + + + + + Der zweite Schritt speichert dauerhaft den Schnappschuß, der sich nun im Index befindet. + + + Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. + + + + + Der zweite Teil eines Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und getestet wurde. + + + Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. + + + + + Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch Dateinamen mit ungewöhnlichen Zeichen. + + + Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików + + + + + Die *pull* Anweisung holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese dann mit dem aktuellen 'Branch'. + + + Polecenie *pull* ładuje ('fetch') 'commits' i je zespala ('merge'), wtedy z aktualnym 'branch'. + + + + + Die Anweisung + + + Polecenie: + + + + + Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu schreiben und außerdem um 'Repositories' in Klartext zu übertragen. + + + Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. + + + + + Die Chef-Taste + + + Przycisk SZEF + + + + + Die Datei zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden könnte. + + + Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. + + + + + Die Entwicklung findet in den 'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis auskommen. + + + Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + + + + + Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' umwandeln, indem man in ein leeres 'Repository' 'pushed'. + + + To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT + + + + + Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. + + + Termin opublikowania pewnej wlasciwosci zbliza sie. + + + + + Die Hilfeseiten schlagen vor 'Tags' zu benutzen um dieses Problem zu lösen. + + + Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. + + + + + Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da andere Operationen dafür unglaublich effizient sind. + + + Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. + + + + + Die Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer Kopie der ganzen Datei. + + + Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + + + + + Die Summe der Bemühungen verschlimmerte die Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu verbrauchen um noch längere Wartezeiten zu verhindern. + + + Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. + + + + + Die Textdatei ist wiederhergestellt. + + + Poprzedni plik jest przywrocony do stanu pierwotnego + + + + + Die Ursachen für die großen Unterschiede sollten ermittelt werden. + + + Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. + + + + + Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom anderen Versionsverwaltungssystem ab. + + + Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. + + + + + Die aktuelle Implementierung von Git, weniger sein Design, ist verantwortlich für diesen Pferdefuß. + + + To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. + + + + + Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + + Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + + + + + Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. + + + Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. + + + + + Die letztere kann verwendet werden um SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich gestutzt wurde. + + + Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + + + + + Die meisten Systeme wählen automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + + + Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + + + + + Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, werden verteilte Systeme genannt und können als eine Verallgemeinerung der zentralisierten Systeme verstanden werden. + + + Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. + + + + + Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen Logdateien. + + + Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. + + + + + Die resultierenden Dateien können an *git-send-email* übergeben werden oder von Hand verschickt werden. + + + Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. + + + + + Die vergangenen 'Commits' wissen nichts von der Zukunft. + + + Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + + + + + Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des 'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. + + + Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu + + + + + Die zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird oder die ganze Zeile überarbeiten. + + + Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + + + + + Die Änderungen bleiben im .git Unterverzeichnis gespeichert und können wieder hergestellt werden, wenn der entsprechende SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" oben). + + + Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). + + + + + Die, welche dir am besten gefällt. + + + To, ktore najbardziej tobie odpowiada. + + + + + Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten Elternteil während eines 'Merge'; häufig bist du nur von Änderungen betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen die von anderen 'Branches' eingebracht wurden. + + + Należy wspomnieć, że aktualny 'branch' staje sie pierwszym rodzicem podczas 'merge'; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym 'branch' bardziej, niz ze zmianami z innych 'branch'. + + + + + Dies verleiht ihnen eine universelle Anziehungskraft. + + + Dodaje im to uniwersalnej mocy przyciągania. + + + + + Diese Operationen sind schnell und lokal, also warum nicht damit experimentieren um die beste Kombination für sich selbst zu finden? + + + Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. + + + + + Diese Spiele versteckten die Details vor dem Spieler und präsentierten eine bequeme Oberfläche um verschiedene Versionen des Ordners zu verwalten. + + + Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + + + + + Diese Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. + + + Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. + + + + + Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. + + + Ta inna rzeczywistość, to tzw. branch <<branch, zajmiemy się tym w późniejszym czasie>>. + + + + + Dieser Zyklus wiederholt sich ein paar Mal bevor du zum 'Pushen' in den zentralen Zweig bereit bist. + + + Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + + + + + Dieser spezielle 'Commit' repräsentiert einen leeren 'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git 'Repositories'. + + + Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + + + + + Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange Geschichte existiert, aber auf Dauer wird es sich lohnen. + + + Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. + + + + + Doch anstelle ein paar Knöpfe zu drücken, machst du 'create', 'check out', 'merge' und 'delete' von temporären 'Branches'. + + + Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. + + + + + Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie auch die ganze Geschichte bis zum angegebenen Punkt mit sich. + + + Jednak 'clone' niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. + + + + + Du arbeitest also an Teil II und 'commitest' deine Änderungen regelmäßig. + + + Pracujesz w cześci 2 i regularnie wykonujesz 'commit'. + + + + + Du arbeitest an einem aktiven Projekt. + + + Pracujesz nad aktywnym projektem. + + + + + Du bekommst einen Haufen Dateien eines bestimmten Sicherungsstands. + + + Otrzymasz całą masę plików konkretnego stanu + + + + + Du denkst, du kannst das besser? + + + Uważasz, że potrafisz to lepiej + + + + + Du hast auch noch andere Optionen, z.B. den Aufschub der Entscheidung; drücke "?" + + + Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" + + + + + Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch ging. + + + Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. + + + + + Du kannst Dir alle SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten 'Commit' findest. + + + Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' + + + + + Du kannst auch 'Commits' aufteilen. + + + Możesz również podzielć 'commits'. + + + + + Du kannst auch eine Gruppe von 'Commits' angeben: + + + Możesz podać grupę 'commits' + + + + + Du kannst auch nach dem 5. letzten 'Commit' fragen: + + + Możesz również udać się do 5 z ostatnich COMMIT: + + + + + Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst: + + + Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + + + + + Du kannst den Zustand des Ordners sichern so oft du willst und du kannst später jeden Sicherungspunkt wieder herstellen. + + + Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. + + + + + Du kannst die Nummer für den ersten Elternteil weglassen. + + + Mozesz pominac numer pierwszego rodzica + + + + + Du kannst diese Notation mit anderen Typen kombinieren. + + + Mozesz łączyć ta notacje takze z innymi + + + + + Du kannst diese Änderungen sogar 'commiten'. + + + Mozesz te zmiany nawet 'commit'. + + + + + Du kannst einen 'Patch' Entwicklern schicken, ganz egal, was für ein Versionsverwaltungssystem sie benutzen. + + + Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. + + + + + Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen referenzieren. + + + Mozesz tez jakiegos rodzica referowac go daszkiem. + + + + + Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. + + + Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. + + + + + Du kannst noch viel mehr machen: die Hilfe erklärt, wie man 'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu beschleunigen. + + + Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + + + + + Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. + + + Możesz pracować nad dwoma funkcjami jednocześnie + + + + + Du kannst sogar 'Branches' in einem 'Repository' umorganisieren. + + + Możesz nawet przeorganizować 'branches' w repozytorium. + + + + + Du kannst sogar die frisch gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + + Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + + + + + Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + + + Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak tylko zechcesz, niezaleznie od tego, w kazdej z tych wersji mozesz wykonać 'commit' + + + + + 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. + + + Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. + + + + + Du magst Kopieren und Einfügen von Hashes nicht? + + + Nie lubisz kopiować i wklejać hash-ów? + + + + + Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. + + + Może pytasz się, czy BRANCHES są warte tego zachodu. + + + + + Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + + Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + + + + + Du merkst, dass du vergessen hast eine Datei hinzuzufügen? + + + Zauważasu, że zapomniałeś dodać jakiegoś pliku? + + + + + Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + + Akurat gdy strasznie zajety biezacymi zadaniami projektu, otrzymujesz polecenie zajecie sie bledem w 'commit' 1b6d... + + + + + Du willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und hinter den offiziellen Änderungen sehen. + + + Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + + + + + Du willst deine laufenden Arbeiten für dich behalten und andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert hast. + + + Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. + + + + + Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? + + + Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? + + + + + Du willst zahlreiche, vor Manipulation geschützte, redundante Datensicherungen an unterschiedlichen Orten? + + + Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach + + + + + Dumme Fehler verschmutzen meine 'Repositories'. + + + Głupie błędy zaśmiecają moje repozytoria. + + + + + Durch cleveres verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine Versionsgeschichte mit dem original 'Repository' teilt: + + + Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + + + + + Durch das Herauspicken der Rosinen kannst du einen 'Branch' konstruieren, der nur endgültigen Code enthält und zusammengehörige 'Commits' gruppiert hat. + + + Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + + + + + EOT + + + EOT + + + + + Ebenso grundlegende Funktionen wie das Durchsuchen der Chronik oder das 'comitten' einer Änderung. + + + Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. + + + + + Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu überschreiben, wenn das einen Datenverlust zur Folge hat. + + + Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. + + + + + Ebenso, wenn Git Dateien vergessen soll: + + + To samo, gdy chcesz by GIT zapomnial o plikach: + + + + + Eigenarten der Anwendung + + + Charakterystyka zastosowania + + + + + Ein 'Commit' kann mehrere Eltern haben, welchem folgen wir also? + + + 'commit' moze posiadac wiecej rodzicow, za którym właściwie iść? + + + + + Ein 'Commit' ohne die *-a* Option führt nur den zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + + + Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + + + + + Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem zentralisierten Versionsverwaltungssystem: Das Zuhause deines Projekts. + + + BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu + + + + + Ein Auto, das repariert werden soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. + + + Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. + + + + + Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + + + Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + + + + + Ein Liste aller 'Branches' bekommst du mit: + + + Listę wszystkich BRANCHES otrzymasz poprzez: + + + + + Ein Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die Konstruktion fortgesetzt werden kann. + + + Prototyp musi czekac na wyprodukowanie części zanim mozna podjac dalsza konstrukcje. + + + + + Ein Versionsverwaltungssystem zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die periodisch von einer Webcam gemacht werden. + + + Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + + + + + Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche die Form einer großen Binärdatei annimmt. + + + Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. + + + + + Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. + + + Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. + + + + + Ein beliebter Vertreter ist +workdir/git-new-workdir+. + + + Ulubionym przedstawicielem jest +workdir/git-new-workdir+. + + + + + Ein dummer Aberglaube + + + Głupi przesąd + + + + + Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden um die am häufigsten benutzten Anweisungen zu verkürzen: + + + Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + + + + + Ein einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und so weiter. + + + Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. + + + + + Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die so ein System bietet. + + + Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. + + + + + Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, bezogen auf 'Commits', hält sich Git nicht an diese Konvention. + + + Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. + + + + + Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein Arbeitsverzeichnis hat. + + + Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego + + + + + Ein negativer Rückgabewert beendet die 'bisect'-Operation sofort. + + + Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + + + + + Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. + + + O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. + + + + + Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. + + + powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. + + + + + Ein unmittelbarer Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist keine Kommunikation mit dem Hauptserver notwendig. + + + Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + + + + + Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. + + + Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. + + + + + Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. + + + Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. + + + + + Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach verändert werden kann. + + + Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. + + + + + Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + + Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + + + + + Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen jedes nur die in Beziehung stehenden Dateien enthält. + + + Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. + + + + + Eine Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + + + Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + + + + + Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git 'Repositories' arbeiten. + + + Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git + + + + + Eine gute erste Annäherung ist, dass alles was eine zentralisierte Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. + + + Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. + + + + + Eine unzuverlässige Internetverbindung stört mit Git nicht sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig wie ein lokale Festplatte sein sollte. + + + Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. + + + + + Einen Klon zu erstellen ist aufwendiger als in anderen Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + + + Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + + + + + Eines Tages brauchst du vielleicht dringend einen Schraubendreher, dann bist du froh mehr als nur einen einfachen Flaschenöffner bei dir zu haben. + + + Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + + + + + Einfach: + + + Proste; + + + + + Einfacher geht das mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + + Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + + + + + Einfaches Veröffentlichen + + + Uproszczone publikowanie + + + + + Einige Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für unterschiedliche Webseiten. + + + Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron + + + + + Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik ein, mit allen Fehlern, Nachteilen und Mängeln. + + + Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. + + + + + Einige Git Anweisungen lassen Dich ihn manipulieren. + + + Niektóre komendy git pozwolą ci nim manipulować. + + + + + Einige Projekte erfordern, dass dein Code überprüft werden muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + + + Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, nim bedziesz mogl zaczac z następną część. + + + + + Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf irgendeine Weise für die Bearbeitung zu kennzeichnen. + + + Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. + + + + + Einige lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. + + + Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. + + + + + Einige plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für seine Arbeit einen neuen 'Branch' anzulegen. + + + Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + + + + + Einleitung + + + Wprowadzenie + + + + + Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten offiziellen Änderungen dort hin. + + + Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. + + + + + Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten. + + + Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + + + + + Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' Anweisungen. + + + Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. + + + + + Er muss sicher sein, aber nicht privat. + + + Musi być bezpieczne, jednak nie musi być prywatne + + + + + Erinnere Dich an das erste Kapitel: + + + Przypomnij sobie pierwszy rozdział: + + + + + Erste Schritte + + + Pierwsze kroki + + + + + Erstelle ein Git 'Repository' für deine Dateien: + + + Utwóż GIT REPOSITORY dla twoich danych + + + + + Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen Rechner. + + + Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. + + + + + Erstelle eine Dummy-Datei um dieses Problem zu umgehen. + + + Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + + + + + Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + + + Es enthält nur Dateien, die normalerweise im '.git' Unterverzeichnis versteckt sind. + + + Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. + + + + + Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + + + O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + + + + + Es gibt mindestens 3 Lösungen. + + + Istnieja przynajmniej 3 rozwiazania. + + + + + Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der ganze Verlauf geklont wird. + + + Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + + + + + Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das Ergebnis ist das selbe. + + + Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. + + + + + Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit 'tarball' Archiven oder *rsync* zu arbeiten. + + + Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. + + + + + Es ist als ob der Hauptserver gespiegelt wird. + + + Wygląda to jak klonowanie serwera. + + + + + Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel. + + + Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. + + + + + Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu erweitern. + + + Dość łatwo zastosować tą samą sztuczkę na dowolną ilość części. + + + + + Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen wäre. + + + Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 'commit' wcześniej utworzyć 'branch'- + + + + + Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu sehen was auf dem anderen Kanal los ist. + + + Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. + + + + + Es können noch weitaus kompliziertere Situationen entstehen. + + + Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. + + + + + Es liegt an dir diese weise zu nutzen. + + + Stosowanie tej możliwości zależy od ciebie + + + + + Es sei denn die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, oder die `--bare` Option wird übergeben. + + + Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + + + + + Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. + + + Wyglada jakbysmy ten plik zmienili i wykonali 'commit' + + + + + Es stellt sich heraus, dass diese Notation immer den ersten Elternteil wählt. + + + Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. + + + + + Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. + + + Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. + + + + + Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, erstelle temporären Code und so weiter und 'commite' deine Änderungen oft. + + + Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. + + + + + Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können Verwirrungen entstehen. + + + Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + + + + + Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen: + + + Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + + + + + Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes: + + + Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + + + + + Finde heraus was du seit dem letzten 'Commit' getan hast: + + + Znajdz co zrobiles od ostatniego COMMIT: + + + + + Firewalls könnten uns stören und was, wenn wir gar keine Berechtigung für eine Serverkonsole haben. + + + Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + + + + + Folglich ist standardmäßig das 'Pushen' per Git-Protokoll verboten. + + + Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + + + + + Fortgeschrittenes Rückgängig machen/Wiederherstellen + + + Zaawansowane usuwanie/przywracanie + + + + + Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. + + + Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. + + + + + Führe *git add* aus um sie hinzuzufügen und dann die vorhergehende Anweisung. + + + Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + + + + + Führe die Anweisungen des anderen Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale 'Repository' zu übertragen. + + + Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + + + + + Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst leeren Git 'Repository'. + + + Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY + + + + + Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und "A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen Bereich. + + + Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. + + + + + Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + + Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + + + + + Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. + + + Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. + + + + + Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt wird. + + + Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok + + + + + Für eine vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur Versionsverwaltung]. + + + Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + + + + + Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. + + + Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. + + + + + Für jetzt, merke dir + + + zapamietaj jednak na razie, że: + + + + + Geheime Quellen + + + Utajnione Zródła + + + + + Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus der Geschichte zu löschen. + + + Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. + + + + + Genau deswegen gibt es Releasezyklen. + + + Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. + + + + + Genauso wenig setzt das 'Clonen' des zentralen 'Repository' dessen Bedeutung herab. + + + Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + + + + + Geschichte machen + + + Tworzyć historię + + + + + Geschichtsstunde + + + Lekcja historii + + + + + Gewagte Kunststücke + + + Śmiałe wyczyny + + + + + Gib ein: + + + Za pomoc + + + + + Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut ('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas zwischen 1 und 127 für 'bad'. + + + Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. + + + + + Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. + + + GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* + + + + + Git für Fortgeschrittene + + + Git dla zaawansowanych + + + + + Git hat mir bewundernswert gedient und hat mich bis jetzt noch nie im Stich gelassen. + + + Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. + + + + + Git lässt dich genauso arbeiten, wie du es willst. + + + GIT pozwoli ci pracować dokładnie tak jak chcesz. + + + + + Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + + + GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + + + + + Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben: + + + Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + + + + + Git referenziert Änderungen anhand ihres SHA1-Hash, was in vielen Fällen besser ist. + + + Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + + + + + Git ruft eine Stand ab, der genau dazwischen liegt. + + + Git przywoła stan, który leży dokładnie pośrodku. + + + + + Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. + + + Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` + + + + + Git tauscht selten Daten direkt zwischen Deinem Projekt und seiner Versionsgeschichte aus. + + + Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. + + + + + Git unter Microsoft Windows kann frustrierend sein: + + + Korzystanie z GIT pod Microsoft Windows może być frustrujące: + + + + + Git versetzt dich wieder auf einen Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert so die Möglichkeiten. + + + Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. + + + + + Git versteht beide Gesichtspunkte. + + + Git jest wyrozumiały dla oby dwuch stron. + + + + + Git von Anfang an zu benutzen, ist wie ein Schweizer Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen geöffnet werden. + + + Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. + + + + + Git war das erste Versionsverwaltungssystem, das ich benutzt habe. + + + Git był pierwszym systemem kontroli wersji którego używałem. + + + + + Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die Details selbst erarbeiten. + + + Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. + + + + + Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der Änderungen. + + + Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. + + + + + Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von 20 Null-Bytes gesetzt. + + + Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash + + + + + Git über SSH, HTTP + + + Git przez SSH, HTTP + + + + + Git über alles + + + Git ponad wszystko + + + + + Git überwacht immer das ganze Projekt, was normalerweise schon von Vorteil ist. + + + GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + + + + + Globaler Zähler + + + Licznik globalny + + + + + Glücklicherweise hat Git eine Abkürzung dafür, die genauso komfortabel ist wie eine Fernbedienung: + + + Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + + + + + Glücklicherweise ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + + + Na szczęście jest to silną stroną git i chyba jego racją bytu. + + + + + Hast Du es zu lange versäumt zu 'comitten'? + + + Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? + + + + + Hast Du so versessen programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? + + + Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? + + + + + Hast du es satt, wie sich ein Projekt entwickelt? + + + Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt + + + + + Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung eingegeben? + + + Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? + + + + + Hast du gravierende Änderungen vor? + + + Masz zamiar dokonania wielu zmian? + + + + + Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes angezeigt hat? + + + Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? + + + + + Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu zerstören. + + + Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. + + + + + Hinzufügen, Löschen, Umbenennen + + + Dodac, skasowac, zmienic nazwe + + + + + Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die Forschung SHA1 komplett unnütz macht. + + + Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + + + + + Hätte ich mein Projekt fertig gestellt, wäre ich trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + + + Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + + + + + Hättest du nur die Funktion während der Entwicklung getestet. + + + A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + + + + + Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. + + + By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. + + + + + Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin süchtig nach schellen Ausführungszeiten. + + + Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + + + + + Ich bin schnell in die Anwendung hineingewachsen und betrachtete viele Funktionen als selbstverständlich. + + + Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. + + + + + Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur als akademische Übungen. + + + Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. + + + + + Ich habe diese Phänomen aus erster Hand erfahren. + + + Dowiedziałem się o tym fenomenie z pierwszej ręki. + + + + + Ich habe einfach vorausgesetzt, dass andere Systeme ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht anders sein als die Auswahl eines Texteditors oder Internetbrowser. + + + Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + + + + + Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. + + + Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. + + + + + Ich hatte noch keinen Grund zu wechseln. + + + Nie miałem jeszcze powodu do zmiany. + + + + + Ich musste lernen, wie man Projekte verwaltet, an denen mehrere Entwickler aus aller Welt beteiligt waren. + + + Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. + + + + + Ich nehme alles zurück + + + Wycofuję wszystko co na ten temat powiedziałem. + + + + + Ich spiele Computerspiele schon fast mein ganzes Leben. + + + Gram w gry komputerowe przez całe moje życie. + + + + + Ich vermute, dass ich damit nicht alleine bin und der Vergleich hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + + + Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + + + + + Ich war geschockt, als ich später gezwungen war ein zentralisiertes System zu benutzen. + + + Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. + + + + + Im Gegensatz dazu habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu benutzen. + + + W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. + + + + + Im Gegensatz zu den meisten Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem Speicherplatz umzugehen. + + + W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. + + + + + Im Gegensatz zu vielen anderen Versionsverwaltungssystemen funktioniert diese Operation offline, es wird nur von der lokalen Festplatte gelesen. + + + W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + + + + + Immerhin sind 'Clone' fast genauso schnell und du kannst mit *cd* anstelle von esoterischen Git Befehlen zwischen ihnen wechseln. + + + Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + + + + + In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die Standardaktion. + + + W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. + + + + + In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die Fertigstellung des ersten Schritt warten. + + + W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego + + + + + In der Praxis möchtest Du aber das "refs/heads/" entfernen und Fehler ignorieren: + + + W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + + + + + In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' gehalten werden und die Binärdatei außerhalb des Projekts. + + + W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. + + + + + In diesem Fall verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber sehr flexibel. + + + W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. + + + + + In diesem Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. + + + W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. + + + + + In diesem Fall, gib folgendes ein: + + + W tym wypadku użyj komendy: + + + + + In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und Konvertierungswerkzeugen und so weiter. + + + W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. + + + + + In ein paar Jahren hat vielleicht schon ein ganz normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' unbemerkt zu korrumpieren. + + + Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + + + + + In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. + + + W sali sądowej można pewne zdarzenia wykreślić z akt. + + + + + In einem Git 'Repository' gib ein: + + + W repozytorium git natomiast podajesz: + + + + + In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der Chronik eine schwierige Angelegenheit und den Administratoren vorbehalten. + + + W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. + + + + + In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach einem bestimmten Punkt durch Eingabe von: + + + W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + + + + + In extremen Fällen trifft das auch auf die grundlegenden Anweisungen zu. + + + W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. + + + + + In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen 'bundlest', die in den anderen 'Repositories' fehlen. + + + W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. + + + + + In irgendeinem Verzeichnis: + + + W jakimkolwiek katalogu: + + + + + In manchen Systemen benötigt der Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu sehen oder um eine Datei zum Bearbeiten zu öffnen. + + + W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + + + + + In vielen Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + + + W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + + + + + In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation um Dateien zu bekommen. + + + W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. + + + + + Initialer 'Commit' + + + Pierwszy 'commit' + + + + + Irgendwann wirst du dann mit den anderen synchronisieren wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen Versionsverwaltungssystem und gib ein: + + + Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + + + + + Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' werden: + + + Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + + + + + Irgendwo speicherte ein Server alle gespeicherten Spiele, sonst niemand. + + + Jeden serwer zapamiętywał wszystkie gry, nikt inny. + + + + + Irren ist menschlich und so kann es vorkommen, dass du zurück zu Teil I willst um einen Fehler zu beheben. + + + Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. + + + + + Je mehr gespeicherte Spiele benötigt werden, desto mehr Kommunikation ist erforderlich. + + + Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + + + + + Jede Datei einzeln nachzuprüfen ist frustrierend und ermüdend. + + + Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. + + + + + Jeder 'Clone' deines Codes ist eine vollwertige Datensicherung. + + + Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa + + + + + Jeder 'Commit' ab jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen Namen geben können. + + + Kazdy wykonyny od teraz 'commit' prowadzi twoje dane inna droga, ktorej później jeszcze mozemy nadac nazwe. + + + + + Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git log* angezeigt werden. + + + Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. + + + + + Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für alle relevant. + + + Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + + + + + Jeder Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. + + + Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. + + + + + Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. + + + Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. + + + + + Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses Null-'Commits'. + + + Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + + + + + Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert hat. + + + Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + + + + + Jeder kann oberflächliche Klone erstellen, die nur wenig oder gar nichts vom Verlauf des Projekts enthalten. + + + Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. + + + + + Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. + + + Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany + + + + + Jemanden zu fotografieren stiehlt nicht dessen Seele. + + + Fotografując kogoś nie kradziemy jego duszy. + + + + + Jetzt lass uns das Problem etwas komplizierter machen. + + + Skomplikujmy teraz trochę cały ten problem. + + + + + KOPF-Jagd + + + Łowcy głów + + + + + Keine Sorge, gib ein: + + + Nie ma sprawy, wpisz polecenie: + + + + + Keine Sorge: Für solche Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + + Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + + + + + Klassische Quellcodeverwaltung + + + Klasyczne zarządzanie kodem źródłowym + + + + + Kleinere Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie möglich bewirken. + + + Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + + + + + Kleinere Verfehlungen sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + + + Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + + + + + Kontinuierlicher Arbeitsfluss + + + Nieprzerywany ciąg pracy + + + + + Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein 'bare Repository' ist; andernfalls benutze 'pull'. + + + Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + + + + + Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto und erstellen ein 'Repository' in Deinem Webverzeichnis: + + + Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + + + + + Lasse den -global Schalter weg um diese Einstellungen für das aktuelle 'Repository' zu setzen. + + + Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + + + + + Leere Unterverzeichnisse + + + Puste katalogi + + + + + Leere Unterverzeichnisse können nicht überwacht werden. + + + Nie ma możliwości wersjonowania pustych katalogów. + + + + + Leider gibt es noch ein paar Problemfälle. + + + Niestety występuje jeszcze kilka innych problemów. + + + + + Leider kenne ich keine solche Erweiterung für Git. + + + Niestety nie są mi znane takie rozszerzenia dla GIT. + + + + + Leute machen kleine Änderungen von Version zu Version. + + + Ludzie robią jednak pomniejsze zmiany z wersji na wersję. + + + + + Lokale Änderungen zum Schluß + + + Końcowe lokalne zmian + + + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + + + M 100644 inline hello.c data <<EOT #include <unistd.h> + + + +M 100644 inline hello.c data <<EOT #include <unistd.h> + + + + + Machst Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + + + Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + + + + + Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' zuletzt gesendet wurde. + + + Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. + + + + + Man kann das aber auch in einem einzigen Schritt ausführen mit: + + + Można to także wykonać za jednyym zamachem: + + + + + Man muss vom Hauptserver das alte gespeicherte Spiel anfordern. + + + Za każdym razem trzeba ściągnąć wszystkie dane z serwera. + + + + + Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. + + + Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales + + + + + Mein 'Commit' ist zu groß! + + + Mój 'commit' jest za duży! + + + + + Meistens befindet es sich auf einem Server, der nicht viel tut außer Daten zu verbreiten. + + + Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. + + + + + Menschen sind nicht gut im Kontextwechsel. + + + Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + + + + + Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit Git zusammenarbeiten kann. + + + Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT + + + + + Mischmasch Reorganisieren + + + Reorganizacja chaosu + + + + + Mit Git ist 'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + + + Z Git 'merge' jest tak proste, ze wogóle nie zauwazysz, gdy to nastepuje + + + + + Mit anderen Worten, es verwaltet die Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner beliebigen Version. + + + Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + + + + + Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* benannt und gesichert werden kann. + + + Innymi slowami, po przywolaniu starego stanu Git automatychnie zamienia sie w nowy, nienazwany 'branch', ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + + + + + Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon heute wäre es technisch machbar für finanzkräftige Unternehmen Hash-Kollisionen zu finden. + + + Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach + + + + + Mit der Zeit können einige davon zu offiziellen Anweisungen befördert werden. + + + Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. + + + + + Mit der `hg-git`-Erweiterung kann ein Benutzer von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus 'pullen'. + + + Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + + + + + Mit diesem Zauberwort verwandeln sich die Dateien in deinem Arbeitsverzeichnis plötzlich von einer Version in eine andere. + + + Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. + + + + + Mit ein bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen entspricht. + + + Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + + + + + Mit ein paar Tastendrücken kannst Du mehrere geänderte Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') oder Änderungen einzelner Dateien nachprüfen und hinzufügen. + + + Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. + + + + + Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' einfach, aber das Zusammenfügen ('Mergen') ist schwierig. + + + Za pomoca niektorych systemow kontroli wersji utworzenie nowego 'branch' moze i jest proste, jednak pozniejsze zespolenie ('merge') trudne. + + + + + Mit etwas Glück, wenn Git's Verbreitung zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie vielleicht implementiert. + + + Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + + + + + Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. + + + Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. + + + + + Mit zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server herunterladen. + + + Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. + + + + + Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das meiste verstanden haben. + + + W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. + + + + + Multitasking mit Lichtgeschwindigkeit + + + Multitasking z prędkością światła + + + + + Musst Du während eines Notfalls improvisieren? + + + Musisz improwizować w nagłym wypadku? + + + + + Möglicherweise reicht ORIG_HEAD nicht aus. + + + Może się zdarzyć, że ORIG_HEAD nie wystarczy. + + + + + Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + + Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + + + + + Nach ein paar Durchläufen wird dich diese binäre Suche zu dem 'Commit' führen, der die Probleme verursacht. + + + Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. + + + + + Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige 'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder irgendetwas anderes. + + + Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + + + + + Nach einer längeren Sitzung hast du einen Haufen 'Commits' gemacht. + + + Po dłuższej sesji zrobiłeś całą masę 'commits'. + + + + + Natürlich funktioniert der Trick für fast alles, nicht nur Skripts. + + + Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + + + + + Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und vielleicht bist du mit einem anderen System besser dran. + + + Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. + + + + + Natürlich sind dann viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' übermittelt werden. + + + Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. + + + + + Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. + + + Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami + + + + + Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. + + + Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. + + + + + Netzwerkressourcen sind einfach teurer als lokale Ressourcen. + + + Zasoby sieciowe są po prostu droższe niż zasoby lokalne. + + + + + Nicht nur des aktuellen Stand, sondern der gesamten Geschichte. + + + Nie tylko jedo aktualny stan, lecz również jego całą historię. + + + + + Nichts könnte weiter von der Wahrheit entfernt sein. + + + Nic nie jest bardziej oddalone od rzeczywistości. + + + + + Normalerweise füllt man ein Formular auf einer Website aus. + + + Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + + + + + Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den vorhergehenden 'Commit'. + + + Zazwyczaj kazdy 'commit' posiada rodzica-'commit', a mianowicie poprzedni 'commit'. + + + + + Normalerweise können wir den Index ignorieren und so tun als würden wir direkt aus der Versionsgeschichte lesen oder in sie schreiben. + + + Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. + + + + + Normalerweise wird ein Skript, das diese Anweisung benutzt, hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem einzigen Lauf zu migrieren. + + + Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + + + + + Normalerweise ändern sich immer nur wenige Dateien zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. + + + W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. + + + + + Nun bist du wieder im `master` 'Branch', mit Teil II im Arbeitsverzeichnis. + + + Znajdujesz się znowu w `master` 'branch', z częścią II w katalogu roboczym. + + + + + Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + + + I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + + + + + Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach Herzenslust. + + + Przejdź teraz do nowego katalogu i pracuj według upodobania. + + + + + Nun gib ein: + + + Podajemy teraz; + + + + + Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus veröffentlichen. + + + Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + + + + + Nun kannst du Fehler beheben, Änderungen vom zentralen 'Repository' holen ('pull') und so weiter. + + + Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. + + + + + Nun kannst du überall wild temporären Code hinzufügen. + + + Teraz mozesz wszedze wprowadzac na dziko kod tymczasowy. + + + + + Nun können wir die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten Stand, aber wir müssen den 'Master Branch' verlassen. + + + Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic 'master branch'. + + + + + Nun stell dir ein ganz kompliziertes Computerspiel vor. + + + Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. + + + + + Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben Zeile. + + + Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. + + + + + Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab: + + + Nie ma sprawy, jednak najpierw zabezpiecz dane. + + + + + Obwohl es extrem lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, so hat es doch zwei Vorteile: + + + Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + + + + + Oder anders gesagt, du spiegelst den zentralen Server. + + + Lub inaczej mówiąc, odzwierciedlasz zentralny server. + + + + + Oder noch besser, anpacken und mithelfen. + + + Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + + + + + Oder noch schlimmer, deine aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz vorne beginnen. + + + Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + + + + + Oder rufe den fünftletzten 'Commit' ab, mit: + + + Albo przywołaj 5 ostatnich 'commits' za pomocą: + + + + + Oder seit Gestern: + + + Albo od wczoraj + + + + + Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel ein Spieler geleistet hat. + + + Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + + + + + Oder zwischen irgendeiner Version und der vorvorletzten: + + + Albo miedzy jakakolwiek wersja a przedostatnia: + + + + + Patches: Das globale Zahlungsmittel + + + Patches: globalny środek płatniczy + + + + + Persönliche Erfahrungen + + + Osobiste doświadczenia + + + + + Prüfe, ob die 'filter-branch' Anweisung getan hat was du wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' Operationen durchführst. + + + Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + + + + + Quellcode veröffentlichen + + + +Publikowanie kodu źródłowego + + + + + Rund ums 'Clonen' + + + Polecenie CLONEN + + + + + Rückgängig machen + + + Przywracanie + + + + + SHA1 Schwäche + + + Słabości SHA1 + + + + + Sagen wir du bist im `master` 'Branch'. + + + Powiedzmy też, że znajdujesz sie w 'master branch'. + + + + + Sagen wir, du hast einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt oder Dateien einer Website. + + + Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. + + + + + Schließlich, Teil I ist zugelassen: + + + Wreszcie, dopuszczamy część I: + + + + + Schmutzarbeit + + + Brudna robota + + + + + Schnelle Fehlerbehebung + + + Szybkie poprawianie bledow. + + + + + Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. + + + Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. + + + + + Sei vorsichtig, wenn Du 'checkout' auf diese Weise benutzt. + + + Bądź ostrożny stosując 'checkout' w ten sposób. + + + + + Sie alle haben bequeme Schnittstellen um Ordner voller Dateien zu verwalten. + + + Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. + + + + + Siehe *git help branch*. + + + Zobacz: *git help branch*. + + + + + Siehe *git help diff* und *git help rev-parse*. + + + Sprawdź *git help diff* i *git help rev-parse*. + + + + + Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine schnellere Methode vorstellt wird. + + + Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. + + + + + Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die ignoriert werden sollen. + + + Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + + + + + Siehe *git help stash*. + + + Zobacz *git help stash*. + + + + + Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen Anweisung. + + + Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. + + + + + Siehe auf der Git Hilfeseite für einige Anwendungsbeispiele. + + + Na stronach pomocy git znajdziesz więcej zasosowań. + + + + + Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für mehr. + + + Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + + + + + So schwierig zu lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das Spiel zu beenden. + + + Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. + + + + + So wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' mit abweichender Chronik hat und die Zweige sich austauschen sollen. + + + Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + + + + + Sogar einige Git Anweisungen selbst sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. + + + Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. + + + + + Solange Deine Mitstreiter ihre eMails lesen können, können sie auch Deine Änderungen sehen. + + + Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. + + + + + Solltest du kürzlich konkurrierende Änderungen an der selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut 'commiten' nachdem du die Konflikte aufgelöst hast. + + + Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + + + + + Speichere und Beende. + + + Zapamietaj i zakończ. + + + + + Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von Mitstreitern einbinden. + + + Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów + + + + + Stand sichern + + + Backup + + + + + Standardmäßig beginnst du in einem 'Branch' namens ``master''. + + + Standardowo zaczynasz w BRANCH zwanym MASTER. + + + + + Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. + + + Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. + + + + + Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + + + Standardowo dane te pozostają jeszcze przez 2 tygodnie. + + + + + Standardmäßig nutzt Git Systemeinstellungen um diese Felder auszufüllen. + + + Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. + + + + + Stattdessen stellen wir uns wieder vor, wir editieren ein Dokument. + + + Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + + + + + Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am Dateiende. + + + Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. + + + + + Stell dir zum Beispiel vor, du willst ein Projekt veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen privat bleiben muss. + + + Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. + + + + + Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein Computerspiel vor. + + + Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. + + + + + Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, wird von unzähligen Projekten benutzt. + + + Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. + + + + + Tatsächlich sind wir dem 'Mergen' schon lange begegnet. + + + W gruncie rzeczy spotkalismy sie juz wczesniej z 'merge'. + + + + + Temporäre 'Branches' + + + Tymczasowe BRANCHES + + + + + Teste die Funktion und wenn sich immer noch nicht funktioniert: + + + Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + + + + Tippe: + + + Wpisz: + + + + + Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. + + + Momo ich prostoty, wszystkie sa wazne i pozyteczne. + + + + + Trotz seiner Größe, +einedatei+ enthält das komplette original Git 'Repository'. + + + Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + + + + + Trotzdem gibt es Situationen, in denen es besser ist einen oberflächlichen Klon mit der `--depth` Option zu erstellen. + + + Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. + + + + + Trotzdem kann es langwierig sein, den exakten Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. + + + Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. + + + + + Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe von: + + + Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + + + + + Ultimative Datensicherung + + + Ultymatywny backup danych + + + + + Um Dateien zu bekommen, erstellst du einen 'Clone' des gesamten 'Repository'. + + + By pozyskać dane, tworzysz klon całej REPOSITORY. + + + + + Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. + + + Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, + + + + + Um auf die aktuelle Server-Version zu aktualisieren: + + + Aby zaktualizować do wersji na serwerze: + + + + + Um das Leben zu vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die Firmware. + + + By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + + + + + Um das Löschen zu erzwingen, gib ein: + + + By wymusić skasowanie, podaj: + + + + + Um das Verschieben zu erzwingen, gib ein: + + + By wymusić przesunięcie, podaj: + + + + + Um das zu tun, klickst du auf auf Speichern in deinem vertrauten Editor. + + + W tym celu klikasz na 'zapisz' w wybranym edytorze. + + + + + Um den neuen Stand zu sichern: + + + Aby zapisac nowy stan: + + + + + Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + + By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + + + + + Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + + Lokalne zmiany przekazujemy do serwera poleceniem: + + + + + Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + + Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + + + + Um diese Angaben explizit zu setzen, gib ein: + + + Aby wprowadzić te dane bezpośrednio, podaj: + + + + + Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht. + + + Bedac szczery, w pierwszych miesiacach pracy z GIT nie potrzebowalem zadnych innych poleceń, niz opisane w tym rozdziale + + + + + Um ein tarball-Archiv des Quellcodes zu erzeugen, verwende ich den Befehl: + + + Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + + + + + Um es zu erzwingen, verwende: + + + By zmusić dgo do tego, możesz użyć: + + + + + 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. + + + Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. + + + + + Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + + Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + + + + + Um wieder die Computerspielanalogie anzuwenden: + + + Jeśli znów skorzystamy z analogii do gier komputerkowych: + + + + + Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'. + + + Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + + + + + Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze: + + + By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + + + + + Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + + By na przyklad pokazać logi drugiego rodzica + + + + + Um zum Beispiel die Unterschiede zum ersten Elternteil anzuzeigen: + + + Natomiast, by pokazać roznice do pierwszgo rodzica + + + + + Unbeständige Projekte + + + Niestałe projekty + + + + + Und eigene Sicherungen bereitstellt? + + + Natomiast własne innym udostępni? + + + + + Und wenn der Chef in diesem Verzeichnis herumschnüffelt, tippe: + + + A gdy szef grzebie w twoim katalogu, wpisz: + + + + + Unter den Befehlen im Zusammenhang mit Git's verteilter Art, brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an unterschiedlichen Orten halten. + + + Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + + + + + Unterschiede sind schnell gefunden, weil nur die markierten Dateien untersucht werden müssen. + + + Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + + + + + Untracked .txt files. + + + untracket.txt files. + + + + + Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden Eigenschaften von Git. + + + niezwloczne 'branch' i MERGEN sa uderzajacymi wlasciwosciami GIT + + + + + Verhindere schlechte 'Commits' + + + Zapobiegaj złym 'commits' + + + + + Verliere nicht Deinen KOPF + + + Nie trać głowy + + + + + Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. + + + Niektóre projekty wymagają pliku historii zmian + + + + + Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit jedem 'Commit' erhöht wird. + + + Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". + + + + + Versionsverwaltung + + + Kontrola wersji + + + + + Versionsverwaltung im Untergrund + + + Zarządzanie wersją w poddziemiu + + + + + Versionsverwaltungen sind nicht anders. + + + Systemy kontroli wersji nie różnią się tutaj zbytnio. + + + + + Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und überlassen die schwierigen uns Menschen. + + + Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. + + + + + Versuche + + + Wypróbuj polecenie: + + + + + Versuche auch: + + + Sprobuj rowniez: + + + + + Verteilte Kontrolle + + + Rozproszona kontrola + + + + + Viele Git Befehle funktionieren nicht in 'bare Repositories'. + + + Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH + + + + + Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. + + + Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. + + + + + Viele Kommandos sind mürrisch vor dem intialen 'Commit'. + + + Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. + + + + + Viele Versionen auf diese Art zu archivieren ist mühselig und kann sehr schnell teuer werden. + + + Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + + + + + Vielleicht habe ich meine Kreditkartennummer in einer Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. + + + Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? + + + + + Vielleicht hast Du gerade bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + + + Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + + + + + Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash des letzten 'Commit' verknüpft ist. + + + Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + + + + + Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar ist. + + + Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. + + + + + Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung gesucht, nicht ein Versionsverwaltungssystem. + + + Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. + + + + + Vielleicht kann ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich in der Vergangenheit gebraucht habe. + + + Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + + + + + Vielleicht können Dateiformate geändert werden. + + + Ewentualnie można czasami zmienić format danych. + + + + + Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' abzuarbeiten. + + + Może lubisz odpracować wszystkie aspekty projektu w + + + + + Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' konfigurieren. + + + Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. + + + + + Vielmehr schreibt Git die Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an ihren eigentlichen Bestimmungsort. + + + Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + + + + + Von jetzt an wird + + + Od teraz poleceniem: + + + + + Wann immer du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + + Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + + + + + Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten 'pull'-Befehl zu bleiben? + + + Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? + + + + + Warum ich Git benutze + + + Dlaczego korzystam z GIT + + + + + Warum mehrere Tabs unterstützen und mehrere Fenster? + + + Dlaczego pozwalają używać tabs albo okien? + + + + + Was habe ich getan? + + + Co ostatnio robilem? + + + + + Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? + + + A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? + + + + + Was, wenn du am Ende die temporären Änderungen sichern willst? + + + A co jesli chcesz zapamietac wprowadzone zmiany? + + + + + Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? + + + A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? + + + + + Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. + + + Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. + + + + + Welche Lösung ist die beste? + + + Ktore rozwiazanie jest najlepsze? + + + + + Wenn Anwender langsame Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss unterbrochen wird. + + + Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + + + + + Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien überwacht. + + + Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. + + + + + Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + + Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + + + + + Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + + Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + + + + + Wenn Du zufrieden bist, gib + + + Jeśli jesteś zadowolony z wyniku, wpisz: + + + + + Wenn Spieler vom Hauptserver herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt gespeicherte. + + + Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany + + + + + Wenn alle 'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu lassen, da jegliche Kommunikation über SSH läuft. + + + Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + + + + + Wenn auch nicht so effizient wie mit dem systemeigenen Protokoll, kann Git über HTTP kommunizieren. + + + Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + + + + + Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst um dort einen 'Clone' zu platzieren. + + + Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + + + + + Wenn dein Projekt viele Entwickler hat, musst du nichts tun! + + + Jeśli projekt posiada wielu programistów, nie musisz niczego robić + + + + + Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter Form zu verwenden. + + + Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. + + + + + Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen: + + + Jesli dodales nowe pliki, musisz o tym poinformowac GIT + + + + + Wenn du Glück hast oder sehr gut bist, kannst du die nächsten Zeilen überspringen. + + + Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + + + + + Wenn du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir Konflikte melden. + + + Jesli jednak wprowadziles zmiany, Git bedzie je automatycznie 'merge' i powiadomi cie o eventualnych konfliktach. + + + + + Wenn du deine Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + + Po skończeniu dochodzenia przejdź do orginalnego stanu: + + + + + Wenn du einen 'Commit' mit 'edit' markiert hast, gib ein: + + + Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + + + + + Wenn du fertig bist, + + + A gdy skończysz: + + + + + Wenn du gut voran gekommen bist, willst du das Erreichte sichern. + + + Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. + + + + + Wenn du keine lokalen Änderungen hast, dann ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. + + + Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu kontroli wersji. + + + + + Wenn du nun eine alte Version erhalten willst, musst du den ganzen Ordner archivieren. + + + Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. + + + + + Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit: + + + Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + + + + + Wenn du wieder zurück zu deinen Änderungen willst, tippe: + + + Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + + + + + Wenn ein Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + + + Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + + + + + Wenn es mit einem der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon jemand ein Skript geschrieben hat, das die gesamte Chronik für Git exportiert. + + + Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + + + + + Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + + Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + + + + + Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger Schaden zugefügt. + + + Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. + + + + + Wenn ich zur ursprünglichen Arbeit zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr Zeit beim Versuch mich zu erinnern was ich getan habe. + + + Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. + + + + + Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver eingegangen sind, schlägt dein 'push' fehl. + + + Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. + + + + + Wenn mehrere 'Branches' mit unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' gemacht wird, ist ein manuelles Eingreifen erforderlich. + + + Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + + + + + Wenn nicht, ersetzte "bad" mit "good". + + + Jeśli nie, zamień "bad" na "good". + + + + + Wenn nötig, starte den Git-Dämon: + + + Jeśli konieczne, wystartuj GIT-DAEMON + + + + + Wer bin ich? + + + Kim jestem? + + + + + Wer ist verantwortlich? + + + Kto ponosi odpowiedzialność? + + + + + Wer macht was? + + + Kto robi co? + + + + + Wie 'Clonen', 'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine weitere Stärke, die Git dir bietet. + + + Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. + + + + + Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein 'Repository' ab. + + + W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY + + + + + Wie auch immer, mit Git kannst du nicht viel falsch machen. + + + Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. + + + + + Wie auch immer, vorausgesetzt du hast oft 'comittet', kann Git dir sagen, wo das Problem liegt: + + + Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + + + + + Wie du dir vielleicht schon gedacht hast, verwendet Git 'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + + + Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + + + + + Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + + Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + + + + + Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die Sicherungen der anderen bekommt? + + + W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? + + + + + Wieder andere bevorzugen irgendetwas dazwischen. + + + Inni znowu wolą coś pomiędzy. + + + + + Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne Netzwerkverbindung? + + + Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? + + + + + Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. + + + Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 + + + + + Wir erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß permanent. + + + Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + + + + + Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das bekannteste freie verteilte Versionsverwaltungssystem ist. + + + Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + + + + + Wir haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. + + + We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. + + + + + Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer bestimmten Nachricht enthält. + + + Utworzylismy repozytorium posiadające plik z ta zawartoscia + + + + + Wir haben gesehen, dass man mit <<makinghistory, *git fast-export* und *git fast-import* 'Repositories' in eine einzige Datei konvertieren kann und zurück>>. + + + Widzieliśmym, że poleceniami <<makinghistory, *git fast-export* i *git fast-import* możemy konwertować całe repozytoria w jeden jedyny plik i spowrotem>>. + + + + + Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen: + + + Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + + + + + Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden: + + + Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + + + + + Wir können solche Dateien hin und her schicken um Git 'Repositories' über jedes beliebige Medium zu transportieren, aber ein effizienteres Werkzeug ist *git bundle*. + + + W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + + + + + Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das? + + + Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + + + + + Wir müssen die Datei aus allen 'Commits' entfernen: + + + Musimy ten plik usunąć ze wszystkich 'commits': + + + + + Wir müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen 'pullen', also abholen wollen. + + + Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. + + + + + Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung gekommen, als wir das Laden alter Stände besprochen haben. + + + Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow + + + + + Wird irgendein 'Clone' beschädigt, wird dies dank des kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit anderen zu kommunizieren. + + + Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + + + + + Wirklich, diese Anweisung kann Klartext-'Repositories' über reine Textkanäle übertragen. + + + Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + + + + + Wo ging alles schief? + + + Gdzie wszystko poszło źle? + + + + + Wo kommt dieser Fehler her? + + + Skąd wziął się ten błąd? + + + + + Während dem Warten auf das Ende der Serverkommunikation tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails lesen oder Dokumentation schreiben. + + + Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. + + + + + Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem fatalen Fehler zu beenden. + + + Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. + + + + + Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler steigt. + + + Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. + + + + + Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts 'mergen' mit: + + + W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + + + + + Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon 'pullen'. + + + W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + + + + + Zuerst, 'pull' funktioniert nicht mit 'bare Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später behandeln. + + + Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. + + + + + Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten Version, falls du später mit ihnen interagieren möchtest. + + + Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + + + + + Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. + + + na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. + + + + + Zum Beispiel ist `git checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu komprimieren als eine Sammlung von Änderungen auf Dateibasis. + + + Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + + + + + Zum Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert wird. + + + Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany + + + + + Zum Beispiel wäre es sicher, ihn in einer Zeitung zu veröffentlichen, denn es ist schwer für einen Angreifer jede Zeitungskopie zu manipulieren. + + + Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + + + + + Zum Beispiel, nehmen wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien haben: + + + Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + + + + Zum Beispiel: + + + Na przyklad: + + + + + Zum Glück ist es einfach, Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' einen Zähler erhöht. + + + Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. + + + + + Zum Konvertieren gib in einem leeren Verzeichnis ein: + + + Aby przekonwertować wejść do pustego katalogu: + + + + + Zusätzlich habe ich mich dabei ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten meinem gewohnten Arbeitsablauf zu folgen. + + + Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + + + + + Zusätzlich müssen verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines 'Branch' mit einem abweichenden initialen 'Commit'. + + + Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + + + + + [[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum auch immer, drei Versionen zurückgehen um ein paar print Anweisungen einzufügen, damit du siehst, wie etwas funktioniert. + + + [[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzialanie. + + + + + [[makinghistory]] Du möchtest ein Projekt zu Git umziehen? + + + [[makinghistory]] Masz zamiar przenieść projekt do git? + + + + + bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + + + znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + + + + + beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen Hashwert mit 1b6d beginnt. + + + rozpoczyna z nowym BRANCH o nazwie '``archaiczny'', ktory posiada stan 10 'commit' spowrotem od drugiego rodzica 'commit', ktorego klucz rozpoczyna sie na 1b6d. + + + + + bewegt den HEAD Bezeichner drei 'Commits' zurück. + + + przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. + + + + + bringt dich wieder in die Gegenwart. + + + sprowadzi cie znów do teraźniejszości. + + + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + + + dann 'Clone' es: + + + następnie sklonuj go: + + + + + das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie zuletzt geändert hat und wann. + + + które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. + + + + + den Zustand der Dateien des anderen Computer auf den übertragen, an dem du gerade arbeitest. + + + przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz + + + + + ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" Änderungen). + + + by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) + + + + + exit 1 fi + + + exit 1 fi + + + + + gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt werden kann. + + + produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. + + + + + http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine herkömmliche Datensicherung. + + + Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + + + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + + + int main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + + + nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + + + po uprzednim dodaniu skryptu do `$ PATH`. + + + + + oder Mercurial: + + + albo Mercurial: + + + + + pick 5c6eb73 Link repo.or.cz hinzugefügt pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert pick 100834f Push-Ziel zum Makefile hinzugefügt + + + pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + + + + + um dein Skript herunterzuladen. + + + by mogli zładować skrypt. + + + + + um den 'Patch' anzuwenden. + + + By zastosować patch. + + + + + um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen. + + + możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + + + + + um die letzte Beschreibung zu ändern. + + + by zmienić ostatni opis. + + + + + um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. + + + by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. + + + + + um mehr zu erfahren. + + + by dowiedzieć się więcej. + + + + + um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. + + + by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, + + + + + um zur ursprünglichen Arbeit zurückzukehren. + + + by wrocic do poprzedniego zajęcia + + + + + und 'commite' bevor du auf den 'Master Branch' zurückschaltest. + + + i tylko jeszcze 'commit' zanim wrocisz do 'master branch'. + + + + + und Simsalabim! + + + i Simsalabim! + + + + + und deine Nutzer können ihr Skript aktualisieren mit: + + + a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + + + + + und die letzten zehn 'Commits' erscheinen in deinem bevorzugten $EDITOR. Auszug aus einem Beispiel: + + + i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + + + + + und erstelle neue Aktualisierungsbundles mit: + + + a nowy 'bundle' tworzymy następnie poprzez: + + + + + und fahre mit deiner ursprünglichen Arbeit fort. + + + i kontynuujesz przerwane zajęcie + + + + + und jedermann kann Dein Projekt abrufen mit: + + + i każdy może teraz sklonować twój projekt przez: + + + + + und noch viel mehr + + + i tak dalej. + + + + + und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich die 'Commits' aus dem 'Bundle' durch Eingabe von: + + + i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + + + + untersuchen wes you can study for writing exporters, and also to transport repositories in a human-readable format. + + + + + + + + wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den ``bereinigt'' 'Branch' an. + + + zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. + + + + + wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. + + + To polecenie skasuje COMMIT o wybranym hash-u. + + + + + wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell aufrufst. + + + wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + + + + + zeigt den Namen des aktuellen 'Branch'. + + + pokaże nazwę aktualnego 'branch'. + + + + + zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + + + pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + + + + + Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + + Podobnie możesze celowo wykasować wybrane COMMITS. + + + + + Über die Zeit haben sich einige lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' mit dem offiziellen Zweig. + + + Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. + + + + + Übertrage ('push') dein Projekt auf den zentralen Server mit: + + + Przenieś (PUSH) twój projekt teraz na centralny serwer: + + + + + Üblicherweise ist deren Verhalten einstellbar. + + + Zazwyczaj ich zachowanie daje się ustawić. + + + + + Übung + + + Cwiczenie + + + +
diff --git a/pl/omegat-tmp/omegat/project_save.tmx.201307021212.bak b/pl/omegat-tmp/omegat/project_save.tmx.201307021212.bak new file mode 100644 index 0000000..2410dec --- /dev/null +++ b/pl/omegat-tmp/omegat/project_save.tmx.201307021212.bak @@ -0,0 +1,7309 @@ + + + +
+
+ + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + + + $ chmod a+x hooks/post-update + + + chmod a+x hooks/post-update + + + + + $ echo "Ich bin klüger als mein Chef" > meinedatei.txt $ git init $ git add . + + + $ echo "jestem mądrzejszy od szefa" > mojplik.txt $ git init $ git add . + + + + + $ edit intro.txt # übersetze diese Datei. + + + $ edit intro.txt # Przetłumacz ten plik. + + + + + $ git am < email.txt + + + $ git am < email.txt + + + + + $ git apply < mein.patch + + + $ git apply < moj.patch + + + + + $ git bisect bad + + + +$ git bisect bad + + + + + $ git bisect reset + + + $ git bisect reset + + + + + $ git bisect run mein_skript + + + $ git bisect run moj_skrypt + + + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + + + $ git blame bug.c + + + $ git blame bug.c + + + + + $ git branch -D dead_branch # instead of -d + + + $ git branch -D dead_branch # zamiast -d + + + + + $ git branch -M source target # instead of -m + + + git branch -M zrodlo cel # zamiast -m + + + + + $ git branch -m master teil2 # Umbenennen des 'Branch' "master" zu "teil2". + + + $ git branch -m master czesc2 # zmiana nazwy 'branch' "master" na "czesc2". + + + + + $ git branch -r + + + $ git branch -r + + + + + $ git branch master HEAD~7 # Erstelle neuen "master", 7 Commits voraus + + + $ git branch master HEAD~7 # utwórz nowy "master", 7 'commit' do przodu + + + + + $ git bundle create einedatei HEAD + + + $ git bundle create plik HEAD + + + + + $ git bundle create einedatei HEAD ^1b6d + + + +$ git bundle create plik HEAD ^1b6d + + + + + $ git bundle create neuesbundle HEAD ^letztesbundle + + + $ git bundle create nowybundle HEAD ^ostatnibundle + + + + + $ git checkout -b chef # scheinbar hat sich danach nichts geändert $ echo "Mein Chef ist klüger als ich" > meinedatei.txt $ git commit -a -m "Ein anderer Stand" + + + $ git checkout -b chef # wydaje się, że nic nie uległo zmianie $ echo "Mój szef jest mądrzejszy ode mnie" > mojplik.txt $ git commit -a -m "Inny stan" + + + + + $ git checkout -b schmutzig + + + $ git checkout -b brudy + + + + + $ git checkout -b teil2 + + + $ git checkout -b czesc2 + + + + + $ git checkout -f HEAD^ + + + $ git checkout -f HEAD^ + + + + + $ git checkout 1b6d^^2~10 -b uralt + + + $ git checkout 1b6d^^2~10 -b archaiczny + + + + + $ git checkout chef # wechsle zur Version die der Chef ruhig sehen kann + + + $ git checkout chef # wersja, którą szef spokojnie może zobaczyć + + + + + $ git checkout master # Gehe zurück zu Teil I. $ fix_problem $ git commit -a # 'Commite' die Lösung. + + + $ git checkout master # wróć do częsci I $ usun_problem $ git commit -a # wykonaj 'commit' z rozwiązaniam. + + + + + $ git checkout master # Gehe zurück zu Teil I. $ submit files # Veröffentliche deine Dateien! + + + $ git checkout master # Idź do części I. $ submit files # Opublikuj dane! + + + + + $ git checkout master # wechsle zur Originalversion der Datei + + + $ git checkout master # przejdź do wersji orginalnej + + + + + $ git checkout master . + + + $ git checkout master + + + + + $ git checkout schnmutzig + + + $ git checkout brudy + + + + + $ git checkout teil2 # Gehe zurück zu Teil II. $ git merge master # 'Merge' die Lösung. + + + $ git checkout czesc2 # Idź do części II. $ git merge master # 'merge' rozwiązanie. + + + + + $ git clean -f -d + + + $ git clean -f -d + + + + + $ git clone git://repo.or.cz/gitmagic.git $ cd gitmagic $ mkdir tlh # "tlh" ist das IETF Sprachkürzel für Klingonisch. + + + $ git clone git://repo.or.cz/gitmagic.git $ cd gitmagic $ mkdir tlh # "tlh" jest skrótem IETF języka Klingonisch. + + + + + $ git clone http://web.server/proj.git + + + $ git clone http://web.server/proj.git + + + + + $ git commit --amend + + + $ git commit --amend + + + + + $ git commit --amend -a + + + $ git commit --amend -a + + + + + $ git commit -a -m "Fehler behoben" $ git checkout master + + + $ git commit -a -m "usunięto bug" $ git checkout master + + + + + $ git commit -m "Erster Stand" + + + $ git commit -m "pierwszy stan" + + + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + + + $ git config --global user.name "Max Mustermann" $ git config --global user.email maxmustermann@beispiel.de + + + $ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + + + + + $ git config --list + + + $ git config --list + + + + + $ git config gc.auto 0 + + + $ git config gc.auto 0 + + + + + $ git config gc.pruneexpire "30 days" + + + $ git config gc.pruneexpire "30 days" + + + + + $ git config remote.origin.url git://neue.url/proj.git + + + git config remote.origin.url git://nowy_link/proj.git + + + + + $ git diff 1b6d > mein.patch + + + $ git diff 1b6d > moj.patch + + + + + $ git diff origin/HEAD + + + $ git diff origin/HEAD + + + + + $ git diff origin/experimentell^ other/some_branch~5 + + + $ git diff origin/experimental^ inny/jakis_branch~5 + + + + + $ git fetch # Fetch vom origin, der Standard. + + + $ git fetch # Fetch z origin, jako standard. + + + + + $ git fetch other # Fetch vom zweiten Programmierer. + + + $ git fetch inne # Fetch od drugiego programisty. + + + + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + + + $ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + + + + + $ git format-patch 1b6d + + + git format-patch 1b6d + + + + + $ git format-patch 1b6d..HEAD^^ + + + $ git format-patch 1b6d..HEAD^^ + + + + + $ git init $ git add . + + + + + + + + $ git log origin/experimentell + + + $ git log origin/experimental + + + + + $ git merge teil2 # 'Merge' in Teil II. $ git branch -d teil2 # Lösche den Branch "teil2" + + + $ git merge czesc2 # 'merge' w części II. $ git branch -d czesc2 # Usuń 'branch' o nazwie "czesc2" + + + + + $ git pull einedatei + + + +$ git pull plik + + + + + $ git pull git://beispiel.com/anderes.git master + + + $ git pull git://example.com/inny.git master + + + + + $ git push web.server:/pfad/zu/proj.git master + + + $ git push web.server:/sciezka/do/proj.git master + + + + + $ git rebase --continue + + + $ git rebase --continue + + + + + $ git rebase -i HEAD~10 + + + $ git rebase -i HEAD~10 + + + + + $ git remote add other git://example.com/some_repo.git $ git pull other some_branch + + + $ git remote add inny git://example.com/jakies_repo.git $ git pull inny jakis_branch + + + + + $ git reset --hard 1b6d + + + $ git reset --hard 1b6d + + + + + $ git symbolic-ref HEAD + + + $ git symbolic-ref HEAD + + + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + + + $ git tag -f letztesbundle HEAD + + + $ git tag -f ostatnibundle HEAD + + + + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + + + $ git-new-workdir ein/istniejacy/repo nowy/katalog + + + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + + + 'Branch'-Magie + + + Magia 'branch' + + + + + 'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das Öffnen eines neuen Browserfenster. + + + BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. + + + + + 'Branches' verwalten + + + Organizacja BRANCHES + + + + + 'Clone' die Quelltexte, dann erstelle ein Verzeichnis mit dem Namen des IETF Sprachkürzel der übersetzten Sprache: siehe http://www.w3.org/International/articles/language-tags/Overview.en.php[den W3C Artikel über Internationalisierung]. + + + 'Clone' texty źródłowe, następnie utwórz katalog o nazwie skrótu IETF przetłumaszonego języka: sprawdź http://www.w3.org/International/articles/language-tags/Overview.en.php[Artykół W3C o internacjonalizacji]. + + + + + 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne Netzwerkverbindung. + + + Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. + + + + + 'Commite' Änderungen + + + Zmiany 'commit' + + + + + 'Committe' deine Änderungen oft und wenn du fertig bist, gib bitte Bescheid. + + + Używaj często 'commit' a gdy już skończysz, to daj znać. + + + + + 'Fork' eines Projekts + + + FORK projektu + + + + + 'Merge' Konflikte + + + Konflikty z 'merge' + + + + + 'Mergen' + + + 'merge' + + + + + 'Nackte Repositories' + + + Gołe REPOSITORIES + + + + + 'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern und Menschen gleichermaßen einfach verstanden werden. + + + 'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. + + + + + 'Push' oder 'Pull' + + + PUSH albo PULL + + + + + 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + + + 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + + + + + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + + + * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + + + + + * `reword` um die Log-Beschreibung zu ändern. + + + * `reword`, by zmienić opisy logu. + + + + + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + + + * `squash` by połączyć 'commit' z poprzednim ('merge'). + + + + + *Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. + + + *Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. + + + + + *Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. + + + *Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. + + + + + *Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. + + + *clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. + + + + + *Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + + + *Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie jest: *git branch*. + + + + + *Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. + + + *Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. + + + + + *Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. + + + *reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. + + + + + - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. + + + - *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. + + + + + - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene. + + + - *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + + + + + - Entferne 'Commits' durch das Löschen von Zeilen. + + + - usuń 'commits' poprzez skasowanie lini. + + + + + - Ersetze `pick` mit: * `edit` um einen 'Commit' für 'amends' zu markieren. + + + - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. + + + + + - Organisiere 'Commits' durch verschieben von Zeilen. + + + - przeorganizuj 'commits' przesuwając linie. + + + + + ---------------------------------- + + + ---------------------------------- + + + + + ... + + + ... + + + + + <<branch,Dazu kommen wir später>>. + + + <<branch, wrócimy do tego później>> + + + + + = Git Magic = Ben Lynn August 2007 + + + = Git Magic = Ben Lynn Sierpień 2007 + + + + + A, B, C, D sind 4 aufeinander folgende 'Commits'. + + + A, B, C i D sa 4 nastepujacymi po sobie COMMITS. + + + + + Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + + Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + + + + + Aber auch wenn wir ein normales 'Repository' auf dem zentralen Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. + + + Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. + + + + + Aber deshalb ein einfacheres, schlecht erweiterbares System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen zu verwenden. + + + Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + + + + + Aber du bist mit der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas umformuliert werden. + + + Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. + + + + + Aber einige Leute sind diesen Zähler gewöhnt. + + + Niektórzy jednak przyzwyczaili się do tego licznika. + + + + + Aber es gibt einen viel einfacheren Weg. + + + Istnieje jednak dużo prostszy sposób. + + + + + Aber es ist eine Illusion. + + + Ale to iluzja. + + + + + Aber manchmal arbeite ich an meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich inzwischen nicht austauschen können. + + + Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + + + + + Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. + + + Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. + + + + + Aber stell Dir vor, Du hast ihn niemals notiert? + + + Wyobraź jednak sobie, że nigdy go nie notowałeś? + + + + + Aber was, wenn wir nur deren Änderungen vergleichen wollen, ohne unsere eigene Arbeit zu beeinflussen? + + + Co jednak zrobić, gdy chcemy porównać zmiany w nich bez wpływu na naszą pracę? + + + + + Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein Verlauf um die Größe des gesamten Projekts wachsen. + + + Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + + + + + Aber wie kannst Du zurück in die Zukunft? + + + Ale jak teraz wrócić znów do przyszłości? + + + + + Aber, das überschreibt die vorherige Version. + + + Jednak, przepisze to poprzednią wersję. + + + + + Aber, wenn du an der Vergangenheit manipulierst, sei vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. + + + Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. + + + + + Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der häufigsten Anweisungen umgehen. + + + Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + + + + + 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'. + + + Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + + + + + Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls wird Git alle Änderungen 'comitten'. + + + Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + + + + + Aktualisiere das lokale 'Repository' erneut mit 'pull', löse eventuell aufgetretene 'Merge'-Konflikte und versuche es nochmal. + + + Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + + + + + Alles, was man mit dem zentralen 'Repository' tun kann, kannst du auch mit deinem 'Clone' tun. + + + Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + + + + + Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus. + + + Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + + + + + Allgemein, *filter-branch* lässt dich große Bereiche der Chronik mit einer einzigen Anweisung verändern. + + + Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + + + + + Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + + + A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + + + + + Alternativ kannst Du *git commit \--interactive* verwenden, was dann automatisch die ausgewählten Änderungen 'commited' nachdem Du fertig bist. + + + Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + + + + + Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen. + + + Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + + + + + Am schrecklichsten sind fehlende Dateien wegen eines vergessenen *git add*. + + + Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. + + + + + Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte Anweisungen scheuen, bis sie absolut notwendig sind. + + + Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. + + + + + Andere bestehen auf dem anderen Extrem: mehrere Fenster, ganz ohne Tabs. + + + Inni upierają się przy tym: więcej okien, zupełnie bez tabs. + + + + + Andere denken, daß Zweige vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit losgelassen werden. + + + Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. + + + + + Andere können davon ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und dass er die offizielle Version enthält. + + + Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję + + + + + Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen Format einliest um eine Git Chronik von Anfang an zu erstellen. + + + W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. + + + + + Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen das Zerstören der Daten. + + + Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. + + + + + Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige Entwickler war. + + + Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. + + + + + Angenommen du hast Teil I 'commitet' und zur Prüfung eingereicht. + + + Przyjmijmy, że wykonałeś 'commit' pierwszej części i przekazałeś do sprawdzenia. + + + + + Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. + + + Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. + + + + + Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht installiert. + + + Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. + + + + + Angenommen, wir sind bei D: + + + Zalozmym ze jestesmy w D: + + + + + Angenommen, zwei andere Entwickler arbeiten an Deinem Projekt und wir wollen beide im Auge behalten. + + + Przyjmijmy, dwóch innych programistów pracuje nad twoim projektem i chcielibyśmy mieć ich na oku. + + + + + Anhang A: Git's Mängel + + + Załącznik A: Wady GIT + + + + + Anhang B: Diese Anleitung übersetzen + + + Załącznik B: Przetłumaszyć to HOWTO + + + + + Ansonsten: + + + W przeciwnym razie: + + + + + Anstatt 'pull' benutzt Du dann: + + + Zamiast 'pull' skorzystaj z: + + + + + Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + + Zamiast kopiować i wklejać klucze z 'reflog', możesz: + + + + + Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch Ausführen von: + + + Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + + + + + Anstelle des zweiten Befehl kann man auch `git commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. + + + Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. + + + + + Antworte mit "y" für Ja oder "n" für Nein. + + + Odpowiedz po prostu "y" dla tak, albo "n" dla nie. + + + + + Arbeit ist Spiel + + + Praca jest zabawą + + + + + Arbeite wie du willst + + + Pracuj jak chcesz + + + + + Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem nutzt und vermisst du Git? + + + Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? + + + + + Argh! + + + Och! + + + + + Auch auf Deiner Seite ist alles was Du brauchst ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' aufzusetzen. + + + Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + + + + + Auch wenn Git die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + + + Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + + + + + Auch wenn du den ``master'' 'Branch' umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch respektieren. + + + Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + + + + + Auch wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser Faustregel weniger anfällig für falsche Vergleiche. + + + Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + + + + + Auf Debian und Ubuntu, findet man dieses Verzeichnis unter +/usr/share/doc/git-core/contrib+. + + + W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + + + + + Auf Git bauen + + + Budować na git + + + + + Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem Ordner: + + + Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + + + + + Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + + Po stronie odbiorcy zapamiętaj email jako daną i podaj: + + + + + Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, gibt es keinen Sicherheitsüberprüfungen mehr. + + + Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. + + + + + Aus diesem Grund plädiere ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man Mercurial bevorzugt. + + + Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial + + + + + Außerdem kannst du sie komprimieren um Speicherplatz zu sparen. + + + Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. + + + + + Außerdem können so alle Übersetzungen in einem 'Repository' existieren. + + + Poza tym wszystkie tłumaszenia mogą być prowadzone w jednym repozytorium. + + + + + Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen hinauswachsen. + + + Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. + + + + + Außerdem kümmert sich Git um die Details wie Autorname und eMail-Adresse, genauso wie um Datum und Uhrzeit und es fordert den Autor zum Beschreiben seiner eigenen Änderungen auf. + + + Pozatym Git martwi się o szczegóły, jak nazwa autora i adres maila, tak samo jak i o datę i godzinę oraz motywuje autora do opisywania swoich zmian. + + + + + Außerdem waren sich die Entwickler der Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen bewusst. + + + Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + + + + + B ist identisch mit A, außer dass einige Dateien gelöscht wurden. + + + B rozni sie od A, jedynie tym, ze usunieto kilka plikow. + + + + + Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine historische Unwegbarkeiten umgehen. + + + Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. + + + + + Beachte, dass alle Änderungen, die nicht 'commitet' sind übernommen werden. + + + Zauwaz, ze wszystkie zmiany, ktorre nie zostaly 'commit', zostaly przejete + + + + + Bearbeite das Makefile und füge das Sprachkürzel zur Variable `TRANSLATIONS` hinzu. + + + Edytuj Makefile i dodaj skrót języka do zmiennej `TRANSLATIONS`. + + + + + Beginne ein paar 'Branches': + + + Wystartuj kilka BRANCHES: + + + + + Bei Softwareprojekten kann das ähnlich sein. + + + W projektach programistycznych moze to wygladac podobnie. + + + + + Bei einem 'pull' aus anderen 'Repositories' müssen wir explizit angeben, welchen 'Branch' wir wollen: + + + Przy 'pull' z innego repozytorium musimy podać z którego branch chcemy korzystać. + + + + + Bei einem Mercurial Projekt gibt es gewöhnlich immer einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt automatisch die Benutzer von Mercurial mit einbezieht. + + + W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + + + + + Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem Ordner voller Dateien. + + + Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. + + + + + Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren und für andere Benutzer veröffentlichen will. + + + Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. + + + + + Bei verteilen Systemen ist das viel besser, da wir die benötigt Version lokal 'clonen' können. + + + Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + + + + + Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen gib ein: + + + Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + + + + + Beide laden ihre Änderungen hoch. + + + Obydwoje ładują swoje zmiany na serwer. + + + + + Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin um die alte Version zu erhalten. + + + Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. + + + + + Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + + + Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + + + + + Benutze *git submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten willst. + + + Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + + + + + Beschaffe dir die `hg-git`-Erweiterung mit Git: + + + Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + + + + + Betrachten wir Webbrowser. + + + Przyjżyjmy się takiej przeglądarce internetowej. + + + + + Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. + + + Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom + + + + + Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir uns mit ihm auseinandersetzen um das bisherige zu erklären. + + + Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. + + + + + Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' gewechselt, wie in: + + + Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + + + + + Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. + + + Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* + + + + + Changelog erstellen + + + Utwożenie historii + + + + + Chronik umschreiben + + + Przepisanie historii + + + + + Computer synchronisieren + + + Synchronizacja komputera + + + + + Computerspiele machten das lange Zeit so, viele von ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + + + Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + + + + + Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in Versionsverwaltungssystemen die einzelne Dateien überwachen. + + + Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + + + + + Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen: + + + Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + + + + + Da diese Anweisung aber auch zu ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option hinzufügen. + + + Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + + + + + Da ich in erster Linie unter Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + + + Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + + + + + Da war auch ein interessanter http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige Engpässe zu vermeiden. + + + Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. + + + + + Dadurch agieren nun alle Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, während deine Dateien unverändert erhalten bleiben. + + + Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. + + + + + Dafür ist es nun zu spät. + + + Na to jest już za późno. + + + + + Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. + + + Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. + + + + + Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor der Operation. + + + Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. + + + + + Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen und am Teil II arbeiten, bevor Teil I offiziell freigegeben wurde. + + + Dzieki bezbolesnemu 'branch' i 'merge' mozemy te regoly naciagnac i pracowac nad druga czescia jeszcze zanim pierwsza zostanie oficjalnie zatwierdzona + + + + + Dann 'branche' zu Teil II: + + + Najpierw zmień 'branch' do części drugiej + + + + + Dann 'commite' dein Projekt und gib ein: + + + Wtedy COMMIT twój projekt i wykomaj: + + + + + Dann auf dem anderen: + + + Potem na następnym: + + + + + Dann erstelle ein Git 'Repository' in deinem Arbeitsverzeichnis: + + + Utwórz GIT REPOSITORY w katalogu roboczym + + + + + Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + + + No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + + + + + Dann gehe wieder ins neue Verzeichnis und gib ein: + + + Następnie przejdź do dowego katalogu i podaj: + + + + + Dann gib ein: + + + Wpisujesz: + + + + + Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. + + + W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. + + + + + Dann mache diese Änderungen und gib ein: + + + Wykonaj je i wpisz: + + + + + Dann mache folgendes auf deinem Server: + + + To po prostu zwób coś takiego na twoim serwerze: + + + + + Dann nutze: + + + Możesz w tym wypadku skorzystać z: + + + + + Dann sage deinen Nutzern: + + + Następnie udostępnij link twoim użytkownikom: + + + + + Dann tippe: + + + Wpisz wtedy: + + + + + Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch Eingabe von: + + + Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + + + + + Dann, wenn du den Fehler behoben hast: + + + Jak juz uporasz sie z bledem: + + + + + Dann: + + + Wtedy: + + + + + Das 'Mergen' mehrerer 'Branches' erzeugt einen 'Commit' mit mindestens zwei Eltern. + + + 'merge' kilku 'branche' wytwarza 'commit' z minimum 2 rodzicami. + + + + + Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen werden; nur diejenigen mit SSH Zugriff können es einsehen. + + + To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. + + + + + Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf Git aufbauen. + + + Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. + + + + + Das Beispiel 'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation über 'Git-agnostic transports' wie z.B. HTTP benötigt. + + + Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. + + + + + Das Geheimnis liegt in der Konfiguration, die beim 'Clonen' erzeugt wurde. + + + Tajemnica leży w konfiguracji, która utworzona zostaje podczas klonowania. + + + + + Das Neueste vom Neuen + + + Najnowsze z nowych + + + + + Das Problem ist, den entsprechenden SHA1-Wert zu finden. + + + Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. + + + + + Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann. + + + To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + + + + + Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese Bezeichnung hatten. + + + Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. + + + + + Das `tailor` Programm konvertiert Bazaar 'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während `bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + + + Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + + + + + Das erfordert aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch aufrufen, wenn sie eine Datei bearbeiten. + + + Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + + + + + Das funktioniert wahrscheinlich ganz gut, wenn auch unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen Dateien braucht. + + + Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + + + + + Das geht wesentlich schneller, aber der resultierende Klon hat nur eingeschränkte Funktionalität. + + + Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + + + + + Das gilt stellvertretenden für andere Anweisungen. + + + Reprezentuje to również wszystkie inne polecenia. + + + + + Das hast Du vielleicht noch nicht bemerkt, denn Git versteckt diese: Du musst speziell danach fragen. + + + Może jeszcze tego nie zauważyłeś, ponieważ Git je ukrywa: musisz się o nie specjalnie pytać: + + + + + Das heißt, nachdem Du ein 'Bundle' gesendet hast, gib ein: + + + To znaczy, po wysłaniu 'bundle', podaj: + + + + + Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. + + + To zadanie dla *git rebase*, jak wyżej opisane. + + + + + Das ist eine primitive und mühselige Form der Versionsverwaltung. + + + Jest to prymitywna i pracochłonna forma kontroli wersji. + + + + + Das ist unüblich. + + + Znajduje to dość szerokie zastosowanie + + + + + Das ist wie bei den Spielen der alten Schule, die nur Speicherplatz für eine Sicherung hatten: sicherlich konntest du speichern, aber du konntest nie zu einem älteren Stand zurück. + + + To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. + + + + + Das kannst du mit folgendem Befehl erstellen: + + + Możesz go utwoszyć korzystając z polecenia: + + + + + Das neue Verzeichnis enthält die Dateien mit deinen Änderungen. + + + Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami + + + + + Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche Versionsgeschichte die beiden Versionen automatisch synchron bleiben. + + + Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. + + + + + Das obige erklärt, warum einige von unseren früheren 'push' und 'pull' Beispielen keine Argumente hatten. + + + To wyjaśnia dlaczego nasze poprzednie przykłady z 'push' i 'pull' nie posiadały argumentów. + + + + + Das setzt voraus, dass sie einen SSH-Zugang haben. + + + Wymaga to od nich posiadanie klucza SSH do twojego komputera. + + + + + Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) und stellt den vorherigen Stand wieder her. + + + Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. + + + + + Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine Authentifizierung, also kann jeder das Projekt abrufen. + + + Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. + + + + + Das verhindert, dass 'Branches' vom entfernten 'Repository' Deine lokalen 'Branches' stören und es macht Git einfacher für Anfänger. + + + To zapobiega temu, że branches z oddalonego repozytorium nie przeszkadza twoim lokalnym branches i czyni to Git łatwiejszym dla początkujących. + + + + + Das war eine Schande, denn vielleicht war deine vorherige Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du später gerne noch einmal zurückkehren möchtest. + + + To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. + + + + + Das wendet den eingegangenen 'Patch' an und erzeugt einen 'Commit', inklusive der Informationen wie z.B. den Autor. + + + Patch zostanie wprowadzony i utworzy commit, włącznie z informacjami jak naprzykład o autorze. + + + + + Das wirft die Frage auf: Welchen 'Commit' referenziert `HEAD~10` tatsächlich? + + + To nasuwa pytanie; ktoremu 'commit' referuje HEAD++10 wlasciwie? + + + + + Dass, wenn der Chef ins Büro spaziert, während du das Spiel spielst, du es schnell verstecken kannst? + + + By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + + + + + Dateien herunterladen + + + Zładowanie danych + + + + + Dateien ohne Bezug + + + Pliki z brakiem odniesienia + + + + + Dateihistorie + + + Historia pliku + + + + + Dein Arbeitsverzeichnis erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu editieren. + + + Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować + + + + + Deine Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so weiter. + + + Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi i tak dalej. + + + + + Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. + + + Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali + + + + + Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je komplizierter der Kontextwechsel ist, desto größer ist der Verlust. + + + Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty + + + + + Der Absender erstellt ein 'Bundle': + + + Nadawca tworzy 'bundle': + + + + + Der Empfänger kann das sogar mit einem leeren 'Repository' tun. + + + Odbiorca może to zrobić z pustym repozytorium. + + + + + Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten 'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. + + + Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. + + + + + Der Index ist ein temporärer Bereitstellungsraum. + + + Index jest tymczasowym rusztowaniem + + + + + Der Index: Git's Bereitstellungsraum + + + Index: ruszkowanie gita + + + + + Der Unterschied zwischen A und B sind die gelöschten Dateien. + + + Roznica miedzy A i B, to skasowane pliki. + + + + + Der Verlauf der Firmware interessiert den Anwender nicht und Änderungen lassen sich schlecht komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' unnötig auf. + + + Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + + + + + Der ``master'' 'Branch' ist ein nützlicher Brauch. + + + MASTER BRANCH jest bardzo użytecznym + + + + + Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den Rest. + + + Teraz 'master branch' zawiera cześć 1 a 'branch' czesc2 posiada resztę. + + + + + Der angegebene Pfad wird stillschweigend überschrieben. + + + Podana ścieżka zostanie bez pytania zastąpiona. + + + + + Der erste Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten Datei im Index. + + + Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. + + + + + Der erster Klon + + + Pierwszy klon + + + + + Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten zukünftigen Operationen dann schnell und offline erfolgen. + + + Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. + + + + + Der zweite Schritt speichert dauerhaft den Schnappschuß, der sich nun im Index befindet. + + + Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. + + + + + Der zweite Teil eines Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und getestet wurde. + + + Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. + + + + + Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch Dateinamen mit ungewöhnlichen Zeichen. + + + Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików + + + + + Die *pull* Anweisung holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese dann mit dem aktuellen 'Branch'. + + + Polecenie *pull* ładuje ('fetch') 'commits' i je zespala ('merge'), wtedy z aktualnym 'branch'. + + + + + Die +branch.master.merge+ Option definiert den Standard-Remote-'Branch' bei einem *git pull*. + + + Opcja +branch.master.merge+ definuje standardowy Remote-'Branch' dla *git pull*. + + + + + Die +remote.origin.url+ Option kontrolliert die Quell-URL; ``origin'' ist der Spitzname, der dem Quell-'Repository' gegeben wurde. + + + Opcja +remote.origin.url+ kontroluje źródłowe URL; ``origin'' to alias, nadany źródłowemu repozytorium. + + + + + Die Anweisung + + + Polecenie: + + + + + Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu schreiben und außerdem um 'Repositories' in Klartext zu übertragen. + + + Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. + + + + + Die Chef-Taste + + + Przycisk SZEF + + + + + Die Datei zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden könnte. + + + Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. + + + + + Die Entwicklung findet in den 'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis auskommen. + + + Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + + + + + Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' umwandeln, indem man in ein leeres 'Repository' 'pushed'. + + + To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT + + + + + Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. + + + Termin opublikowania pewnej wlasciwosci zbliza sie. + + + + + Die Hilfeseiten schlagen vor 'Tags' zu benutzen um dieses Problem zu lösen. + + + Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. + + + + + Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da andere Operationen dafür unglaublich effizient sind. + + + Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. + + + + + Die Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer Kopie der ganzen Datei. + + + Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + + + + + Die Summe der Bemühungen verschlimmerte die Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu verbrauchen um noch längere Wartezeiten zu verhindern. + + + Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. + + + + + Die Textdatei ist wiederhergestellt. + + + Poprzedni plik jest przywrocony do stanu pierwotnego + + + + + Die Ursachen für die großen Unterschiede sollten ermittelt werden. + + + Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. + + + + + Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom anderen Versionsverwaltungssystem ab. + + + Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. + + + + + Die aktuelle Implementierung von Git, weniger sein Design, ist verantwortlich für diesen Pferdefuß. + + + To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. + + + + + Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + + Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + + + + + Die beschriebene Situation ist eine erwähnenswerte Ausnahme. + + + Ta przywołana sytuacja jest wyjątkiem wartym wspomnienia. + + + + + Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. + + + Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. + + + + + Die letztere kann verwendet werden um SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich gestutzt wurde. + + + Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + + + + + Die meisten Systeme wählen automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + + + Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + + + + + Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, werden verteilte Systeme genannt und können als eine Verallgemeinerung der zentralisierten Systeme verstanden werden. + + + Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. + + + + + Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen Logdateien. + + + Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. + + + + + Die resultierenden Dateien können an *git-send-email* übergeben werden oder von Hand verschickt werden. + + + Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. + + + + + Die vergangenen 'Commits' wissen nichts von der Zukunft. + + + Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + + + + + Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des 'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. + + + Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu + + + + + Die zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird oder die ganze Zeile überarbeiten. + + + Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + + + + + Die Änderungen bleiben im .git Unterverzeichnis gespeichert und können wieder hergestellt werden, wenn der entsprechende SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" oben). + + + Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). + + + + + Die, welche dir am besten gefällt. + + + To, ktore najbardziej tobie odpowiada. + + + + + Dies holt lediglich die Chroniken. + + + Polecenie to załaduje jedynie historię + + + + + Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten Elternteil während eines 'Merge'; häufig bist du nur von Änderungen betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen die von anderen 'Branches' eingebracht wurden. + + + Należy wspomnieć, że aktualny 'branch' staje sie pierwszym rodzicem podczas 'merge'; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym 'branch' bardziej, niz ze zmianami z innych 'branch'. + + + + + Dies verleiht ihnen eine universelle Anziehungskraft. + + + Dodaje im to uniwersalnej mocy przyciągania. + + + + + Diese Liste zeigt die 'Branches' und den HEAD des entfernten 'Repository', welche auch in regulären Git Anweisungen verwendet werden können. + + + Lista ta ukazje BRANCHES i HEAD odległego repozytorium, które mogą być również stosowane w zwykłych poleceniach Git. + + + + + Diese Operationen sind schnell und lokal, also warum nicht damit experimentieren um die beste Kombination für sich selbst zu finden? + + + Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. + + + + + Diese Option gilt nur für das 'Repository', von dem als erstes 'gecloned' wurde, was in der Option +branch.master.remote+ hinterlegt ist. + + + Ta opcja jest ważna jedynie dla repozytorium, z którego dokonało się pierwsze klonowanie, co zapisane jest w opcji +branch.master.remote+. + + + + + Diese Spiele versteckten die Details vor dem Spieler und präsentierten eine bequeme Oberfläche um verschiedene Versionen des Ordners zu verwalten. + + + Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + + + + + Diese Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. + + + Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. + + + + + Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. + + + Ta inna rzeczywistość, to tzw. branch <<branch, zajmiemy się tym w późniejszym czasie>>. + + + + + Dieser Zyklus wiederholt sich ein paar Mal bevor du zum 'Pushen' in den zentralen Zweig bereit bist. + + + Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + + + + + Dieser spezielle 'Commit' repräsentiert einen leeren 'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git 'Repositories'. + + + Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + + + + + Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange Geschichte existiert, aber auf Dauer wird es sich lohnen. + + + Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. + + + + + Doch anstelle ein paar Knöpfe zu drücken, machst du 'create', 'check out', 'merge' und 'delete' von temporären 'Branches'. + + + Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. + + + + + Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie auch die ganze Geschichte bis zum angegebenen Punkt mit sich. + + + Jednak 'clone' niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. + + + + + Du arbeitest also an Teil II und 'commitest' deine Änderungen regelmäßig. + + + Pracujesz w cześci 2 i regularnie wykonujesz 'commit'. + + + + + Du arbeitest an einem aktiven Projekt. + + + Pracujesz nad aktywnym projektem. + + + + + Du bekommst einen Haufen Dateien eines bestimmten Sicherungsstands. + + + Otrzymasz całą masę plików konkretnego stanu + + + + + Du denkst, du kannst das besser? + + + Uważasz, że potrafisz to lepiej + + + + + Du hast auch noch andere Optionen, z.B. den Aufschub der Entscheidung; drücke "?" + + + Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" + + + + + Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch ging. + + + Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. + + + + + Du kannst Dir alle SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten 'Commit' findest. + + + Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' + + + + + Du kannst auch 'Commits' aufteilen. + + + Możesz również podzielć 'commits'. + + + + + Du kannst auch eine Gruppe von 'Commits' angeben: + + + Możesz podać grupę 'commits' + + + + + Du kannst auch nach dem 5. letzten 'Commit' fragen: + + + Możesz również udać się do 5 z ostatnich COMMIT: + + + + + Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst: + + + Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + + + + + Du kannst den Zustand des Ordners sichern so oft du willst und du kannst später jeden Sicherungspunkt wieder herstellen. + + + Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. + + + + + Du kannst die Logs nach dem entsprechenden SHA1 Hashwert durchsuchen, aber es ist viel einfacher folgendes einzugeben: + + + Możesz przeszukać logi za odpowiednim kluczem SHA1, ale dużo prościej jest podać: + + + + + Du kannst die Nummer für den ersten Elternteil weglassen. + + + Mozesz pominac numer pierwszego rodzica + + + + + Du kannst diese Notation mit anderen Typen kombinieren. + + + Mozesz łączyć ta notacje takze z innymi + + + + + Du kannst diese Änderungen sogar 'commiten'. + + + Mozesz te zmiany nawet 'commit'. + + + + + Du kannst einen 'Patch' Entwicklern schicken, ganz egal, was für ein Versionsverwaltungssystem sie benutzen. + + + Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. + + + + + Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen referenzieren. + + + Mozesz tez jakiegos rodzica referowac go daszkiem. + + + + + Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. + + + Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. + + + + + Du kannst noch viel mehr machen: die Hilfe erklärt, wie man 'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu beschleunigen. + + + Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + + + + + Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. + + + Możesz pracować nad dwoma funkcjami jednocześnie + + + + + Du kannst sogar 'Branches' in einem 'Repository' umorganisieren. + + + Możesz nawet przeorganizować 'branches' w repozytorium. + + + + + Du kannst sogar die frisch gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + + Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + + + + + Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + + + Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak tylko zechcesz, niezaleznie od tego, w kazdej z tych wersji mozesz wykonać 'commit' + + + + + 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. + + + Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. + + + + + Du magst Kopieren und Einfügen von Hashes nicht? + + + Nie lubisz kopiować i wklejać hash-ów? + + + + + Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. + + + Może pytasz się, czy BRANCHES są warte tego zachodu. + + + + + Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + + Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + + + + + Du merkst, dass du vergessen hast eine Datei hinzuzufügen? + + + Zauważasu, że zapomniałeś dodać jakiegoś pliku? + + + + + Du solltes etwas sehen wie: + + + Powinieneś zobaczyć coś jak: + + + + + Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + + Akurat gdy strasznie zajety biezacymi zadaniami projektu, otrzymujesz polecenie zajecie sie bledem w 'commit' 1b6d... + + + + + Du willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und hinter den offiziellen Änderungen sehen. + + + Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + + + + + Du willst deine laufenden Arbeiten für dich behalten und andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert hast. + + + Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. + + + + + Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? + + + Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? + + + + + Du willst zahlreiche, vor Manipulation geschützte, redundante Datensicherungen an unterschiedlichen Orten? + + + Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach + + + + + Dumme Fehler verschmutzen meine 'Repositories'. + + + Głupie błędy zaśmiecają moje repozytoria. + + + + + Durch cleveres verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine Versionsgeschichte mit dem original 'Repository' teilt: + + + Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + + + + + Durch das Herauspicken der Rosinen kannst du einen 'Branch' konstruieren, der nur endgültigen Code enthält und zusammengehörige 'Commits' gruppiert hat. + + + Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + + + + + EOT + + + EOT + + + + + Ebenso grundlegende Funktionen wie das Durchsuchen der Chronik oder das 'comitten' einer Änderung. + + + Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. + + + + + Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu überschreiben, wenn das einen Datenverlust zur Folge hat. + + + Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. + + + + + Ebenso, wenn Git Dateien vergessen soll: + + + To samo, gdy chcesz by GIT zapomnial o plikach: + + + + + Eigenarten der Anwendung + + + Charakterystyka zastosowania + + + + + Ein 'Commit' kann mehrere Eltern haben, welchem folgen wir also? + + + 'commit' moze posiadac wiecej rodzicow, za którym właściwie iść? + + + + + Ein 'Commit' ohne die *-a* Option führt nur den zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + + + Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + + + + + Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem zentralisierten Versionsverwaltungssystem: Das Zuhause deines Projekts. + + + BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu + + + + + Ein Auto, das repariert werden soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. + + + Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. + + + + + Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + + + Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + + + + + Ein Liste aller 'Branches' bekommst du mit: + + + Listę wszystkich BRANCHES otrzymasz poprzez: + + + + + Ein Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die Konstruktion fortgesetzt werden kann. + + + Prototyp musi czekac na wyprodukowanie części zanim mozna podjac dalsza konstrukcje. + + + + + Ein Versionsverwaltungssystem zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die periodisch von einer Webcam gemacht werden. + + + Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + + + + + Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche die Form einer großen Binärdatei annimmt. + + + Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. + + + + + Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. + + + Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. + + + + + Ein beliebter Vertreter ist +workdir/git-new-workdir+. + + + Ulubionym przedstawicielem jest +workdir/git-new-workdir+. + + + + + Ein dummer Aberglaube + + + Głupi przesąd + + + + + Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden um die am häufigsten benutzten Anweisungen zu verkürzen: + + + Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + + + + + Ein einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und so weiter. + + + Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. + + + + + Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die so ein System bietet. + + + Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. + + + + + Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, bezogen auf 'Commits', hält sich Git nicht an diese Konvention. + + + Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. + + + + + Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein Arbeitsverzeichnis hat. + + + Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego + + + + + Ein negativer Rückgabewert beendet die 'bisect'-Operation sofort. + + + Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + + + + + Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. + + + O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. + + + + + Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. + + + powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. + + + + + Ein unmittelbarer Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist keine Kommunikation mit dem Hauptserver notwendig. + + + Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + + + + + Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. + + + Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. + + + + + Ein zuverlässiges, vielseitiges Mehrzweck-Versionsverwaltungswerkzeug, dessen außergewöhnliche Flexibilität es schwierig zu erlernen macht, ganz zu schweigen davon, es zu meistern. + + + Pewne, wielostronne narzędzie do kontroli wersji, jego niezwykła elastyczność sprawia trudności w poznaniu, nie wspominając o samym użyciu. + + + + + Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. + + + Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. + + + + + Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach verändert werden kann. + + + Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. + + + + + Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + + Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + + + + + Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen jedes nur die in Beziehung stehenden Dateien enthält. + + + Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. + + + + + Eine Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + + + Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + + + + + Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git 'Repositories' arbeiten. + + + Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git + + + + + Eine gute erste Annäherung ist, dass alles was eine zentralisierte Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. + + + Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. + + + + + Eine unzuverlässige Internetverbindung stört mit Git nicht sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig wie ein lokale Festplatte sein sollte. + + + Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. + + + + + Einen Klon zu erstellen ist aufwendiger als in anderen Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + + + Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + + + + + Eines Tages brauchst du vielleicht dringend einen Schraubendreher, dann bist du froh mehr als nur einen einfachen Flaschenöffner bei dir zu haben. + + + Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + + + + + Einfach: + + + Proste; + + + + + Einfacher geht das mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + + Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + + + + + Einfaches Veröffentlichen + + + Uproszczone publikowanie + + + + + Einige Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für unterschiedliche Webseiten. + + + Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron + + + + + Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik ein, mit allen Fehlern, Nachteilen und Mängeln. + + + Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. + + + + + Einige Git Anweisungen lassen Dich ihn manipulieren. + + + Niektóre komendy git pozwolą ci nim manipulować. + + + + + Einige Projekte erfordern, dass dein Code überprüft werden muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + + + Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, nim bedziesz mogl zaczac z następną część. + + + + + Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf irgendeine Weise für die Bearbeitung zu kennzeichnen. + + + Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. + + + + + Einige lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. + + + Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. + + + + + Einige plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für seine Arbeit einen neuen 'Branch' anzulegen. + + + Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + + + + + Einleitung + + + Wprowadzenie + + + + + Entfernte 'Branches' + + + Oddalone 'Branches' + + + + + Entschuldigung, wir sind umgezogen. + + + Przepraszamy, przeprowadziliśmy się + + + + + Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten offiziellen Änderungen dort hin. + + + Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. + + + + + Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten. + + + Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + + + + + Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' Anweisungen. + + + Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. + + + + + Er muss sicher sein, aber nicht privat. + + + Musi być bezpieczne, jednak nie musi być prywatne + + + + + Erinnere Dich an das erste Kapitel: + + + Przypomnij sobie pierwszy rozdział: + + + + + Erinnere Dich, dass ein 'Pull' hinter den Kulissen einfach ein *fetch* gefolgt von einem *merge* ist. + + + Przypomnij sobie, że 'pull' za kulisami to to samo co 'fetch' z następującym za nim *merge*. + + + + + Erste Schritte + + + Pierwsze kroki + + + + + Erstelle ein Git 'Repository' für deine Dateien: + + + Utwóż GIT REPOSITORY dla twoich danych + + + + + Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen Rechner. + + + Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. + + + + + Erstelle eine Dummy-Datei um dieses Problem zu umgehen. + + + Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + + + + + Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + + + Es enthält nur Dateien, die normalerweise im '.git' Unterverzeichnis versteckt sind. + + + Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. + + + + + Es gibt geringfügige Unterschiede bei mbox-basierten eMail Anwendungen, aber wenn Du eine davon benutzt, gehörst Du vermutlich zu der Gruppe Personen, die damit einfach umgehen können ohne Anleitungen zu lesen.! + + + Występują minimalne różnice między aplikacjami emailowymi bazującymi na mbox, ale jeśli korzystasz z takiej, należysz do grupy ludzi która za pewne umią się z nimi obchodzić bez czytania instrukcji! + + + + + Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + + + O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + + + + + Es gibt mindestens 3 Lösungen. + + + Istnieja przynajmniej 3 rozwiazania. + + + + + Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der ganze Verlauf geklont wird. + + + Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + + + + + Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das Ergebnis ist das selbe. + + + Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. + + + + + Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit 'tarball' Archiven oder *rsync* zu arbeiten. + + + Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. + + + + + Es ist als ob der Hauptserver gespiegelt wird. + + + Wygląda to jak klonowanie serwera. + + + + + Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel. + + + Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. + + + + + Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu erweitern. + + + Dość łatwo zastosować tą samą sztuczkę na dowolną ilość części. + + + + + Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen wäre. + + + Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 'commit' wcześniej utworzyć 'branch'- + + + + + Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu sehen was auf dem anderen Kanal los ist. + + + Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. + + + + + Es können noch weitaus kompliziertere Situationen entstehen. + + + Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. + + + + + Es liegt an dir diese weise zu nutzen. + + + Stosowanie tej możliwości zależy od ciebie + + + + + Es sei denn die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, oder die `--bare` Option wird übergeben. + + + Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + + + + + Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. + + + Wyglada jakbysmy ten plik zmienili i wykonali 'commit' + + + + + Es stellt sich heraus, dass diese Notation immer den ersten Elternteil wählt. + + + Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. + + + + + Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. + + + Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. + + + + + Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, erstelle temporären Code und so weiter und 'commite' deine Änderungen oft. + + + Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. + + + + + Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können Verwirrungen entstehen. + + + Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + + + + + Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen: + + + Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + + + + + Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes: + + + Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + + + + + Finde heraus was du seit dem letzten 'Commit' getan hast: + + + Znajdz co zrobiles od ostatniego COMMIT: + + + + + Firewalls könnten uns stören und was, wenn wir gar keine Berechtigung für eine Serverkonsole haben. + + + Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + + + + + Folglich ist standardmäßig das 'Pushen' per Git-Protokoll verboten. + + + Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + + + + + Fortgeschrittenes Rückgängig machen/Wiederherstellen + + + Zaawansowane usuwanie/przywracanie + + + + + Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. + + + Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. + + + + + Führe *git add* aus um sie hinzuzufügen und dann die vorhergehende Anweisung. + + + Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + + + + + Führe die Anweisungen des anderen Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale 'Repository' zu übertragen. + + + Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + + + + + Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst leeren Git 'Repository'. + + + Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY + + + + + Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und "A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen Bereich. + + + Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. + + + + + Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + + Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + + + + + Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. + + + Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. + + + + + Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt wird. + + + Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok + + + + + Für eine vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur Versionsverwaltung]. + + + Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + + + + + Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. + + + Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. + + + + + Für jetzt, merke dir + + + zapamietaj jednak na razie, że: + + + + + Für meine Projekte bevorzuge ich es, wenn Unterstützer 'Repositories' vorbereiten, von denen ich 'pullen' kann. + + + W moich projektach preferuję, gdy pomagający mi programiści przygotują własne repozytoria, z których mogę wykonać 'pull'. + + + + + Geheime Quellen + + + Utajnione Zródła + + + + + Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus der Geschichte zu löschen. + + + Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. + + + + + Genau deswegen gibt es Releasezyklen. + + + Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. + + + + + Genauso wenig setzt das 'Clonen' des zentralen 'Repository' dessen Bedeutung herab. + + + Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + + + + + Geschichte machen + + + Tworzyć historię + + + + + Geschichtsstunde + + + Lekcja historii + + + + + Gewagte Kunststücke + + + Śmiałe wyczyny + + + + + Gib ein: + + + Za pomoc + + + + + Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut ('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas zwischen 1 und 127 für 'bad'. + + + Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. + + + + + Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. + + + GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* + + + + + Git für Fortgeschrittene + + + Git dla zaawansowanych + + + + + Git hat mir bewundernswert gedient und hat mich bis jetzt noch nie im Stich gelassen. + + + Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. + + + + + Git lässt dich genauso arbeiten, wie du es willst. + + + GIT pozwoli ci pracować dokładnie tak jak chcesz. + + + + + Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + + + GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + + + + + Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben: + + + Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + + + + + Git referenziert Änderungen anhand ihres SHA1-Hash, was in vielen Fällen besser ist. + + + Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + + + + + Git ruft eine Stand ab, der genau dazwischen liegt. + + + Git przywoła stan, który leży dokładnie pośrodku. + + + + + Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. + + + Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` + + + + + Git tauscht selten Daten direkt zwischen Deinem Projekt und seiner Versionsgeschichte aus. + + + Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. + + + + + Git unter Microsoft Windows kann frustrierend sein: + + + Korzystanie z GIT pod Microsoft Windows może być frustrujące: + + + + + Git versetzt dich wieder auf einen Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert so die Möglichkeiten. + + + Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. + + + + + Git versteht beide Gesichtspunkte. + + + Git jest wyrozumiały dla oby dwuch stron. + + + + + Git von Anfang an zu benutzen, ist wie ein Schweizer Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen geöffnet werden. + + + Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. + + + + + Git war das erste Versionsverwaltungssystem, das ich benutzt habe. + + + Git był pierwszym systemem kontroli wersji którego używałem. + + + + + Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die Details selbst erarbeiten. + + + Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. + + + + + Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der Änderungen. + + + Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. + + + + + Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von 20 Null-Bytes gesetzt. + + + Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash + + + + + Git über SSH, HTTP + + + Git przez SSH, HTTP + + + + + Git über alles + + + Git ponad wszystko + + + + + Git überwacht immer das ganze Projekt, was normalerweise schon von Vorteil ist. + + + GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + + + + + GitHub hat eine Schnittstelle, die das erleichtert: Erzeuge deine eigene 'Fork' vom "gitmagic" Projekt, 'pushe' deine Änderungen, dann gib mir Bescheid, deine Änderungen zu 'mergen'. + + + GitHub posiada interfejs, który to ułatwi: utwórz twój własny 'Fork' projektu "gitmagic", 'push' twoje zmiany i daj mi znać, by je 'mergen'. + + + + + Globaler Zähler + + + Licznik globalny + + + + + Glücklicherweise hat Git eine Abkürzung dafür, die genauso komfortabel ist wie eine Fernbedienung: + + + Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + + + + + Glücklicherweise ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + + + Na szczęście jest to silną stroną git i chyba jego racją bytu. + + + + + Hast Du es zu lange versäumt zu 'comitten'? + + + Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? + + + + + Hast Du so versessen programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? + + + Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? + + + + + Hast du es satt, wie sich ein Projekt entwickelt? + + + Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt + + + + + Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung eingegeben? + + + Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? + + + + + Hast du gravierende Änderungen vor? + + + Masz zamiar dokonania wielu zmian? + + + + + Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes angezeigt hat? + + + Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? + + + + + Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu zerstören. + + + Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. + + + + + Hinzufügen, Löschen, Umbenennen + + + Dodac, skasowac, zmienic nazwe + + + + + Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die Forschung SHA1 komplett unnütz macht. + + + Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + + + + + Hätte ich mein Projekt fertig gestellt, wäre ich trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + + + Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + + + + + Hättest du nur die Funktion während der Entwicklung getestet. + + + A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + + + + + Ich 'merge' meine eigenen Änderungen und führe eventuell weitere Änderungen durch. + + + Wykonuję 'merge' moich własnych zmian i przeprowadzam ewentualnie dalsze zmiany. + + + + + Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. + + + By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. + + + + + Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin süchtig nach schellen Ausführungszeiten. + + + Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + + + + + Ich bin schnell in die Anwendung hineingewachsen und betrachtete viele Funktionen als selbstverständlich. + + + Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. + + + + + Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur als akademische Übungen. + + + Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. + + + + + Ich empfehle folgende Schritte um diese Anleitung zu übersetzen, damit meine Skripte einfach eine HTML- und PDF-Version erstellen können. + + + Aby przetłumaszyć mije HOWTO polecam wykonanie następujących ponniżej kroków, wtedy moje skrypty będą w prosty sposób mogły wygenerować wersje HTML i PDF. + + + + + Ich habe diese Phänomen aus erster Hand erfahren. + + + Dowiedziałem się o tym fenomenie z pierwszej ręki. + + + + + Ich habe einfach vorausgesetzt, dass andere Systeme ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht anders sein als die Auswahl eines Texteditors oder Internetbrowser. + + + Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + + + + + Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. + + + Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. + + + + + Ich hatte noch keinen Grund zu wechseln. + + + Nie miałem jeszcze powodu do zmiany. + + + + + Ich musste lernen, wie man Projekte verwaltet, an denen mehrere Entwickler aus aller Welt beteiligt waren. + + + Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. + + + + + Ich nehme alles zurück + + + Wycofuję wszystko co na ten temat powiedziałem. + + + + + Ich spiele Computerspiele schon fast mein ganzes Leben. + + + Gram w gry komputerowe przez całe moje życie. + + + + + Ich vermute, dass ich damit nicht alleine bin und der Vergleich hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + + + Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + + + + + Ich war geschockt, als ich später gezwungen war ein zentralisiertes System zu benutzen. + + + Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. + + + + + Im Gegensatz dazu habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu benutzen. + + + W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. + + + + + Im Gegensatz zu den meisten Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem Speicherplatz umzugehen. + + + W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. + + + + + Im Gegensatz zu vielen anderen Versionsverwaltungssystemen funktioniert diese Operation offline, es wird nur von der lokalen Festplatte gelesen. + + + W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + + + + + Immerhin sind 'Clone' fast genauso schnell und du kannst mit *cd* anstelle von esoterischen Git Befehlen zwischen ihnen wechseln. + + + Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + + + + + In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die Standardaktion. + + + W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. + + + + + In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die Fertigstellung des ersten Schritt warten. + + + W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego + + + + + In der Git Welt zu bleiben ist etwas bequemer als 'Patch'-Dateien, denn es erspart mir sie in Git 'Commits' zu konvertieren. + + + Pozostając w świecie Gita jest wygodniejsze niż otrzymywanie patchów, ponieważ zaoszczędza mi to konwertowanie ich do 'commits' Gita. + + + + + In der Praxis möchtest Du aber das "refs/heads/" entfernen und Fehler ignorieren: + + + W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + + + + + In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' gehalten werden und die Binärdatei außerhalb des Projekts. + + + W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. + + + + + In diesem Fall verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber sehr flexibel. + + + W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. + + + + + In diesem Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. + + + W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. + + + + + In diesem Fall, gib folgendes ein: + + + W tym wypadku użyj komendy: + + + + + In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und Konvertierungswerkzeugen und so weiter. + + + W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. + + + + + In ein paar Jahren hat vielleicht schon ein ganz normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' unbemerkt zu korrumpieren. + + + Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + + + + + In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. + + + W sali sądowej można pewne zdarzenia wykreślić z akt. + + + + + In einem Git 'Repository' gib ein: + + + W repozytorium git natomiast podajesz: + + + + + In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der Chronik eine schwierige Angelegenheit und den Administratoren vorbehalten. + + + W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. + + + + + In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach einem bestimmten Punkt durch Eingabe von: + + + W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + + + + + In extremen Fällen trifft das auch auf die grundlegenden Anweisungen zu. + + + W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. + + + + + In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen 'bundlest', die in den anderen 'Repositories' fehlen. + + + W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. + + + + + In irgendeinem Verzeichnis: + + + W jakimkolwiek katalogu: + + + + + In manchen Systemen benötigt der Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu sehen oder um eine Datei zum Bearbeiten zu öffnen. + + + W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + + + + + In vielen Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + + + W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + + + + + In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation um Dateien zu bekommen. + + + W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. + + + + + Initialer 'Commit' + + + Pierwszy 'commit' + + + + + Irgendwann wirst du dann mit den anderen synchronisieren wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen Versionsverwaltungssystem und gib ein: + + + Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + + + + + Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' werden: + + + Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + + + + + Irgendwo speicherte ein Server alle gespeicherten Spiele, sonst niemand. + + + Jeden serwer zapamiętywał wszystkie gry, nikt inny. + + + + + Irren ist menschlich und so kann es vorkommen, dass du zurück zu Teil I willst um einen Fehler zu beheben. + + + Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. + + + + + Je mehr gespeicherte Spiele benötigt werden, desto mehr Kommunikation ist erforderlich. + + + Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + + + + + Jede Datei einzeln nachzuprüfen ist frustrierend und ermüdend. + + + Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. + + + + + Jeder 'Clone' deines Codes ist eine vollwertige Datensicherung. + + + Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa + + + + + Jeder 'Commit' ab jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen Namen geben können. + + + Kazdy wykonyny od teraz 'commit' prowadzi twoje dane inna droga, ktorej później jeszcze mozemy nadac nazwe. + + + + + Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git log* angezeigt werden. + + + Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. + + + + + Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für alle relevant. + + + Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + + + + + Jeder Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. + + + Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. + + + + + Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. + + + Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. + + + + + Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses Null-'Commits'. + + + Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + + + + + Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert hat. + + + Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + + + + + Jeder kann oberflächliche Klone erstellen, die nur wenig oder gar nichts vom Verlauf des Projekts enthalten. + + + Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. + + + + + Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. + + + Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany + + + + + Jemanden zu fotografieren stiehlt nicht dessen Seele. + + + Fotografując kogoś nie kradziemy jego duszy. + + + + + Jetzt lass uns das Problem etwas komplizierter machen. + + + Skomplikujmy teraz trochę cały ten problem. + + + + + KOPF-Jagd + + + Łowcy głów + + + + + Keine Sorge, gib ein: + + + Nie ma sprawy, wpisz polecenie: + + + + + Keine Sorge: Für solche Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + + Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + + + + + Klassische Quellcodeverwaltung + + + Klasyczne zarządzanie kodem źródłowym + + + + + Kleinere Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie möglich bewirken. + + + Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + + + + + Kleinere Verfehlungen sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + + + Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + + + + + Kontinuierlicher Arbeitsfluss + + + Nieprzerywany ciąg pracy + + + + + Kopiere alle +txt+-Dateien aus dem "en"-Verzeichnis in das neue Verzeichnis und übersetze diese. + + + Skopiuj wszystkie pliki +txt+ z katalogu "en" do nowoutworzonego katalogu. + + + + + Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein 'bare Repository' ist; andernfalls benutze 'pull'. + + + Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + + + + + Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto und erstellen ein 'Repository' in Deinem Webverzeichnis: + + + Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + + + + + Lasse den -global Schalter weg um diese Einstellungen für das aktuelle 'Repository' zu setzen. + + + Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + + + + + Lasst uns einen Blick riskieren: + + + Zaryzykujmy spojrzenie: + + + + + Leere Unterverzeichnisse + + + Puste katalogi + + + + + Leere Unterverzeichnisse können nicht überwacht werden. + + + Nie ma możliwości wersjonowania pustych katalogów. + + + + + Leider gibt es noch ein paar Problemfälle. + + + Niestety występuje jeszcze kilka innych problemów. + + + + + Leider kenne ich keine solche Erweiterung für Git. + + + Niestety nie są mi znane takie rozszerzenia dla GIT. + + + + + Leute machen kleine Änderungen von Version zu Version. + + + Ludzie robią jednak pomniejsze zmiany z wersji na wersję. + + + + + Lokale Änderungen zum Schluß + + + Końcowe lokalne zmian + + + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + + + M 100644 inline hello.c data <<EOT #include <unistd.h> + + + +M 100644 inline hello.c data <<EOT #include <unistd.h> + + + + + Machst Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + + + Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + + + + + Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' zuletzt gesendet wurde. + + + Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. + + + + + Man kann das aber auch in einem einzigen Schritt ausführen mit: + + + Można to także wykonać za jednyym zamachem: + + + + + Man muss vom Hauptserver das alte gespeicherte Spiel anfordern. + + + Za każdym razem trzeba ściągnąć wszystkie dane z serwera. + + + + + Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. + + + Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales + + + + + Mehrere 'Remotes' + + + Więcej serwerów + + + + + Mein 'Commit' ist zu groß! + + + Mój 'commit' jest za duży! + + + + + Meine Einstellungen + + + Moje ustawienia + + + + + Meistens befindet es sich auf einem Server, der nicht viel tut außer Daten zu verbreiten. + + + Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. + + + + + Menschen sind nicht gut im Kontextwechsel. + + + Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + + + + + Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit Git zusammenarbeiten kann. + + + Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT + + + + + Mischmasch Reorganisieren + + + Reorganizacja chaosu + + + + + Mit Git ist 'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + + + Z Git 'merge' jest tak proste, ze wogóle nie zauwazysz, gdy to nastepuje + + + + + Mit anderen Worten, es verwaltet die Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner beliebigen Version. + + + Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + + + + + Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* benannt und gesichert werden kann. + + + Innymi slowami, po przywolaniu starego stanu Git automatychnie zamienia sie w nowy, nienazwany 'branch', ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + + + + + Mit anderen Worten, wir wollen ihre 'Branches' untersuchen ohne dass deren Änderungen in unser Arbeitsverzeichnis einfließen. + + + Innymi słowami, chcemy zbadać ich branches bez importowania ich zmian do naszego katalogu roboczego. + + + + + Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon heute wäre es technisch machbar für finanzkräftige Unternehmen Hash-Kollisionen zu finden. + + + Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach + + + + + Mit der Zeit können einige davon zu offiziellen Anweisungen befördert werden. + + + Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. + + + + + Mit der `hg-git`-Erweiterung kann ein Benutzer von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus 'pullen'. + + + Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + + + + + Mit diesem Zauberwort verwandeln sich die Dateien in deinem Arbeitsverzeichnis plötzlich von einer Version in eine andere. + + + Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. + + + + + Mit ein bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen entspricht. + + + Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + + + + + Mit ein paar Tastendrücken kannst Du mehrere geänderte Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') oder Änderungen einzelner Dateien nachprüfen und hinzufügen. + + + Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. + + + + + Mit einer Webmail Anwendung musst Du eventuell ein Button anklicken um die eMail in ihrem rohen Originalformat anzuzeigen, bevor Du den 'Patch' in eine Datei sicherst. + + + Jeśli stosujesz webmail musisz ewentualnie kliknąć, by pokazać treść niesformatowaną, zanim zapamiętasz patch do pliku. + + + + + Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' einfach, aber das Zusammenfügen ('Mergen') ist schwierig. + + + Za pomoca niektorych systemow kontroli wersji utworzenie nowego 'branch' moze i jest proste, jednak pozniejsze zespolenie ('merge') trudne. + + + + + Mit etwas Glück, wenn Git's Verbreitung zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie vielleicht implementiert. + + + Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + + + + + Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. + + + Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. + + + + + Mit zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server herunterladen. + + + Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. + + + + + Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das meiste verstanden haben. + + + W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. + + + + + Multitasking mit Lichtgeschwindigkeit + + + Multitasking z prędkością światła + + + + + Musst Du während eines Notfalls improvisieren? + + + Musisz improwizować w nagłym wypadku? + + + + + Möglicherweise reicht ORIG_HEAD nicht aus. + + + Może się zdarzyć, że ORIG_HEAD nie wystarczy. + + + + + Nach dem 'Clonen' eines 'Repositories', wird *git push* oder *git pull* automatisch auf die original URL zugreifen. + + + Po sklonowaniu repozytorium, polecenia *git push* albo *git pull* będą automatycznie wskazywały na orginalne URL. + + + + + Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + + Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + + + + + Nach ein paar Durchläufen wird dich diese binäre Suche zu dem 'Commit' führen, der die Probleme verursacht. + + + Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. + + + + + Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige 'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder irgendetwas anderes. + + + Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + + + + + Nach einer längeren Sitzung hast du einen Haufen 'Commits' gemacht. + + + Po dłuższej sesji zrobiłeś całą masę 'commits'. + + + + + Nachdem ich einen Zweig abgerufen habe, benutze ich Git Anweisungen um durch die Änderungen zu navigieren und zu untersuchen, die idealerweise gut organisiert und dokumentiert sind. + + + Gdy przywołałem moją gałęź korzystam z poleceń Gita dla nawigacji i kontroli zmian, które najłepiej gdy są dobrze zorganizowane i udokumentowane. + + + + + Natürlich funktioniert der Trick für fast alles, nicht nur Skripts. + + + Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + + + + + Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und vielleicht bist du mit einem anderen System besser dran. + + + Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. + + + + + Natürlich sind dann viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' übermittelt werden. + + + Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. + + + + + Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. + + + Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami + + + + + Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. + + + Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. + + + + + Netzwerkressourcen sind einfach teurer als lokale Ressourcen. + + + Zasoby sieciowe są po prostu droższe niż zasoby lokalne. + + + + + Nicht nur des aktuellen Stand, sondern der gesamten Geschichte. + + + Nie tylko jedo aktualny stan, lecz również jego całą historię. + + + + + Nichts könnte weiter von der Wahrheit entfernt sein. + + + Nic nie jest bardziej oddalone od rzeczywistości. + + + + + Normalerweise füllt man ein Formular auf einer Website aus. + + + Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + + + + + Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den vorhergehenden 'Commit'. + + + Zazwyczaj kazdy 'commit' posiada rodzica-'commit', a mianowicie poprzedni 'commit'. + + + + + Normalerweise können wir den Index ignorieren und so tun als würden wir direkt aus der Versionsgeschichte lesen oder in sie schreiben. + + + Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. + + + + + Normalerweise machen wir einen *pull* weil wir die letzten 'Commits' abrufen und einbinden wollen. + + + W normalnym wypadku wykonalibyśmy *pull*, bo chcielibyśmy przywołać również ostatnie 'commmits'. + + + + + Normalerweise wird ein Skript, das diese Anweisung benutzt, hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem einzigen Lauf zu migrieren. + + + Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + + + + + Normalerweise ändern sich immer nur wenige Dateien zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. + + + W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. + + + + + Nun bist du wieder im `master` 'Branch', mit Teil II im Arbeitsverzeichnis. + + + Znajdujesz się znowu w `master` 'branch', z częścią II w katalogu roboczym. + + + + + Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + + + I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + + + + + Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach Herzenslust. + + + Przejdź teraz do nowego katalogu i pracuj według upodobania. + + + + + Nun gib ein: + + + Podajemy teraz; + + + + + Nun haben wir einen 'Branch' vom zweiten 'Repository' eingebunden und wir haben einfachen Zugriff auf alle 'Branches' von allen 'Repositories': + + + Teraz przyłączyliśmy jeden branch z dwóch repozytorii i uzyskaliśmy łatwy dostęp do wszystkich branch z wszystkich repozytorii. + + + + + Nun kannst Du Deine Arbeit jederzeit wie folgt überprüfen: + + + Teraz możesz swoją pracę w każdej chwili sprawdzić: + + + + + Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus veröffentlichen. + + + Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + + + + + Nun kannst du Fehler beheben, Änderungen vom zentralen 'Repository' holen ('pull') und so weiter. + + + Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. + + + + + Nun kannst du überall wild temporären Code hinzufügen. + + + Teraz mozesz wszedze wprowadzac na dziko kod tymczasowy. + + + + + Nun können wir die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten Stand, aber wir müssen den 'Master Branch' verlassen. + + + Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic 'master branch'. + + + + + Nun stell dir ein ganz kompliziertes Computerspiel vor. + + + Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. + + + + + Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben Zeile. + + + Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. + + + + + Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab: + + + Nie ma sprawy, jednak najpierw zabezpiecz dane. + + + + + Obwohl das Arbeitsverzeichnis unverändert bleibt, können wir nun jeden 'Branch' aus jedem 'Repository' in einer Git Anweisung referenzieren, da wir eine lokale Kopie besitzen. + + + Mimo, że nasz katalog pozostał bez zmian, możemy teraz referować z każdego repozytorium poprzez polecenia Gita, ponieważ posiadamy lokalną kopię. + + + + + Obwohl es extrem lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, so hat es doch zwei Vorteile: + + + Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + + + + + Obwohl ich nur unregelmäßig Beiträge erhalte, glaube ich, dass diese Methode sich auszahlt. + + + Mimo, iż dość rzadko otrzymuję posty, jestem zdania, że ta metoda się opłaca. + + + + + Oder Du kannst schauen, was auf dem 'Branch' ``experimentell'' los war: + + + Możesz też sprawdzić co działo się w 'Branch' ``experimental'' + + + + + Oder anders gesagt, du spiegelst den zentralen Server. + + + Lub inaczej mówiąc, odzwierciedlasz zentralny server. + + + + + Oder noch besser, anpacken und mithelfen. + + + Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + + + + + Oder noch schlimmer, deine aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz vorne beginnen. + + + Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + + + + + Oder rufe den fünftletzten 'Commit' ab, mit: + + + Albo przywołaj 5 ostatnich 'commits' za pomocą: + + + + + Oder seit Gestern: + + + Albo od wczoraj + + + + + Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel ein Spieler geleistet hat. + + + Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + + + + + Oder zwischen irgendeiner Version und der vorvorletzten: + + + Albo miedzy jakakolwiek wersja a przedostatnia: + + + + + Patches: Das globale Zahlungsmittel + + + Patches: globalny środek płatniczy + + + + + Persönliche Erfahrungen + + + Osobiste doświadczenia + + + + + Prüfe, ob die 'filter-branch' Anweisung getan hat was du wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' Operationen durchführst. + + + Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + + + + + Quellcode veröffentlichen + + + +Publikowanie kodu źródłowego + + + + + Rund ums 'Clonen' + + + Polecenie CLONEN + + + + + Rückgängig machen + + + Przywracanie + + + + + SHA1 Schwäche + + + Słabości SHA1 + + + + + Sagen wir du bist im `master` 'Branch'. + + + Powiedzmy też, że znajdujesz sie w 'master branch'. + + + + + Sagen wir, du hast einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt oder Dateien einer Website. + + + Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. + + + + + Schließlich, Teil I ist zugelassen: + + + Wreszcie, dopuszczamy część I: + + + + + Schmutzarbeit + + + Brudna robota + + + + + Schnelle Fehlerbehebung + + + Szybkie poprawianie bledow. + + + + + Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. + + + Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. + + + + + Sei vorsichtig, wenn Du 'checkout' auf diese Weise benutzt. + + + Bądź ostrożny stosując 'checkout' w ten sposób. + + + + + Sie alle haben bequeme Schnittstellen um Ordner voller Dateien zu verwalten. + + + Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. + + + + + Siehe *git help branch*. + + + Zobacz: *git help branch*. + + + + + Siehe *git help diff* und *git help rev-parse*. + + + Sprawdź *git help diff* i *git help rev-parse*. + + + + + Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine schnellere Methode vorstellt wird. + + + Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. + + + + + Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die ignoriert werden sollen. + + + Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + + + + + Siehe *git help remote* um zu sehen wie man Remote-'Repositories' entfernt, bestimmte 'Branches' ignoriert und mehr. + + + Sprawdź *git help remote* by zobaczyć, jak usuwa się repozytoria, ignoruje pewne branches i więcej- + + + + + Siehe *git help stash*. + + + Zobacz *git help stash*. + + + + + Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen Anweisung. + + + Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. + + + + + Siehe auf der Git Hilfeseite für einige Anwendungsbeispiele. + + + Na stronach pomocy git znajdziesz więcej zasosowań. + + + + + Siehe http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[diesen Blog Beitrag von Linus Torvalds (englisch)]. + + + Zobacz http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[Post na Blogu Linusa Torvalds (po angielsku)]. + + + + + Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für mehr. + + + Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + + + + + So schwierig zu lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das Spiel zu beenden. + + + Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. + + + + + So wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' mit abweichender Chronik hat und die Zweige sich austauschen sollen. + + + Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + + + + + Sogar einige Git Anweisungen selbst sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. + + + Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. + + + + + Solange Deine Mitstreiter ihre eMails lesen können, können sie auch Deine Änderungen sehen. + + + Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. + + + + + Solltest du kürzlich konkurrierende Änderungen an der selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut 'commiten' nachdem du die Konflikte aufgelöst hast. + + + Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + + + + + Speichere und Beende. + + + Zapamietaj i zakończ. + + + + + Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von Mitstreitern einbinden. + + + Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów + + + + + Stand sichern + + + Backup + + + + + Standardmäßig beginnst du in einem 'Branch' namens ``master''. + + + Standardowo zaczynasz w BRANCH zwanym MASTER. + + + + + Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. + + + Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. + + + + + Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + + + Standardowo dane te pozostają jeszcze przez 2 tygodnie. + + + + + Standardmäßig nutzt Git Systemeinstellungen um diese Felder auszufüllen. + + + Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. + + + + + Stattdessen stellen wir uns wieder vor, wir editieren ein Dokument. + + + Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + + + + + Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am Dateiende. + + + Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. + + + + + Stell dir zum Beispiel vor, du willst ein Projekt veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen privat bleiben muss. + + + Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. + + + + + Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein Computerspiel vor. + + + Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. + + + + + Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, wird von unzähligen Projekten benutzt. + + + Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. + + + + + Tatsächlich sind wir dem 'Mergen' schon lange begegnet. + + + W gruncie rzeczy spotkalismy sie juz wczesniej z 'merge'. + + + + + Temporäre 'Branches' + + + Tymczasowe BRANCHES + + + + + Teste die Funktion und wenn sich immer noch nicht funktioniert: + + + Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + + + + Tippe: + + + Wpisz: + + + + + Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. + + + Momo ich prostoty, wszystkie sa wazne i pozyteczne. + + + + + Trotz seiner Größe, +einedatei+ enthält das komplette original Git 'Repository'. + + + Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + + + + + Trotzdem gibt es Situationen, in denen es besser ist einen oberflächlichen Klon mit der `--depth` Option zu erstellen. + + + Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. + + + + + Trotzdem kann es langwierig sein, den exakten Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. + + + Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. + + + + + Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe von: + + + Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + + + + + Ultimative Datensicherung + + + Ultymatywny backup danych + + + + + Um Dateien zu bekommen, erstellst du einen 'Clone' des gesamten 'Repository'. + + + By pozyskać dane, tworzysz klon całej REPOSITORY. + + + + + Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. + + + Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, + + + + + Um auf die aktuelle Server-Version zu aktualisieren: + + + Aby zaktualizować do wersji na serwerze: + + + + + Um das Leben zu vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die Firmware. + + + By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + + + + + Um das Löschen zu erzwingen, gib ein: + + + By wymusić skasowanie, podaj: + + + + + Um das Verschieben zu erzwingen, gib ein: + + + By wymusić przesunięcie, podaj: + + + + + Um das zu tun, klickst du auf auf Speichern in deinem vertrauten Editor. + + + W tym celu klikasz na 'zapisz' w wybranym edytorze. + + + + + Um den neuen Stand zu sichern: + + + Aby zapisac nowy stan: + + + + + Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + + By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + + + + + Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + + Lokalne zmiany przekazujemy do serwera poleceniem: + + + + + Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + + Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + + + + Um diese Angaben explizit zu setzen, gib ein: + + + Aby wprowadzić te dane bezpośrednio, podaj: + + + + + Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht. + + + Bedac szczery, w pierwszych miesiacach pracy z GIT nie potrzebowalem zadnych innych poleceń, niz opisane w tym rozdziale + + + + + Um ein tarball-Archiv des Quellcodes zu erzeugen, verwende ich den Befehl: + + + Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + + + + + Um es zu erzwingen, verwende: + + + By zmusić dgo do tego, możesz użyć: + + + + + 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. + + + Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. + + + + + Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + + Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + + + + + Um wieder die Computerspielanalogie anzuwenden: + + + Jeśli znów skorzystamy z analogii do gier komputerkowych: + + + + + Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'. + + + Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + + + + + Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze: + + + By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + + + + + Um zum Beispiel die Anleitung auf http://de.wikipedia.org/wiki/Klingonische_Sprache[Klingonisch] zu übersetzen, mußt du folgendes machen: + + + Aby przykładowo przetłumaczyć to HOWTO na http://de.wikipedia.org/wiki/Klingonische_Sprache[Klingonisch], musisz wykonać następujące polecenia: + + + + + Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + + By na przyklad pokazać logi drugiego rodzica + + + + + Um zum Beispiel die Unterschiede zum ersten Elternteil anzuzeigen: + + + Natomiast, by pokazać roznice do pierwszgo rodzica + + + + + Unbeständige Projekte + + + Niestałe projekty + + + + + Und eigene Sicherungen bereitstellt? + + + Natomiast własne innym udostępni? + + + + + Und wenn der Chef in diesem Verzeichnis herumschnüffelt, tippe: + + + A gdy szef grzebie w twoim katalogu, wpisz: + + + + + Unter den Befehlen im Zusammenhang mit Git's verteilter Art, brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an unterschiedlichen Orten halten. + + + Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + + + + + Unterschiede sind schnell gefunden, weil nur die markierten Dateien untersucht werden müssen. + + + Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + + + + + Untracked .txt files. + + + untracket.txt files. + + + + + Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden Eigenschaften von Git. + + + niezwloczne 'branch' i MERGEN sa uderzajacymi wlasciwosciami GIT + + + + + Verhindere schlechte 'Commits' + + + Zapobiegaj złym 'commits' + + + + + Verliere nicht Deinen KOPF + + + Nie trać głowy + + + + + Verschiedene Git Hosting Anbieter lassen Dich mit einem Klick deine eigene 'Fork' eines Projekts hosten. + + + Większość hosterów Gita pozwala na utworzenie jednym kliknięciem twojego własnego forka innego projektu. + + + + + Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. + + + Niektóre projekty wymagają pliku historii zmian + + + + + Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit jedem 'Commit' erhöht wird. + + + Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". + + + + + Versionsverwaltung + + + Kontrola wersji + + + + + Versionsverwaltung im Untergrund + + + Zarządzanie wersją w poddziemiu + + + + + Versionsverwaltungen sind nicht anders. + + + Systemy kontroli wersji nie różnią się tutaj zbytnio. + + + + + Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und überlassen die schwierigen uns Menschen. + + + Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. + + + + + Versuche + + + Wypróbuj polecenie: + + + + + Versuche auch: + + + Sprobuj rowniez: + + + + + Verteilte Kontrolle + + + Rozproszona kontrola + + + + + Viele Git Befehle funktionieren nicht in 'bare Repositories'. + + + Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH + + + + + Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. + + + Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. + + + + + Viele Kommandos sind mürrisch vor dem intialen 'Commit'. + + + Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. + + + + + Viele Versionen auf diese Art zu archivieren ist mühselig und kann sehr schnell teuer werden. + + + Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + + + + + Vielleicht habe ich meine Kreditkartennummer in einer Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. + + + Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? + + + + + Vielleicht hast Du gerade bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + + + Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + + + + + Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash des letzten 'Commit' verknüpft ist. + + + Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + + + + + Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar ist. + + + Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. + + + + + Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung gesucht, nicht ein Versionsverwaltungssystem. + + + Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. + + + + + Vielleicht kann ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich in der Vergangenheit gebraucht habe. + + + Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + + + + + Vielleicht können Dateiformate geändert werden. + + + Ewentualnie można czasami zmienić format danych. + + + + + Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' abzuarbeiten. + + + Może lubisz odpracować wszystkie aspekty projektu w + + + + + Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' konfigurieren. + + + Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. + + + + + Vielmehr schreibt Git die Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an ihren eigentlichen Bestimmungsort. + + + Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + + + + + Von jetzt an wird + + + Od teraz poleceniem: + + + + + Vorwort + + + Przedmowa + + + + + Wann immer du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + + Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + + + + + Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten 'pull'-Befehl zu bleiben? + + + Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? + + + + + Warum ich Git benutze + + + Dlaczego korzystam z GIT + + + + + Warum mehrere Tabs unterstützen und mehrere Fenster? + + + Dlaczego pozwalają używać tabs albo okien? + + + + + Was habe ich getan? + + + Co ostatnio robilem? + + + + + Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? + + + A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? + + + + + Was, wenn du am Ende die temporären Änderungen sichern willst? + + + A co jesli chcesz zapamietac wprowadzone zmiany? + + + + + Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? + + + A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? + + + + + Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. + + + Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. + + + + + Welche Lösung ist die beste? + + + Ktore rozwiazanie jest najlepsze? + + + + + Wenn Anwender langsame Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss unterbrochen wird. + + + Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + + + + + Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien überwacht. + + + Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. + + + + + Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + + Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + + + + + Wenn Du ein 'Repository' 'clonst', 'clonst' Du auch alle seine 'Branches'. + + + Jeśli klonujesz repozytorium, klonujesz równierz wszystkie jego 'branches' + + + + + Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + + Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + + + + + Wenn Du zufrieden bist, gib + + + Jeśli jesteś zadowolony z wyniku, wpisz: + + + + + Wenn Spieler vom Hauptserver herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt gespeicherte. + + + Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany + + + + + Wenn alle 'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu lassen, da jegliche Kommunikation über SSH läuft. + + + Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + + + + + Wenn auch nicht so effizient wie mit dem systemeigenen Protokoll, kann Git über HTTP kommunizieren. + + + Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + + + + + Wenn das original 'Repository' verschoben wird, können wir die URL aktualisieren mit: + + + Jeśli orginalne repozytorium zostanie przesunięte, możemy zaktualizować link poprzez: + + + + + Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst um dort einen 'Clone' zu platzieren. + + + Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + + + + + Wenn dein Projekt viele Entwickler hat, musst du nichts tun! + + + Jeśli projekt posiada wielu programistów, nie musisz niczego robić + + + + + Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter Form zu verwenden. + + + Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. + + + + + Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen: + + + Jesli dodales nowe pliki, musisz o tym poinformowac GIT + + + + + Wenn du Glück hast oder sehr gut bist, kannst du die nächsten Zeilen überspringen. + + + Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + + + + + Wenn du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir Konflikte melden. + + + Jesli jednak wprowadziles zmiany, Git bedzie je automatycznie 'merge' i powiadomi cie o eventualnych konfliktach. + + + + + Wenn du deine Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + + Po skończeniu dochodzenia przejdź do orginalnego stanu: + + + + + Wenn du einen 'Commit' mit 'edit' markiert hast, gib ein: + + + Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + + + + + Wenn du fertig bist, + + + A gdy skończysz: + + + + + Wenn du gut voran gekommen bist, willst du das Erreichte sichern. + + + Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. + + + + + Wenn du keine lokalen Änderungen hast, dann ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. + + + Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu kontroli wersji. + + + + + Wenn du nun eine alte Version erhalten willst, musst du den ganzen Ordner archivieren. + + + Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. + + + + + Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit: + + + Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + + + + + Wenn du wieder zurück zu deinen Änderungen willst, tippe: + + + Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + + + + + Wenn ein Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + + + Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + + + + + Wenn es mit einem der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon jemand ein Skript geschrieben hat, das die gesamte Chronik für Git exportiert. + + + Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + + + + + Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + + Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + + + + + Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger Schaden zugefügt. + + + Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. + + + + + Wenn ich zufrieden bin, 'pushe' ich in das zentrale 'Repository'. + + + Gdy już jestem zadowolony, 'push' do zentralnego repozytorium.- + + + + + Wenn ich zur ursprünglichen Arbeit zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr Zeit beim Versuch mich zu erinnern was ich getan habe. + + + Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. + + + + + Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver eingegangen sind, schlägt dein 'push' fehl. + + + Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. + + + + + Wenn mehrere 'Branches' mit unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' gemacht wird, ist ein manuelles Eingreifen erforderlich. + + + Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + + + + + Wenn nicht, ersetzte "bad" mit "good". + + + Jeśli nie, zamień "bad" na "good". + + + + + Wenn nötig, starte den Git-Dämon: + + + Jeśli konieczne, wystartuj GIT-DAEMON + + + + + Wer bin ich? + + + Kim jestem? + + + + + Wer ist verantwortlich? + + + Kto ponosi odpowiedzialność? + + + + + Wer macht was? + + + Kto robi co? + + + + + Wie 'Clonen', 'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine weitere Stärke, die Git dir bietet. + + + Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. + + + + + Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein 'Repository' ab. + + + W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY + + + + + Wie auch immer, mit Git kannst du nicht viel falsch machen. + + + Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. + + + + + Wie auch immer, vorausgesetzt du hast oft 'comittet', kann Git dir sagen, wo das Problem liegt: + + + Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + + + + + Wie du dir vielleicht schon gedacht hast, verwendet Git 'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + + + Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + + + + + Wie macht Git das? + + + Jak Git to robi? + + + + + Wie mit der ``master'' 'Branch' Konvention können wir diesen Spitznamen ändern oder löschen, aber es gibt für gewöhnlich keinen Grund dies zu tun. + + + Tak jak i przy konwencji z ``master'' 'Branch' , możemy ten alias zmienić albo skasować, zwykle jednak nie ma powodów by to robić. + + + + + Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + + Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + + + + + Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die Sicherungen der anderen bekommt? + + + W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? + + + + + Wieder andere bevorzugen irgendetwas dazwischen. + + + Inni znowu wolą coś pomiędzy. + + + + + Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne Netzwerkverbindung? + + + Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? + + + + + Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. + + + Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 + + + + + Wir erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß permanent. + + + Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + + + + + Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das bekannteste freie verteilte Versionsverwaltungssystem ist. + + + Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + + + + + Wir haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. + + + We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. + + + + + Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer bestimmten Nachricht enthält. + + + Utworzylismy repozytorium posiadające plik z ta zawartoscia + + + + + Wir haben gesehen, dass man mit <<makinghistory, *git fast-export* und *git fast-import* 'Repositories' in eine einzige Datei konvertieren kann und zurück>>. + + + Widzieliśmym, że poleceniami <<makinghistory, *git fast-export* i *git fast-import* możemy konwertować całe repozytoria w jeden jedyny plik i spowrotem>>. + + + + + Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen: + + + Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + + + + + Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden: + + + Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + + + + + Wir können mehr als ein 'Repository' gleichzeitig beobachten mit: + + + Możemy obserwować więcej niż jedno reposytorium jednocześnie: + + + + + Wir können solche Dateien hin und her schicken um Git 'Repositories' über jedes beliebige Medium zu transportieren, aber ein effizienteres Werkzeug ist *git bundle*. + + + W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + + + + + Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das? + + + Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + + + + + Wir müssen die Datei aus allen 'Commits' entfernen: + + + Musimy ten plik usunąć ze wszystkich 'commits': + + + + + Wir müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen 'pullen', also abholen wollen. + + + Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. + + + + + Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung gekommen, als wir das Laden alter Stände besprochen haben. + + + Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow + + + + + Wird irgendein 'Clone' beschädigt, wird dies dank des kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit anderen zu kommunizieren. + + + Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + + + + + Wirklich, diese Anweisung kann Klartext-'Repositories' über reine Textkanäle übertragen. + + + Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + + + + + Wo ging alles schief? + + + Gdzie wszystko poszło źle? + + + + + Wo kommt dieser Fehler her? + + + Skąd wziął się ten błąd? + + + + + Während dem Warten auf das Ende der Serverkommunikation tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails lesen oder Dokumentation schreiben. + + + Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. + + + + + Während dem ursprünglichen 'clonen', wird sie auf den aktuellen 'Branch' des Quell-'Repository' gesetzt, so dass selbst dann, wenn der 'HEAD' des Quell-'Repository' inzwischen auf einen anderen 'Branch' gewechselt hat, ein späterer 'pull' wird treu dem original 'Branch' folgen. + + + Podczas początkowego klonowania, zostanie ustawiony na aktualny branch źródłowego repozytorium, że nawet i potym jak 'HEAD' źródłowego repozytorium przejdzie do innego branch, późniejszy 'pull' pozostanie wierny orginalnemu branch. + + + + + Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem fatalen Fehler zu beenden. + + + Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. + + + + + Zeige die entfernten 'Branches' an mit: + + + Oddalone 'branches' możesz pokazać poprzez: + + + + + Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler steigt. + + + Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. + + + + + Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts 'mergen' mit: + + + W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + + + + + Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon 'pullen'. + + + W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + + + + + Zuerst, 'pull' funktioniert nicht mit 'bare Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später behandeln. + + + Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. + + + + + Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten Version, falls du später mit ihnen interagieren möchtest. + + + Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + + + + + Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. + + + na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. + + + + + Zum Beispiel ist `git checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu komprimieren als eine Sammlung von Änderungen auf Dateibasis. + + + Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + + + + + Zum Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert wird. + + + Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany + + + + + Zum Beispiel wäre es sicher, ihn in einer Zeitung zu veröffentlichen, denn es ist schwer für einen Angreifer jede Zeitungskopie zu manipulieren. + + + Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + + + + + Zum Beispiel, Englisch ist "en", Japanisch ist "ja". + + + Na przykład, angielski to "en", a japoński to "ja". + + + + + Zum Beispiel, angenommen Du hast viele 'Commits' gemacht und möchtest einen Vergleich zur letzten abgeholten Version machen. + + + Przyjmijmy, na przykład, że wykonałeś wiele COMMITTS i chciałbyś uzyskać porównanie do ostatnio ściągniętej wersji. + + + + + Zum Beispiel, nehmen wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien haben: + + + Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + + + + Zum Beispiel: + + + Na przyklad: + + + + + Zum Glück ist es einfach, Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' einen Zähler erhöht. + + + Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. + + + + + Zum Konvertieren gib in einem leeren Verzeichnis ein: + + + Aby przekonwertować wejść do pustego katalogu: + + + + + Zusätzlich habe ich mich dabei ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten meinem gewohnten Arbeitsablauf zu folgen. + + + Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + + + + + Zusätzlich müssen verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines 'Branch' mit einem abweichenden initialen 'Commit'. + + + Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + + + + + [[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum auch immer, drei Versionen zurückgehen um ein paar print Anweisungen einzufügen, damit du siehst, wie etwas funktioniert. + + + [[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzialanie. + + + + + [[makinghistory]] Du möchtest ein Projekt zu Git umziehen? + + + [[makinghistory]] Masz zamiar przenieść projekt do git? + + + + + bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + + + znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + + + + + beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen Hashwert mit 1b6d beginnt. + + + rozpoczyna z nowym BRANCH o nazwie '``archaiczny'', ktory posiada stan 10 'commit' spowrotem od drugiego rodzica 'commit', ktorego klucz rozpoczyna sie na 1b6d. + + + + + bewegt den HEAD Bezeichner drei 'Commits' zurück. + + + przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. + + + + + bringt dich wieder in die Gegenwart. + + + sprowadzi cie znów do teraźniejszości. + + + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + + + dann 'Clone' es: + + + następnie sklonuj go: + + + + + das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie zuletzt geändert hat und wann. + + + które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. + + + + + den Zustand der Dateien des anderen Computer auf den übertragen, an dem du gerade arbeitest. + + + przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz + + + + + ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" Änderungen). + + + by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) + + + + + exit 1 fi + + + exit 1 fi + + + + + gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt werden kann. + + + produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. + + + + + http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine herkömmliche Datensicherung. + + + Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + + + + + http://git.or.cz/[Git] ist eine Art "Schweizer Taschenmesser" für Versionsverwaltung. + + + http://git.or.cz/[Git] to rodzaj scyzoryka szwajcarskiego dla kontroli wersji. + + + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + + + int main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + + + nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + + + po uprzednim dodaniu skryptu do `$ PATH`. + + + + + oder Mercurial: + + + albo Mercurial: + + + + + origin/HEAD origin/master origin/experimentell + + + origin/HEAD origin/master origin/experimental + + + + + pick 5c6eb73 Link repo.or.cz hinzugefügt pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert pick 100834f Push-Ziel zum Makefile hinzugefügt + + + pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + + + + + um dein Skript herunterzuladen. + + + by mogli zładować skrypt. + + + + + um den 'Patch' anzuwenden. + + + By zastosować patch. + + + + + um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen. + + + możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + + + + + um die letzte Beschreibung zu ändern. + + + by zmienić ostatni opis. + + + + + um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. + + + by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. + + + + + um mehr zu erfahren. + + + by dowiedzieć się więcej. + + + + + um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. + + + by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, + + + + + um zur ursprünglichen Arbeit zurückzukehren. + + + by wrocic do poprzedniego zajęcia + + + + + und 'commite' bevor du auf den 'Master Branch' zurückschaltest. + + + i tylko jeszcze 'commit' zanim wrocisz do 'master branch'. + + + + + und Simsalabim! + + + i Simsalabim! + + + + + und das machst du für jede txt-Datei. + + + i zrób to z każdą następną daną textową. + + + + + und deine Nutzer können ihr Skript aktualisieren mit: + + + a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + + + + + und die letzten zehn 'Commits' erscheinen in deinem bevorzugten $EDITOR. Auszug aus einem Beispiel: + + + i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + + + + + und erstelle neue Aktualisierungsbundles mit: + + + a nowy 'bundle' tworzymy następnie poprzez: + + + + + und fahre mit deiner ursprünglichen Arbeit fort. + + + i kontynuujesz przerwane zajęcie + + + + + und jedermann kann Dein Projekt abrufen mit: + + + i każdy może teraz sklonować twój projekt przez: + + + + + und noch viel mehr + + + i tak dalej. + + + + + und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich die 'Commits' aus dem 'Bundle' durch Eingabe von: + + + i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + + + + untersuchen wes you can study for writing exporters, and also to transport repositories in a human-readable format. + + + + + + + + wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den ``bereinigt'' 'Branch' an. + + + zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. + + + + + wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. + + + To polecenie skasuje COMMIT o wybranym hash-u. + + + + + wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell aufrufst. + + + wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + + + + + zeigt den Namen des aktuellen 'Branch'. + + + pokaże nazwę aktualnego 'branch'. + + + + + zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + + + pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + + + + + Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + + Podobnie możesze celowo wykasować wybrane COMMITS. + + + + + Über die Zeit haben sich einige lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' mit dem offiziellen Zweig. + + + Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. + + + + + Übertrage ('push') dein Projekt auf den zentralen Server mit: + + + Przenieś (PUSH) twój projekt teraz na centralny serwer: + + + + + Üblicherweise ist deren Verhalten einstellbar. + + + Zazwyczaj ich zachowanie daje się ustawić. + + + + + Übung + + + Cwiczenie + + + +
diff --git a/pl/omegat-tmp/omegat/project_save.tmx.bak b/pl/omegat-tmp/omegat/project_save.tmx.bak new file mode 100644 index 0000000..064a9f9 --- /dev/null +++ b/pl/omegat-tmp/omegat/project_save.tmx.bak @@ -0,0 +1,8745 @@ + + + +
+ + + + + "blob" SP "6" NUL "sweet" LF + + + "blob" SP "6" NUL "sweet" LF + + + + + "commit 158" NUL "tree 05b217bb859794d08bb9e4f7f04cbda4b207fbe9" LF "author Alice <alice@example.com> 1234567890 -0800" LF "committer Bob <bob@example.com> 1234567890 -0800" LF LF "Shakespeare" LF + + + "commit 158" NUL "tree 05b217bb859794d08bb9e4f7f04cbda4b207fbe9" LF "author Alice <alice@example.com> 1234567890 -0800" LF "committer Bob <bob@example.com> 1234567890 -0800" LF LF "Shakespeare" LF + + + + + "tree" SP "32" NUL "100644 rose" NUL 0xaa823728ea7d592acc69b36875a482cdf3fd5c8d + + + "tree" SP "32" NUL "100644 rose" NUL 0xaa823728ea7d592acc69b36875a482cdf3fd5c8d + + + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + + + $ chmod a+x hooks/post-update + + + chmod a+x hooks/post-update + + + + + $ echo "Ich bin klüger als mein Chef" > meinedatei.txt $ git init $ git add . + + + $ echo "jestem mądrzejszy od szefa" > mojplik.txt $ git init $ git add . + + + + + $ echo 05b217bb859794d08bb9e4f7f04cbda4b207fbe9 | git cat-file --batch + + + $ echo 05b217bb859794d08bb9e4f7f04cbda4b207fbe9 | git cat-file --batch + + + + + $ echo sweet > DEIN_DATEINAME $ git init $ git add . + + + +$ echo sweet > TWOJA_NAZWA $ git init $ git add . + + + + + $ edit intro.txt # übersetze diese Datei. + + + $ edit intro.txt # Przetłumacz ten plik. + + + + + $ find .git/objects -type f + + + $ find .git/objects -type f $ find .git/objects -type f + + + + + $ git am < email.txt + + + $ git am < email.txt + + + + + $ git apply < mein.patch + + + $ git apply < moj.patch + + + + + $ git bisect bad + + + +$ git bisect bad + + + + + $ git bisect reset + + + $ git bisect reset + + + + + $ git bisect run mein_skript + + + $ git bisect run moj_skrypt + + + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + + + $ git blame bug.c + + + $ git blame bug.c + + + + + $ git branch -D dead_branch # instead of -d + + + $ git branch -D dead_branch # zamiast -d + + + + + $ git branch -M source target # instead of -m + + + git branch -M zrodlo cel # zamiast -m + + + + + $ git branch -m master teil2 # Umbenennen des 'Branch' "master" zu "teil2". + + + $ git branch -m master czesc2 # zmiana nazwy 'branch' "master" na "czesc2". + + + + + $ git branch -r + + + $ git branch -r + + + + + $ git branch master HEAD~7 # Erstelle neuen "master", 7 Commits voraus + + + $ git branch master HEAD~7 # utwórz nowy "master", 7 'commit' do przodu + + + + + $ git bundle create einedatei HEAD + + + $ git bundle create plik HEAD + + + + + $ git bundle create einedatei HEAD ^1b6d + + + +$ git bundle create plik HEAD ^1b6d + + + + + $ git bundle create neuesbundle HEAD ^letztesbundle + + + $ git bundle create nowybundle HEAD ^ostatnibundle + + + + + $ git cat-file -p aa823728ea7d592acc69b36875a482cdf3fd5c8d + + + $ git cat-file -p aa823728ea7d592acc69b36875a482cdf3fd5c8d + + + + + $ git checkout -b chef # scheinbar hat sich danach nichts geändert $ echo "Mein Chef ist klüger als ich" > meinedatei.txt $ git commit -a -m "Ein anderer Stand" + + + $ git checkout -b chef # wydaje się, że nic nie uległo zmianie $ echo "Mój szef jest mądrzejszy ode mnie" > mojplik.txt $ git commit -a -m "Inny stan" + + + + + $ git checkout -b schmutzig + + + $ git checkout -b brudy + + + + + $ git checkout -b teil2 + + + $ git checkout -b czesc2 + + + + + $ git checkout -f HEAD^ + + + $ git checkout -f HEAD^ + + + + + $ git checkout 1b6d^^2~10 -b uralt + + + $ git checkout 1b6d^^2~10 -b archaiczny + + + + + $ git checkout chef # wechsle zur Version die der Chef ruhig sehen kann + + + $ git checkout chef # wersja, którą szef spokojnie może zobaczyć + + + + + $ git checkout master # Gehe zurück zu Teil I. $ fix_problem $ git commit -a # 'Commite' die Lösung. + + + $ git checkout master # wróć do częsci I $ usun_problem $ git commit -a # wykonaj 'commit' z rozwiązaniam. + + + + + $ git checkout master # Gehe zurück zu Teil I. $ submit files # Veröffentliche deine Dateien! + + + $ git checkout master # Idź do części I. $ submit files # Opublikuj dane! + + + + + $ git checkout master # wechsle zur Originalversion der Datei + + + $ git checkout master # przejdź do wersji orginalnej + + + + + $ git checkout master . + + + $ git checkout master + + + + + $ git checkout schnmutzig + + + $ git checkout brudy + + + + + $ git checkout teil2 # Gehe zurück zu Teil II. $ git merge master # 'Merge' die Lösung. + + + $ git checkout czesc2 # Idź do części II. $ git merge master # 'merge' rozwiązanie. + + + + + $ git clean -f -d + + + $ git clean -f -d + + + + + $ git clone git://github.com/blynn/gitmagic.git $ git clone git://gitorious.org/gitmagic/mainline.git + + + $ git clone git://github.com/blynn/gitmagic.git $ git clone git://gitorious.org/gitmagic/mainline.git + + + + + $ git clone git://repo.or.cz/gitmagic.git # Erstellt "gitmagic" Verzeichnis. + + + $ git clone git://repo.or.cz/gitmagic.git # Utworzy katalog "gitmagic". + + + + + $ git clone git://repo.or.cz/gitmagic.git $ cd gitmagic $ mkdir tlh # "tlh" ist das IETF Sprachkürzel für Klingonisch. + + + $ git clone git://repo.or.cz/gitmagic.git $ cd gitmagic $ mkdir tlh # "tlh" jest skrótem IETF języka Klingonisch. + + + + + $ git clone http://web.server/proj.git + + + $ git clone http://web.server/proj.git + + + + + $ git commit # Schreibe eine Bemerkung. + + + $ git commit # dodaj jakiś opis. + + + + + $ git commit --amend + + + $ git commit --amend + + + + + $ git commit --amend -a + + + $ git commit --amend -a + + + + + $ git commit --amend -m Shakespeare # Ändere die Bemerkung. + + + $ git commit --amend -m Shakespeare # Zmień ten opis. + + + + + $ git commit -a -m "Fehler behoben" $ git checkout master + + + $ git commit -a -m "usunięto bug" $ git checkout master + + + + + $ git commit -m "Erster Stand" + + + $ git commit -m "pierwszy stan" + + + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + + + $ git config --global user.name "Max Mustermann" $ git config --global user.email maxmustermann@beispiel.de + + + $ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + + + + + $ git config --list + + + $ git config --list + + + + + $ git config gc.auto 0 + + + $ git config gc.auto 0 + + + + + $ git config gc.pruneexpire "30 days" + + + $ git config gc.pruneexpire "30 days" + + + + + $ git config remote.origin.url git://neue.url/proj.git + + + git config remote.origin.url git://nowy_link/proj.git + + + + + $ git diff 1b6d > mein.patch + + + $ git diff 1b6d > moj.patch + + + + + $ git diff origin/HEAD + + + $ git diff origin/HEAD + + + + + $ git diff origin/experimentell^ other/some_branch~5 + + + $ git diff origin/experimental^ inny/jakis_branch~5 + + + + + $ git fetch # Fetch vom origin, der Standard. + + + $ git fetch # Fetch z origin, jako standard. + + + + + $ git fetch other # Fetch vom zweiten Programmierer. + + + $ git fetch inne # Fetch od drugiego programisty. + + + + + $ git filter-branch --env-filter 'export GIT_AUTHOR_DATE="Fri 13 Feb 2009 15:31:30 -0800" GIT_AUTHOR_NAME="Alice" GIT_AUTHOR_EMAIL="alice@example.com" GIT_COMMITTER_DATE="Fri, 13 Feb 2009 15:31:30 -0800" GIT_COMMITTER_NAME="Bob" GIT_COMMITTER_EMAIL="bob@example.com"' # Manipuliere Zeitstempel und Autor. + + + $ git filter-branch --env-filter 'export GIT_AUTHOR_DATE="Fri 13 Feb 2009 15:31:30 -0800" GIT_AUTHOR_NAME="Alice" GIT_AUTHOR_EMAIL="alice@example.com" GIT_COMMITTER_DATE="Fri, 13 Feb 2009 15:31:30 -0800" GIT_COMMITTER_NAME="Bob" GIT_COMMITTER_EMAIL="bob@example.com"' # Zmanipuluj znacznik czasowy i nazwę autora. + + + + + $ git filter-branch --tree-filter 'mv DEIN_DATEINAME rose' $ find .git/objects -type f + + + $ git filter-branch --tree-filter 'mv TWOJA_NAZWA rose' $ find .git/objects -type f + + + + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + + + $ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + + + + + $ git format-patch 1b6d + + + git format-patch 1b6d + + + + + $ git format-patch 1b6d..HEAD^^ + + + $ git format-patch 1b6d..HEAD^^ + + + + + $ git init $ git add . + + + + + + + + $ git log origin/experimentell + + + $ git log origin/experimental + + + + + $ git merge teil2 # 'Merge' in Teil II. $ git branch -d teil2 # Lösche den Branch "teil2" + + + $ git merge czesc2 # 'merge' w części II. $ git branch -d czesc2 # Usuń 'branch' o nazwie "czesc2" + + + + + $ git pull einedatei + + + +$ git pull plik + + + + + $ git pull git://beispiel.com/anderes.git master + + + $ git pull git://example.com/inny.git master + + + + + $ git push web.server:/pfad/zu/proj.git master + + + $ git push web.server:/sciezka/do/proj.git master + + + + + $ git rebase --continue + + + $ git rebase --continue + + + + + $ git rebase -i HEAD~10 + + + $ git rebase -i HEAD~10 + + + + + $ git remote add other git://example.com/some_repo.git $ git pull other some_branch + + + $ git remote add inny git://example.com/jakies_repo.git $ git pull inny jakis_branch + + + + + $ git reset --hard 1b6d + + + $ git reset --hard 1b6d + + + + + $ git symbolic-ref HEAD + + + $ git symbolic-ref HEAD + + + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + + + $ git tag -f letztesbundle HEAD + + + $ git tag -f ostatnibundle HEAD + + + + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + + + $ git-new-workdir ein/istniejacy/repo nowy/katalog + + + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + + + $ printf "blob 6\000sweet\n" | sha1sum + + + $ printf "blob 6\000sweet\n" | sha1sum + + + + + $ rm -r .git/refs/original $ git reflog expire --expire=now --all $ git prune + + + $ rm -r .git/refs/original $ git reflog expire --expire=now --all $ git prune + + + + + $ zpipe -d < .git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9 | sha1sum + + + +$ zpipe -d < .git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9 | sha1sum + + + + + 'Branch'-Magie + + + Magia 'branch' + + + + + 'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das Öffnen eines neuen Browserfenster. + + + BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. + + + + + 'Branches' sind fast das selbe: sie sind Dateien in +.git/refs/heads+. + + + 'branches' to prawie to samo, są plikami zapamiętanymi w +.git/refs/heads+. + + + + + 'Branches' verwalten + + + Organizacja BRANCHES + + + + + 'Branching'? + + + +'Branching'? + + + + + 'Clone' die Quelltexte, dann erstelle ein Verzeichnis mit dem Namen des IETF Sprachkürzel der übersetzten Sprache: siehe http://www.w3.org/International/articles/language-tags/Overview.en.php[den W3C Artikel über Internationalisierung]. + + + 'Clone' texty źródłowe, następnie utwórz katalog o nazwie skrótu IETF przetłumaszonego języka: sprawdź http://www.w3.org/International/articles/language-tags/Overview.en.php[Artykół W3C o internacjonalizacji]. + + + + + 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne Netzwerkverbindung. + + + Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. + + + + + 'Commite' Änderungen + + + Zmiany 'commit' + + + + + 'Commits' sind elementar, das heißt, ein 'Commit' kann niemals nur Teile einer Änderung speichern: wir können den SHA1-Hash-Wert eines 'Commits' erst dann berechnen und speichern, nachdem wir bereits alle relevanten 'Tree'-Objekte, 'Blob'-Objekte und Eltern-'Commits' gespeichert haben. + + + 'commits' są elementarne, do znaczy, 'commit' nie potrafi zapamiętać jedynie części zmian: klucz SHA1 'commit' możemy obliczyć i zapamiętać dopiero po tym gdy zapamiętane zostały wszystkie objekty 'tree', 'blob' i rodziców 'commit'. + + + + + 'Committe' deine Änderungen oft und wenn du fertig bist, gib bitte Bescheid. + + + Używaj często 'commit' a gdy już skończysz, to daj znać. + + + + + 'Fork' eines Projekts + + + FORK projektu + + + + + 'Merge' Konflikte + + + Konflikty z 'merge' + + + + + 'Mergen' + + + 'merge' + + + + + 'Merging'? + + + 'Merging'? + + + + + 'Nackte Repositories' + + + Gołe REPOSITORIES + + + + + 'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern und Menschen gleichermaßen einfach verstanden werden. + + + 'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. + + + + + 'Push' oder 'Pull' + + + PUSH albo PULL + + + + + 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + + + 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + + + + + 'Tags'? + + + 'Tags'? + + + + + 'Trees' + + + 'Trees' + + + + + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + + + * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + + + + + * `reword` um die Log-Beschreibung zu ändern. + + + * `reword`, by zmienić opisy logu. + + + + + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + + + * `squash` by połączyć 'commit' z poprzednim ('merge'). + + + + + *Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. + + + *Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. + + + + + *Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. + + + *Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. + + + + + *Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. + + + *clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. + + + + + *Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + + + *Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie jest: *git branch*. + + + + + *Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. + + + *Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. + + + + + *Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. + + + *reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. + + + + + - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. + + + - *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. + + + + + - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene. + + + - *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + + + + + - Entferne 'Commits' durch das Löschen von Zeilen. + + + - usuń 'commits' poprzez skasowanie lini. + + + + + - Ersetze `pick` mit: * `edit` um einen 'Commit' für 'amends' zu markieren. + + + - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. + + + + + - Organisiere 'Commits' durch verschieben von Zeilen. + + + - przeorganizuj 'commits' przesuwając linie. + + + + + - http://github.com/[http://github.com/] hostet Open-Source Projekte kostenlos und geschlossene Projekte gegen Gebühr. + + + - http://github.com/[http://github.com/] hostuje projekty Open-Source darmowo a projekty zamknięte za opłatą. + + + + + - http://gitorious.org/[http://gitorious.org/] ist eine andere Git Hosting Seite, bevorzugt für Open-Source Projekte. + + + - http://gitorious.org/[http://gitorious.org/] to następna strona hostingowa Gita, preferująca Projekty Open-Source. + + + + + - http://packages.debian.org/gitmagic[Debian Packet], http:://packages.ubuntu.com/gitmagic[Ubuntu Packet]: Für eine schnelle und lokale Kopie dieser Seite. + + + - http://packages.debian.org/gitmagic[Pakiet Debiana], http:://packages.ubuntu.com/gitmagic[Pakiet Ubuntu]: Dla szybkiej lokalnej kopii tej strony. + + + + + - http://repo.or.cz/[http://repo.or.cz/] hostet freie Projekte. + + + - http://repo.or.cz/[http://repo.or.cz/] hostuje wolne projekty> + + + + + - http://www.amazon.com/Git-Magic-Ben-Lynn/dp/1451523343/[Gedrucktes Buch [Amazon.com]]: 64 Seiten, 15.24cm x 22.86cm, schwarz/weiß. + + + - http://www.amazon.com/Git-Magic-Ben-Lynn/dp/1451523343/[Drukowana książka [Amazon.com]]: 64 Strony, 15.24cm x 22.86cm, czarno-biała. + + + + + - http://www.slideshare.net/slide_user/magia-git[Portugiesisch]: von Leonardo Siqueira Rodrigues [http://www.slideshare.net/slide_user/magia-git-verso-odt[ODT-Version]]. + + + - http://www.slideshare.net/slide_user/magia-git[portugalski]: od Leonardo Siqueira Rodrigues [http://www.slideshare.net/slide_user/magia-git-verso-odt[Wersja ODT]]. + + + + + - link:/\~blynn/gitmagic/intl/zh_cn/[Vereinfachtes Chinesisch]: von JunJie, Meng und JiangWei. + + + - link:/\~blynn/gitmagic/intl/zh_cn/[uproszczony chiński]: od JunJie, Meng i JiangWei. + + + + + - link:/~blynn/gitmagic/intl/de/[Deutsch]: von Benjamin Bellee und Armin Stebich; Auch gehostet unter http://gitmagic.lordofbikes.de/[Armin's Website]. + + + - link:/~blynn/gitmagic/intl/de/[Deutsch]: od Benjamin Bellee i Armin Stebich; Również na http://gitmagic.lordofbikes.de/[Armin's Website]. + + + + + - link:/~blynn/gitmagic/intl/es/[Spanisch]: von Rodrigo Toledo und Ariset Llerena Tapia. + + + - link:/~blynn/gitmagic/intl/es/[hiszpański]: od Rodrigo Toledo i Ariset Llerena Tapia. + + + + + - link:/~blynn/gitmagic/intl/fr/[Französich]: von Alexandre Garel, Paul Gaborit, und Nicolas Deram. Auch gehostet unter http://tutoriels.itaapy.com/[itaapy]. + + + - link:/~blynn/gitmagic/intl/fr/[francuski]: od Alexandre Garel, Paul Gaborit, i Nicolas Deram. Również na http://tutoriels.itaapy.com/[itaapy]. + + + + + - link:/~blynn/gitmagic/intl/ru/[Russisch]: von Tikhon Tarnavsky, Mikhail Dymskov, und anderen. + + + - link:/~blynn/gitmagic/intl/ru/[rosyjski]: od Tikhon Tarnavsky, Mikhail Dymskov, i innych. + + + + + - link:/~blynn/gitmagic/intl/vi/[Vietnamesisch]: von Trần Ngọc Quân; Auch gehostet unter http://vnwildman.users.sourceforge.net/gitmagic.html[seiner Website]. + + + - link:/~blynn/gitmagic/intl/vi/[wietnamski]: od Trần Ngọc Quân; Również na http://vnwildman.users.sourceforge.net/gitmagic.html[jego Stronie]. + + + + + - link:book.html[Einzelne Webseite]: reines HTML, ohne CSS. - link:book.pdf[PDF Datei]: druckerfreundlich. + + + - link:book.html[pojedyńcze strony]: czysty HTML, bez CSS. - link:book.pdf[PDF Datei]: przyjazne do druku. + + + + + ---------------------------------- + + + ---------------------------------- + + + + + ... + + + ... + + + + + .Andere Ausgaben + + + .Inne wydania + + + + + .Kostenloses Git Hosting + + + .Darmowe repozytoria Git + + + + + .Übersetzungen + + + .Tłumaczenia + + + + + <<branch,Dazu kommen wir später>>. + + + <<branch, wrócimy do tego później>> + + + + + = Git Magic = Ben Lynn August 2007 + + + = Git Magic = Ben Lynn Sierpień 2007 + + + + + A, B, C, D sind 4 aufeinander folgende 'Commits'. + + + A, B, C i D sa 4 nastepujacymi po sobie COMMITS. + + + + + Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + + Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + + + + + Aber auch wenn wir ein normales 'Repository' auf dem zentralen Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. + + + Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. + + + + + Aber deshalb ein einfacheres, schlecht erweiterbares System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen zu verwenden. + + + Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + + + + + Aber du bist mit der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas umformuliert werden. + + + Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. + + + + + Aber einige Leute sind diesen Zähler gewöhnt. + + + Niektórzy jednak przyzwyczaili się do tego licznika. + + + + + Aber es gibt einen viel einfacheren Weg. + + + Istnieje jednak dużo prostszy sposób. + + + + + Aber es ist eine Illusion. + + + Ale to iluzja. + + + + + Aber manchmal arbeite ich an meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich inzwischen nicht austauschen können. + + + Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + + + + + Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. + + + Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. + + + + + Aber spätere 'Commits' werden immer mindestens eine Zeile enthalten, die den Eltern-'Commit' identifiziert. + + + Następujące 'commits' będą zawsze zawierać przynajmniej jedną linikę identyfikującą rodzica. + + + + + Aber stell Dir vor, Du hast ihn niemals notiert? + + + Wyobraź jednak sobie, że nigdy go nie notowałeś? + + + + + Aber was, wenn wir nur deren Änderungen vergleichen wollen, ohne unsere eigene Arbeit zu beeinflussen? + + + Co jednak zrobić, gdy chcemy porównać zmiany w nich bez wpływu na naszą pracę? + + + + + Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein Verlauf um die Größe des gesamten Projekts wachsen. + + + Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + + + + + Aber wie kannst Du zurück in die Zukunft? + + + Ale jak teraz wrócić znów do przyszłości? + + + + + Aber wo sind die Dateinamen? + + + Gdzie są więc nazwy plików? + + + + + Aber, das überschreibt die vorherige Version. + + + Jednak, przepisze to poprzednią wersję. + + + + + Aber, wenn du an der Vergangenheit manipulierst, sei vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. + + + Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. + + + + + Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der häufigsten Anweisungen umgehen. + + + Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + + + + + 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'. + + + Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + + + + + Abgesehen von gelegentlichen 'Commits' und 'Merges' kannst Du arbeiten, als würde die Versionsverwaltung nicht existieren. + + + Zapominając na chwilę o sporadycznych 'commits' i 'merges', możesz pracować w sposób, jakby kontrola wersji wogóle nie istniała. + + + + + Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls wird Git alle Änderungen 'comitten'. + + + Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + + + + + Aktualisiere das lokale 'Repository' erneut mit 'pull', löse eventuell aufgetretene 'Merge'-Konflikte und versuche es nochmal. + + + Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + + + + + Alles, was man mit dem zentralen 'Repository' tun kann, kannst du auch mit deinem 'Clone' tun. + + + Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + + + + + Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus. + + + Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + + + + + Allgemein, *filter-branch* lässt dich große Bereiche der Chronik mit einer einzigen Anweisung verändern. + + + Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + + + + + Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + + + A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + + + + + Alternativ kannst Du *git commit \--interactive* verwenden, was dann automatisch die ausgewählten Änderungen 'commited' nachdem Du fertig bist. + + + Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + + + + + Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen. + + + Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + + + + + Am schrecklichsten sind fehlende Dateien wegen eines vergessenen *git add*. + + + Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. + + + + + Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte Anweisungen scheuen, bis sie absolut notwendig sind. + + + Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. + + + + + Andere Versionsverwaltungssysteme zwingen Dich ständig Dich mit Verwaltungskram und Bürokratie herumzuschlagen. + + + Inne systemy kontroli wersji ciągle zmuszają cię do ciągłego borykania się z zagadnieniem samej kontroli i związanej z tym biurokracji. + + + + + Andere bestehen auf dem anderen Extrem: mehrere Fenster, ganz ohne Tabs. + + + Inni upierają się przy tym: więcej okien, zupełnie bez tabs. + + + + + Andere denken, daß Zweige vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit losgelassen werden. + + + Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. + + + + + Andere können davon ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und dass er die offizielle Version enthält. + + + Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję + + + + + Andere mögliche Dateitypen sind ausführbare Programmdateien, symbolische Links oder Verzeichnisse. + + + Inne możliwe rodzaje plików to programy, linki symboliczne i katalogi. + + + + + Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen Format einliest um eine Git Chronik von Anfang an zu erstellen. + + + W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. + + + + + Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen das Zerstören der Daten. + + + Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. + + + + + Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige Entwickler war. + + + Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. + + + + + Angenommen du hast Teil I 'commitet' und zur Prüfung eingereicht. + + + Przyjmijmy, że wykonałeś 'commit' pierwszej części i przekazałeś do sprawdzenia. + + + + + Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. + + + Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. + + + + + Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht installiert. + + + Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. + + + + + Angenommen, wenn irgendeine Datei in der Objektdatenbank durch einen Laufwerksfehler zerstört wird, dann wird sein SHA1-Hash-Wert nicht mehr mit seinem Inhalt übereinstimmen und uns sagen, wo das Problem liegt. + + + Przyjmijmy, gdy jakikolwiek plik w objektowej bazie danych ulegnie zniszczeniu poprzez błąd nośnika, to jego SHA1 nie będzie zgadzać i jego zawartością, co od razu wskaże nam problem. + + + + + Angenommen, wir sind bei D: + + + Zalozmym ze jestesmy w D: + + + + + Angenommen, zwei andere Entwickler arbeiten an Deinem Projekt und wir wollen beide im Auge behalten. + + + Przyjmijmy, dwóch innych programistów pracuje nad twoim projektem i chcielibyśmy mieć ich na oku. + + + + + Anhang A: Git's Mängel + + + Załącznik A: Wady GIT + + + + + Anhang B: Diese Anleitung übersetzen + + + Załącznik B: Przetłumaszyć to HOWTO + + + + + Ansonsten: + + + W przeciwnym razie: + + + + + Anstatt 'pull' benutzt Du dann: + + + Zamiast 'pull' skorzystaj z: + + + + + Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + + Zamiast kopiować i wklejać klucze z 'reflog', możesz: + + + + + Anstatt die Details aufzudecken, bieten wir grobe Anweisungen für die jeweiligen Funktionen. + + + Zamiast wchodzić głęboko w szczegóły, oferujemy proste instrukcje do odpowiednich funkcji. + + + + + Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch Ausführen von: + + + Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + + + + + Anstelle des zweiten Befehl kann man auch `git commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. + + + Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. + + + + + Antworte mit "y" für Ja oder "n" für Nein. + + + Odpowiedz po prostu "y" dla tak, albo "n" dla nie. + + + + + Arbeit ist Spiel + + + Praca jest zabawą + + + + + Arbeite wie du willst + + + Pracuj jak chcesz + + + + + Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem nutzt und vermisst du Git? + + + Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? + + + + + Argh! + + + Och! + + + + + Auch auf Deiner Seite ist alles was Du brauchst ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' aufzusetzen. + + + Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + + + + + Auch wenn Git die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + + + Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + + + + + Auch wenn du den ``master'' 'Branch' umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch respektieren. + + + Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + + + + + Auch wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser Faustregel weniger anfällig für falsche Vergleiche. + + + Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + + + + + Auf Debian und Ubuntu, findet man dieses Verzeichnis unter +/usr/share/doc/git-core/contrib+. + + + W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + + + + + Auf Git bauen + + + Budować na git + + + + + Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem Ordner: + + + Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + + + + + Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + + Po stronie odbiorcy zapamiętaj email jako daną i podaj: + + + + + Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, gibt es keinen Sicherheitsüberprüfungen mehr. + + + Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. + + + + + Aufgedeckte Geheimnisse + + + Uchylenie tajemnicy + + + + + Aus diesem Grund plädiere ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man Mercurial bevorzugt. + + + Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial + + + + + Außerdem kannst du sie komprimieren um Speicherplatz zu sparen. + + + Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. + + + + + Außerdem können so alle Übersetzungen in einem 'Repository' existieren. + + + Poza tym wszystkie tłumaszenia mogą być prowadzone w jednym repozytorium. + + + + + Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen hinauswachsen. + + + Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. + + + + + Außerdem kümmert sich Git um die Details wie Autorname und eMail-Adresse, genauso wie um Datum und Uhrzeit und es fordert den Autor zum Beschreiben seiner eigenen Änderungen auf. + + + Pozatym Git martwi się o szczegóły, jak nazwa autora i adres maila, tak samo jak i o datę i godzinę oraz motywuje autora do opisywania swoich zmian. + + + + + Außerdem waren sich die Entwickler der Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen bewusst. + + + Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + + + + + B ist identisch mit A, außer dass einige Dateien gelöscht wurden. + + + B rozni sie od A, jedynie tym, ze usunieto kilka plikow. + + + + + Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine historische Unwegbarkeiten umgehen. + + + Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. + + + + + Beachte, dass alle Änderungen, die nicht 'commitet' sind übernommen werden. + + + Zauwaz, ze wszystkie zmiany, ktorre nie zostaly 'commit', zostaly przejete + + + + + Bearbeite das Makefile und füge das Sprachkürzel zur Variable `TRANSLATIONS` hinzu. + + + Edytuj Makefile i dodaj skrót języka do zmiennej `TRANSLATIONS`. + + + + + Beginne ein paar 'Branches': + + + Wystartuj kilka BRANCHES: + + + + + Bei Softwareprojekten kann das ähnlich sein. + + + W projektach programistycznych moze to wygladac podobnie. + + + + + Bei einem 'pull' aus anderen 'Repositories' müssen wir explizit angeben, welchen 'Branch' wir wollen: + + + Przy 'pull' z innego repozytorium musimy podać z którego branch chcemy korzystać. + + + + + Bei einem Mercurial Projekt gibt es gewöhnlich immer einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt automatisch die Benutzer von Mercurial mit einbezieht. + + + W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + + + + + Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem Ordner voller Dateien. + + + Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. + + + + + Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren und für andere Benutzer veröffentlichen will. + + + Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. + + + + + Bei regelmäßiger Anwendung wirst Du allmählich verstehen, wie die Tricks funktionieren und wie Du die Rezepte auf Deinen Bedarf zuschneiden kannst. + + + Podczas regularnego korzystania sam dojdziesz do tego, jak te sztuczki funkcjpnują i jak możesz dopasować podane instrukcje na swoje własne potrzeby. + + + + + Bei verteilen Systemen ist das viel besser, da wir die benötigt Version lokal 'clonen' können. + + + Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + + + + + Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen gib ein: + + + Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + + + + + Beide laden ihre Änderungen hoch. + + + Obydwoje ładują swoje zmiany na serwer. + + + + + Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin um die alte Version zu erhalten. + + + Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. + + + + + Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + + + Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + + + + + Benutze *git submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten willst. + + + Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + + + + + Beschaffe dir die `hg-git`-Erweiterung mit Git: + + + Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + + + + + Betrachten wir Webbrowser. + + + Przyjżyjmy się takiej przeglądarce internetowej. + + + + + Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. + + + Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom + + + + + Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir uns mit ihm auseinandersetzen um das bisherige zu erklären. + + + Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. + + + + + Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' gewechselt, wie in: + + + Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + + + + + Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. + + + Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* + + + + + Blobs + + + Bloby + + + + + Changelog erstellen + + + Utwożenie historii + + + + + Chronik umschreiben + + + Przepisanie historii + + + + + Computer synchronisieren + + + Synchronizacja komputera + + + + + Computerspiele machten das lange Zeit so, viele von ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + + + Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + + + + + Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in Versionsverwaltungssystemen die einzelne Dateien überwachen. + + + Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + + + + + Da das Abfragen des Dateistatus erheblich schneller ist als das Lesen der Datei, kann Git, wenn Du nur ein paar Dateien verändert hast, seinen Status im Nu aktualisieren. + + + Ponieważ sprawdzenie statusu pliku trwa dużo krócej niż jego całkowite wczytanie, to jeśli dokonałaś zmian tylko na kilku plikach Git zaktualizuje swój stan w mgnieniu oka. + + + + + Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen: + + + Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + + + + + Da diese Anweisung aber auch zu ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option hinzufügen. + + + Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + + + + + Da ich in erster Linie unter Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + + + Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + + + + + Da war auch ein interessanter http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige Engpässe zu vermeiden. + + + Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. + + + + + Dadurch agieren nun alle Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, während deine Dateien unverändert erhalten bleiben. + + + Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. + + + + + Dafür ist es nun zu spät. + + + Na to jest już za późno. + + + + + Damit alles zu unserem Beispiel passt, müssen wir ein wenig tricksen: + + + By wszystko do naszego przykładu pasowało, musimy trochę pokombinować. + + + + + Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. + + + Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. + + + + + Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor der Operation. + + + Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. + + + + + Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen und am Teil II arbeiten, bevor Teil I offiziell freigegeben wurde. + + + Dzieki bezbolesnemu 'branch' i 'merge' mozemy te regoly naciagnac i pracowac nad druga czescia jeszcze zanim pierwsza zostanie oficjalnie zatwierdzona + + + + + Danke! + + + Dziękuję! + + + + + Dann 'branche' zu Teil II: + + + Najpierw zmień 'branch' do części drugiej + + + + + Dann 'commite' dein Projekt und gib ein: + + + Wtedy COMMIT twój projekt i wykomaj: + + + + + Dann auf dem anderen: + + + Potem na następnym: + + + + + Dann erstelle ein Git 'Repository' in deinem Arbeitsverzeichnis: + + + Utwórz GIT REPOSITORY w katalogu roboczym + + + + + Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + + + No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + + + + + Dann gehe wieder ins neue Verzeichnis und gib ein: + + + Następnie przejdź do dowego katalogu i podaj: + + + + + Dann gib ein: + + + Wpisujesz: + + + + + Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. + + + W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. + + + + + Dann mache diese Änderungen und gib ein: + + + Wykonaj je i wpisz: + + + + + Dann mache folgendes auf deinem Server: + + + To po prostu zwób coś takiego na twoim serwerze: + + + + + Dann nutze: + + + Możesz w tym wypadku skorzystać z: + + + + + Dann sage deinen Nutzern: + + + Następnie udostępnij link twoim użytkownikom: + + + + + Dann tippe: + + + Wpisz wtedy: + + + + + Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch Eingabe von: + + + Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + + + + + Dann, wenn du den Fehler behoben hast: + + + Jak juz uporasz sie z bledem: + + + + + Dann: + + + Wtedy: + + + + + Das 'Mergen' mehrerer 'Branches' erzeugt einen 'Commit' mit mindestens zwei Eltern. + + + 'merge' kilku 'branche' wytwarza 'commit' z minimum 2 rodzicami. + + + + + Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen werden; nur diejenigen mit SSH Zugriff können es einsehen. + + + To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. + + + + + Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf Git aufbauen. + + + Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. + + + + + Das Beispiel 'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation über 'Git-agnostic transports' wie z.B. HTTP benötigt. + + + Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. + + + + + Das Geheimnis liegt in der Konfiguration, die beim 'Clonen' erzeugt wurde. + + + Tajemnica leży w konfiguracji, która utworzona zostaje podczas klonowania. + + + + + Das Neueste vom Neuen + + + Najnowsze z nowych + + + + + Das Problem ist, den entsprechenden SHA1-Wert zu finden. + + + Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. + + + + + Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann. + + + To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + + + + + Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese Bezeichnung hatten. + + + Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. + + + + + Das `tailor` Programm konvertiert Bazaar 'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während `bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + + + Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + + + + + Das bedeutet auch, dass sich der SHA1-Hash-Wert des offiziellen HEAD von dem des manipulierten 'Repository' unterscheidet. + + + Oznacza to również, że klusz oficjalnego HEAD różni się od klucza HEAD manipulowanego rapozytorium. + + + + + Das dritte ist ein 'Commit'-Objekt. + + + Ten trzeci to objekt 'commit' + + + + + Das erfordert aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch aufrufen, wenn sie eine Datei bearbeiten. + + + Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + + + + + Das funktioniert wahrscheinlich ganz gut, wenn auch unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen Dateien braucht. + + + Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + + + + + Das führende `blob 6` ist lediglich ein Vermerk, der sich aus dem Objekttyp und seiner Länge in Bytes zusammensetzt; er vereinfacht die interne Verwaltung. + + + Początkowe `blob 6`, to jedynie adnotacja, która określa jedynie rodzaj objektu i jego wieklość w bajtach, pozwala to na uproszczenie zarządzania wewnętrznego. + + + + + Das geht wesentlich schneller, aber der resultierende Klon hat nur eingeschränkte Funktionalität. + + + Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + + + + + Das gilt stellvertretenden für andere Anweisungen. + + + Reprezentuje to również wszystkie inne polecenia. + + + + + Das hast Du vielleicht noch nicht bemerkt, denn Git versteckt diese: Du musst speziell danach fragen. + + + Może jeszcze tego nie zauważyłeś, ponieważ Git je ukrywa: musisz się o nie specjalnie pytać: + + + + + Das heißt auch, dass sie jeden SHA1-Hash-Wert der 'Tree'-Objekte ändern müssen, welche dieses Objekt referenzieren und demzufolge alle SHA1-Hash-Werte der 'Commit'-Objekte, welche diese 'Tree'-Objekte beinhalten, zusätzlich zu allen Abkömmlingen dieses 'Commits'. + + + To znaczy róniweż, że musiałabyś zmienić każdy klucz objektu 'tree', które ją referują oraz w wyniku tego wszystkie klucze 'commits' zawierające obejkty 'tree' dodatkowo do pochodnych tych 'commits'. + + + + + Das heißt, bis Du sie brauchst. + + + To znaczy - do czasu aż będzie ci potrzebna. + + + + + Das heißt, nachdem Du ein 'Bundle' gesendet hast, gib ein: + + + To znaczy, po wysłaniu 'bundle', podaj: + + + + + Das ist Deine eigene Kopie der Versionsgeschichte, damit kannst Du so lange offline bleiben, bis Du mit anderen kommunizieren willst. + + + Jest to twoja własna kopie całej historii, z którą mogłabyś pracować offline, aż do momentu gdy zechcesz wymienić dane z innymi. + + + + + Das ist der erste 'Commit' gewesen, deshalb gibt es keine Eltern-'Commits'. + + + To jest pierwszy 'commit', przez to nie posiada rodziców 'commit'. + + + + + Das ist ein großartiger Ansatz, um an Git heranzugehen: Anfänger können seine inneren Mechanismen ignorieren und Git als ein Ding ansehen, das mit seinen erstaunlichen Fähigkeiten Freunde verzückt und Gegner zur Weißglut bringt. + + + Jest to wspaniałe podejście, by zacząć pracę z Git: Amatorzy mogą zognorować swoje wewnętrzene mechanizmy i ujrzeć Git jako rzecz, która urzeka przyjaciół swoimi niezwykłymi możliwościami, a przeciwników doprowadza do białej gorączki. + + + + + Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. + + + To zadanie dla *git rebase*, jak wyżej opisane. + + + + + Das ist eine primitive und mühselige Form der Versionsverwaltung. + + + Jest to prymitywna i pracochłonna forma kontroli wersji. + + + + + Das ist unüblich. + + + Znajduje to dość szerokie zastosowanie + + + + + Das ist wie bei den Spielen der alten Schule, die nur Speicherplatz für eine Sicherung hatten: sicherlich konntest du speichern, aber du konntest nie zu einem älteren Stand zurück. + + + To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. + + + + + Das kannst Du kontrollieren, durch die Eingabe von: + + + Możesz to skontrolować wpisując: + + + + + Das kannst du mit folgendem Befehl erstellen: + + + Możesz go utwoszyć korzystając z polecenia: + + + + + Das neue Verzeichnis enthält die Dateien mit deinen Änderungen. + + + Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami + + + + + Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche Versionsgeschichte die beiden Versionen automatisch synchron bleiben. + + + Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. + + + + + Das obige erklärt, warum einige von unseren früheren 'push' und 'pull' Beispielen keine Argumente hatten. + + + To wyjaśnia dlaczego nasze poprzednie przykłady z 'push' i 'pull' nie posiadały argumentów. + + + + + Das setzt voraus, dass sie einen SSH-Zugang haben. + + + Wymaga to od nich posiadanie klucza SSH do twojego komputera. + + + + + Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) und stellt den vorherigen Stand wieder her. + + + Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. + + + + + Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine Authentifizierung, also kann jeder das Projekt abrufen. + + + Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. + + + + + Das verhindert, dass 'Branches' vom entfernten 'Repository' Deine lokalen 'Branches' stören und es macht Git einfacher für Anfänger. + + + To zapobiega temu, że branches z oddalonego repozytorium nie przeszkadza twoim lokalnym branches i czyni to Git łatwiejszym dla początkujących. + + + + + Das war eine Schande, denn vielleicht war deine vorherige Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du später gerne noch einmal zurückkehren möchtest. + + + To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. + + + + + Das wendet den eingegangenen 'Patch' an und erzeugt einen 'Commit', inklusive der Informationen wie z.B. den Autor. + + + Patch zostanie wprowadzony i utworzy commit, włącznie z informacjami jak naprzykład o autorze. + + + + + Das wirft die Frage auf: Welchen 'Commit' referenziert `HEAD~10` tatsächlich? + + + To nasuwa pytanie; ktoremu 'commit' referuje HEAD++10 wlasciwie? + + + + + Dass, wenn der Chef ins Büro spaziert, während du das Spiel spielst, du es schnell verstecken kannst? + + + By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + + + + + Dateien herunterladen + + + Zładowanie danych + + + + + Dateien ohne Bezug + + + Pliki z brakiem odniesienia + + + + + Dateien sind können schreibgeschützt sein, bis Du einem zentralen Server mitteilst, welche Dateien Du gerne bearbeiten möchtest. + + + Pliki mogą być zapezpieczone przed zapisem, aż do momentu gdy uda ci się poinformować centralny serwer o tym, że chciałabyś nad nimi popracować. + + + + + Dateihistorie + + + Historia pliku + + + + + Dein Arbeitsverzeichnis erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu editieren. + + + Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować + + + + + Deine Arbeit kommt zum Stillstand, wenn das Netzwerk oder der zentrale Server weg sind. + + + Gdy tylko zniknie sieć lub centralny serwer praca staje. + + + + + Deine Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so weiter. + + + Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi i tak dalej. + + + + + Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. + + + Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali + + + + + Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je komplizierter der Kontextwechsel ist, desto größer ist der Verlust. + + + Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty + + + + + Der Absender erstellt ein 'Bundle': + + + Nadawca tworzy 'bundle': + + + + + Der Dateiname ist irrelevant: nur der Dateiinhalt wird zum Erstellen des 'Blob'-Objekt verwendet. + + + Nazwa pliku nie ma znaczenia, jedynie jego zawartość służy do utworzenia objektu 'blob'. + + + + + Der Empfänger kann das sogar mit einem leeren 'Repository' tun. + + + Odbiorca może to zrobić z pustym repozytorium. + + + + + Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten 'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. + + + Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. + + + + + Der Index ist ein temporärer Bereitstellungsraum. + + + Index jest tymczasowym rusztowaniem + + + + + Der Index: Git's Bereitstellungsraum + + + Index: ruszkowanie gita + + + + + Der Inhalt von +.git/objects+ bleibt der selbe, ganz egal wieviele Dateien Du hinzufügst. + + + Zawartość +.git/objects+ nie zmieni się, niezależnie ile kopii dodałaś. + + + + + Der SHA1-Hash-Wert wird während eines 'Commit' aktualisiert, genauso bei vielen anderen Anweisungen. + + + Klucz SHA1 zostaje aktualizowany podczas wykonania 'commit', tak samo jak i przy wielu innych poleceniach. + + + + + Der Unterschied zwischen A und B sind die gelöschten Dateien. + + + Roznica miedzy A i B, to skasowane pliki. + + + + + Der Verlauf der Firmware interessiert den Anwender nicht und Änderungen lassen sich schlecht komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' unnötig auf. + + + Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + + + + + Der ``master'' 'Branch' ist ein nützlicher Brauch. + + + MASTER BRANCH jest bardzo użytecznym + + + + + Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den Rest. + + + Teraz 'master branch' zawiera cześć 1 a 'branch' czesc2 posiada resztę. + + + + + Der aktuelle HEAD wird in der Datei +.git/HEAD+ gehalten, welche den SHA1-Hash-Wert eines 'Commit'-Objekts enthält. + + + Aktualny HEAD przetrzymywany jest w pliku +.git/HEAD+, która posiada klucz SHA1 ostatniego 'commit'. + + + + + Der angegebene Pfad wird stillschweigend überschrieben. + + + Podana ścieżka zostanie bez pytania zastąpiona. + + + + + Der erste Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten Datei im Index. + + + Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. + + + + + Der erster Klon + + + Pierwszy klon + + + + + Der ganze Beitrag ist eine faszinierende archäologische Seite für Git Historiker. + + + Cały post jest archeologicznie fascynującą stroną dla historyków zajmujących sie Gitem. + + + + + Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten zukünftigen Operationen dann schnell und offline erfolgen. + + + Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. + + + + + Der zweite Schritt speichert dauerhaft den Schnappschuß, der sich nun im Index befindet. + + + Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. + + + + + Der zweite Teil eines Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und getestet wurde. + + + Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. + + + + + Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch Dateinamen mit ungewöhnlichen Zeichen. + + + Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików + + + + + Die *pull* Anweisung holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese dann mit dem aktuellen 'Branch'. + + + Polecenie *pull* ładuje ('fetch') 'commits' i je zespala ('merge'), wtedy z aktualnym 'branch'. + + + + + Die +branch.master.merge+ Option definiert den Standard-Remote-'Branch' bei einem *git pull*. + + + Opcja +branch.master.merge+ definuje standardowy Remote-'Branch' dla *git pull*. + + + + + Die +remote.origin.url+ Option kontrolliert die Quell-URL; ``origin'' ist der Spitzname, der dem Quell-'Repository' gegeben wurde. + + + Opcja +remote.origin.url+ kontroluje źródłowe URL; ``origin'' to alias, nadany źródłowemu repozytorium. + + + + + Die Anweisung + + + Polecenie: + + + + + Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu schreiben und außerdem um 'Repositories' in Klartext zu übertragen. + + + Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. + + + + + Die Chef-Taste + + + Przycisk SZEF + + + + + Die Datei zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden könnte. + + + Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. + + + + + Die Entwicklung findet in den 'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis auskommen. + + + Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + + + + + Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' umwandeln, indem man in ein leeres 'Repository' 'pushed'. + + + To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT + + + + + Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. + + + Termin opublikowania pewnej wlasciwosci zbliza sie. + + + + + Die Hilfeseiten schlagen vor 'Tags' zu benutzen um dieses Problem zu lösen. + + + Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. + + + + + Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da andere Operationen dafür unglaublich effizient sind. + + + Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. + + + + + Die Objektdatenbank + + + Obiektowa baza danych + + + + + Die Objektdatenbank ist einfach aber trotzdem elegant und sie ist die Quelle von Git's Macht. + + + Obiektowa baza danych jest prosta, mimo to jesnak elegancka i jest źródłem siły Gita. + + + + + Die Objektdatenbank ist immun gegen unerwartete Unterbrechungen wie zum Beispiel einen Stromausfall. + + + Objektowa baza dynch jest osporna na nieoczekiwane przerwy, jak na przykład przerwanie dostawy prądu. + + + + + Die Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer Kopie der ganzen Datei. + + + Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + + + + + Die SHA1-Hash-Wert Prüfung mit 'cat-file' ist etwas kniffliger, da dessen Ausgabe mehr als die rohe unkomprimierte Objektdatei enthält. + + + Sprawdzanie za pomocą 'cat-file' jest troszeczkę kłopotliwe, bo jego output zawiera więcej niż tylko nieskomprymowany objekt pliku. + + + + + Die Summe der Bemühungen verschlimmerte die Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu verbrauchen um noch längere Wartezeiten zu verhindern. + + + Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. + + + + + Die Textdatei ist wiederhergestellt. + + + Poprzedni plik jest przywrocony do stanu pierwotnego + + + + + Die Ursachen für die großen Unterschiede sollten ermittelt werden. + + + Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. + + + + + Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom anderen Versionsverwaltungssystem ab. + + + Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. + + + + + Die aktuelle Implementierung von Git, weniger sein Design, ist verantwortlich für diesen Pferdefuß. + + + To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. + + + + + Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + + Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + + + + + Die allererste Git Hosting Seite. + + + Pierwsza powstała strona hostingowa dla Git. + + + + + Die beschriebene Situation ist eine erwähnenswerte Ausnahme. + + + Ta przywołana sytuacja jest wyjątkiem wartym wspomnienia. + + + + + Die einfachsten Befehle werden bis zum Schneckentempo verlangsamt, wenn die Anzahl der Anwender steigt. + + + Przy wzroście liczby użytkowników nawet najprostsze polecenia stają się wolne jak ślimak. + + + + + Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. + + + Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. + + + + + Die letztere kann verwendet werden um SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich gestutzt wurde. + + + Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + + + + + Die meisten Leute verbinden mit Kryptographie die Geheimhaltung von Informationen, aber ein genau so wichtiges Ziel ist es Informationen zu sichern. + + + Z kryptografią przez większość ludzi łączona jest poufność informacji, jednak równie ważnym jej celem jest zabezpieczenie danych. + + + + + Die meisten Systeme wählen automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + + + Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + + + + + Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, werden verteilte Systeme genannt und können als eine Verallgemeinerung der zentralisierten Systeme verstanden werden. + + + Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. + + + + + Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen Logdateien. + + + Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. + + + + + Die resultierenden Dateien können an *git-send-email* übergeben werden oder von Hand verschickt werden. + + + Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. + + + + + Die richtige Anwendung von kryptographischen Hash-Funktionen kann einen versehentlichen oder bösartigen Datenverlust verhindern. + + + Właściwe zastosowanie kraptograficznych funkcji hashujących (funkcji skrótu) może uchronić przed nieumyślnym lub celowym zniszczeniem danych. + + + + + Die vergangenen 'Commits' wissen nichts von der Zukunft. + + + Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + + + + + Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des 'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. + + + Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu + + + + + Die zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird oder die ganze Zeile überarbeiten. + + + Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + + + + + Die Änderungen bleiben im .git Unterverzeichnis gespeichert und können wieder hergestellt werden, wenn der entsprechende SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" oben). + + + Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). + + + + + Die, welche dir am besten gefällt. + + + To, ktore najbardziej tobie odpowiada. + + + + + Dies holt lediglich die Chroniken. + + + Polecenie to załaduje jedynie historię + + + + + Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten Elternteil während eines 'Merge'; häufig bist du nur von Änderungen betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen die von anderen 'Branches' eingebracht wurden. + + + Należy wspomnieć, że aktualny 'branch' staje sie pierwszym rodzicem podczas 'merge'; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym 'branch' bardziej, niz ze zmianami z innych 'branch'. + + + + + Dies verleiht ihnen eine universelle Anziehungskraft. + + + Dodaje im to uniwersalnej mocy przyciągania. + + + + + Diese Anleitung ist unter der http://www.gnu.org/licenses/gpl-3.0.html[GNU General Public License Version 3] veröffentlicht. + + + Ten poradnik publikowany jest na bazie licencji http://www.gnu.org/licenses/gpl-3.0.html[GNU General Public License Version 3]. + + + + + Diese Datei ist ein 'Tree'-Objekt: eine Liste von Datensätzen, bestehend aus dem Dateityp, dem Dateinamen und einem SHA1-Hash-Wert. + + + Nasz plik to takzwany objekt 'tree': lista wyrażeń, na którą składają się rodzaj pliku, jego nazwa i jego klucz SHA1. + + + + + Diese Liste zeigt die 'Branches' und den HEAD des entfernten 'Repository', welche auch in regulären Git Anweisungen verwendet werden können. + + + Lista ta ukazje BRANCHES i HEAD odległego repozytorium, które mogą być również stosowane w zwykłych poleceniach Git. + + + + + Diese Operationen sind schnell und lokal, also warum nicht damit experimentieren um die beste Kombination für sich selbst zu finden? + + + Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. + + + + + Diese Option gilt nur für das 'Repository', von dem als erstes 'gecloned' wurde, was in der Option +branch.master.remote+ hinterlegt ist. + + + Ta opcja jest ważna jedynie dla repozytorium, z którego dokonało się pierwsze klonowanie, co zapisane jest w opcji +branch.master.remote+. + + + + + Diese Spiele versteckten die Details vor dem Spieler und präsentierten eine bequeme Oberfläche um verschiedene Versionen des Ordners zu verwalten. + + + Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + + + + + Diese Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. + + + Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. + + + + + Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. + + + Ta inna rzeczywistość, to tzw. branch <<branch, zajmiemy się tym w późniejszym czasie>>. + + + + + Diese einfache Beobachtung ist überraschend nützlich: suche nach 'hash chains'. + + + Ta prosta obserwacja okazała się niesamowicie pożyteczna: jeśli cię to zainteresowało poszukaj informacji na temat 'hash chains'. + + + + + Dieser Zyklus wiederholt sich ein paar Mal bevor du zum 'Pushen' in den zentralen Zweig bereit bist. + + + Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + + + + + Dieser http://lkml.org/lkml/2005/4/6/121['Linux Kernel Mailing List' Beitrag] beschreibt die Kette von Ereignissen, die zu Git geführt haben. + + + Ten http://lkml.org/lkml/2005/4/6/121['Linux Kernel Mailing List' post] opisuje cały łańcuch zdarzeń, które inicjowały powstanie Git. + + + + + Dieser spezielle 'Commit' repräsentiert einen leeren 'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git 'Repositories'. + + + Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + + + + + Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange Geschichte existiert, aber auf Dauer wird es sich lohnen. + + + Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. + + + + + Dieses mal kann ich Dir nicht sagen, wie die zwei neuen Dateien heißen, weil es zum Teil vom gewählten Dateiname abhängt, den Du ausgesucht hast. + + + Tym razem nie jestem w stanie powiedzieć, jak nazywają sie te dwa nowe pliki, ponieważ częściowo są zależne od nazwy jaką nadałeś plikom. + + + + + Doch anstelle ein paar Knöpfe zu drücken, machst du 'create', 'check out', 'merge' und 'delete' von temporären 'Branches'. + + + Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. + + + + + Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie auch die ganze Geschichte bis zum angegebenen Punkt mit sich. + + + Jednak 'clone' niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. + + + + + Du arbeitest also an Teil II und 'commitest' deine Änderungen regelmäßig. + + + Pracujesz w cześci 2 i regularnie wykonujesz 'commit'. + + + + + Du arbeitest an einem aktiven Projekt. + + + Pracujesz nad aktywnym projektem. + + + + + Du bekommst einen Haufen Dateien eines bestimmten Sicherungsstands. + + + Otrzymasz całą masę plików konkretnego stanu + + + + + Du denkst, du kannst das besser? + + + Uważasz, że potrafisz to lepiej + + + + + Du hast auch noch andere Optionen, z.B. den Aufschub der Entscheidung; drücke "?" + + + Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" + + + + + Du hast die absolute Kontrolle über das Schicksal Deiner Dateien, denn Git kann jederzeit einfach einen gesicherten Stand aus `.git` wiederherstellen. + + + Posiadasz absolutną kontrolę nad losem twoich danych, ponieważ Git potrafi dla ciebie w każdej chwili odtworzyć zapamiętany poprzednio stan z właśnie podkatalogu .git. + + + + + Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch ging. + + + Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. + + + + + Du kannst Dir alle SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten 'Commit' findest. + + + Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' + + + + + Du kannst auch 'Commits' aufteilen. + + + Możesz również podzielć 'commits'. + + + + + Du kannst auch eine Gruppe von 'Commits' angeben: + + + Możesz podać grupę 'commits' + + + + + Du kannst auch nach dem 5. letzten 'Commit' fragen: + + + Możesz również udać się do 5 z ostatnich COMMIT: + + + + + Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst: + + + Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + + + + + Du kannst den Zustand des Ordners sichern so oft du willst und du kannst später jeden Sicherungspunkt wieder herstellen. + + + Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. + + + + + Du kannst die Logs nach dem entsprechenden SHA1 Hashwert durchsuchen, aber es ist viel einfacher folgendes einzugeben: + + + Możesz przeszukać logi za odpowiednim kluczem SHA1, ale dużo prościej jest podać: + + + + + Du kannst die Nummer für den ersten Elternteil weglassen. + + + Mozesz pominac numer pierwszego rodzica + + + + + Du kannst diese Notation mit anderen Typen kombinieren. + + + Mozesz łączyć ta notacje takze z innymi + + + + + Du kannst diese Änderungen sogar 'commiten'. + + + Mozesz te zmiany nawet 'commit'. + + + + + Du kannst einen 'Patch' Entwicklern schicken, ganz egal, was für ein Versionsverwaltungssystem sie benutzen. + + + Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. + + + + + Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen referenzieren. + + + Mozesz tez jakiegos rodzica referowac go daszkiem. + + + + + Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. + + + Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. + + + + + Du kannst noch viel mehr machen: die Hilfe erklärt, wie man 'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu beschleunigen. + + + Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + + + + + Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. + + + Możesz pracować nad dwoma funkcjami jednocześnie + + + + + Du kannst sogar 'Branches' in einem 'Repository' umorganisieren. + + + Możesz nawet przeorganizować 'branches' w repozytorium. + + + + + Du kannst sogar die frisch gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + + Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + + + + + Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + + + Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak tylko zechcesz, niezaleznie od tego, w kazdej z tych wersji mozesz wykonać 'commit' + + + + + 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. + + + Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. + + + + + Du magst Kopieren und Einfügen von Hashes nicht? + + + Nie lubisz kopiować i wklejać hash-ów? + + + + + Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. + + + Może pytasz się, czy BRANCHES są warte tego zachodu. + + + + + Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + + Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + + + + + Du merkst, dass du vergessen hast eine Datei hinzuzufügen? + + + Zauważasu, że zapomniałeś dodać jakiegoś pliku? + + + + + Du solltes etwas sehen wie: + + + Powinieneś zobaczyć coś jak: + + + + + Du solltest nun +.git/objects/49/993fe130c4b3bf24857a15d7969c396b7bc187+ finden, was dem SHA1-Hash-Wert seines Inhalts entspricht: + + + Powinieneś znaleźć +.git/objects/49/993fe130c4b3bf24857a15d7969c396b7bc187+, co odpowiada kluczowi SHA1 jego zawartości: + + + + + Du solltest nun drei Objekte sehen. + + + Powinieneś ujrzeć teraz 3 objekty. + + + + + Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + + Akurat gdy strasznie zajety biezacymi zadaniami projektu, otrzymujesz polecenie zajecie sie bledem w 'commit' 1b6d... + + + + + Du willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und hinter den offiziellen Änderungen sehen. + + + Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + + + + + Du willst deine laufenden Arbeiten für dich behalten und andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert hast. + + + Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. + + + + + Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? + + + Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? + + + + + Du willst zahlreiche, vor Manipulation geschützte, redundante Datensicherungen an unterschiedlichen Orten? + + + Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach + + + + + Du wirst Dich fragen, was mit identischen Dateien ist. + + + Pytasz się, a co w przypadku identycznych plików? + + + + + Du wirst folgendes sehen: +.git/objects/aa/823728ea7d592acc69b36875a482cdf3fd5c8d+. + + + Zobaczysz coś takiego: +.git/objects/aa/823728ea7d592acc69b36875a482cdf3fd5c8d+. + + + + + Dumme Fehler verschmutzen meine 'Repositories'. + + + Głupie błędy zaśmiecają moje repozytoria. + + + + + Durch Bilden von SHA1-Hash-Werten aus den SHA1-Hash-Werten anderer Objekte, erreichen wir Integrität auf allen Ebenen. + + + Poprzez tworzenie kluczy SHA1 z kluczy SHA1 innych objektów, osiągniemy integralność danych na wszystkich poziomach. + + + + + Durch cleveres verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine Versionsgeschichte mit dem original 'Repository' teilt: + + + Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + + + + + Durch das Herauspicken der Rosinen kannst du einen 'Branch' konstruieren, der nur endgültigen Code enthält und zusammengehörige 'Commits' gruppiert hat. + + + Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + + + + + Durch die Verwendung von Identitätsnummern als Dateiname, zusammen mit ein paar Sperrdateien und Zeitstempeltricks, macht Git aus einem einfachen Dateisystem eine effiziente und robuste Datenbank. + + + Poprzez wykorzystanie tych numerów identyfikacyjnych jako nazwy plików razem z kilkoma innymi trikami związanymi z plikami blokującymi i znacznikami czasu, Git zamienia twój prosty system plików na produktywną i solidną bazę danych. + + + + + Dustin Sallings, Alberto Bertogli, James Cameron, Douglas Livingstone, Michael Budde, Richard Albury, Tarmigan, Derek Mahar, Frode Aannevik, Keith Rarick, Andy Somerville, Ralf Recker, Øyvind A. Holm, Miklos Vajna, Sébastien Hinderer, Thomas Miedema, Joe Malin, und Tyler Breisacher haben Korrekturen und Verbesserungen beigesteuert. + + + Dustin Sallings, Alberto Bertogli, James Cameron, Douglas Livingstone, Michael Budde, Richard Albury, Tarmigan, Derek Mahar, Frode Aannevik, Keith Rarick, Andy Somerville, Ralf Recker, Øyvind A. Holm, Miklos Vajna, Sébastien Hinderer, Thomas Miedema, Joe Malin, i Tyler Breisacher przyczynilli się do poprawek i korektur. + + + + + EOT + + + EOT + + + + + Ebenso grundlegende Funktionen wie das Durchsuchen der Chronik oder das 'comitten' einer Änderung. + + + Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. + + + + + Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu überschreiben, wenn das einen Datenverlust zur Folge hat. + + + Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. + + + + + Ebenso, wenn Git Dateien vergessen soll: + + + To samo, gdy chcesz by GIT zapomnial o plikach: + + + + + Eigenarten der Anwendung + + + Charakterystyka zastosowania + + + + + Ein 'Commit' kann mehrere Eltern haben, welchem folgen wir also? + + + 'commit' moze posiadac wiecej rodzicow, za którym właściwie iść? + + + + + Ein 'Commit' ohne die *-a* Option führt nur den zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + + + Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + + + + + Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem zentralisierten Versionsverwaltungssystem: Das Zuhause deines Projekts. + + + BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu + + + + + Ein Auto, das repariert werden soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. + + + Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. + + + + + Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + + + Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + + + + + Ein Liste aller 'Branches' bekommst du mit: + + + Listę wszystkich BRANCHES otrzymasz poprzez: + + + + + Ein Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die Konstruktion fortgesetzt werden kann. + + + Prototyp musi czekac na wyprodukowanie części zanim mozna podjac dalsza konstrukcje. + + + + + Ein SHA1-Hash-Wert selbst ist eine Zeichenfolge von Bytes. + + + sam kluch SHA1 też jest łańcuchem znaków w formie Bajtów. + + + + + Ein Versionsverwaltungssystem zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die periodisch von einer Webcam gemacht werden. + + + Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + + + + + Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche die Form einer großen Binärdatei annimmt. + + + Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. + + + + + Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. + + + Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. + + + + + Ein beliebter Vertreter ist +workdir/git-new-workdir+. + + + Ulubionym przedstawicielem jest +workdir/git-new-workdir+. + + + + + Ein dummer Aberglaube + + + Głupi przesąd + + + + + Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden um die am häufigsten benutzten Anweisungen zu verkürzen: + + + Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + + + + + Ein einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und so weiter. + + + Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. + + + + + Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die so ein System bietet. + + + Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. + + + + + Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, bezogen auf 'Commits', hält sich Git nicht an diese Konvention. + + + Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. + + + + + Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein Arbeitsverzeichnis hat. + + + Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego + + + + + Ein negativer Rückgabewert beendet die 'bisect'-Operation sofort. + + + Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + + + + + Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. + + + O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. + + + + + Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. + + + powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. + + + + + Ein unmittelbarer Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist keine Kommunikation mit dem Hauptserver notwendig. + + + Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + + + + + Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. + + + Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. + + + + + Ein zuverlässiges, vielseitiges Mehrzweck-Versionsverwaltungswerkzeug, dessen außergewöhnliche Flexibilität es schwierig zu erlernen macht, ganz zu schweigen davon, es zu meistern. + + + Niezawodne, wielostronne narzędzie do kontroli wersji, jego niezwykła elastyczność sprawia trudności w poznaniu, nie wspominając o samym użyciu. + + + + + Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. + + + Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. + + + + + Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach verändert werden kann. + + + Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. + + + + + Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + + Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + + + + + Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen jedes nur die in Beziehung stehenden Dateien enthält. + + + Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. + + + + + Eine Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + + + Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + + + + + Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git 'Repositories' arbeiten. + + + Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git + + + + + Eine gute erste Annäherung ist, dass alles was eine zentralisierte Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. + + + Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. + + + + + Eine unzuverlässige Internetverbindung stört mit Git nicht sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig wie ein lokale Festplatte sein sollte. + + + Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. + + + + + Einen Klon zu erstellen ist aufwendiger als in anderen Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + + + Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + + + + + Einen SHA1-Hash-Wert kann man sich als eindeutige 160-Bit Identitätsnummer für jegliche Zeichenkette vorstellen, welche Dir in Deinem ganzen Leben begegnen wird. + + + Klucz hashujący SHA1 mogłabyś wyobrazić sobie jako składający się ze 160 bitów numer identyfikacyjny jednoznacznie opisujący dowolny łańcuch znaków, i który spotkasz w sowim życiu jeden jedyny raz. + + + + + Eines Tages brauchst du vielleicht dringend einen Schraubendreher, dann bist du froh mehr als nur einen einfachen Flaschenöffner bei dir zu haben. + + + Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + + + + + Einfach: + + + Proste; + + + + + Einfacher geht das mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + + Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + + + + + Einfaches Veröffentlichen + + + Uproszczone publikowanie + + + + + Einige Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für unterschiedliche Webseiten. + + + Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron + + + + + Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik ein, mit allen Fehlern, Nachteilen und Mängeln. + + + Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. + + + + + Einige Git Anweisungen lassen Dich ihn manipulieren. + + + Niektóre komendy git pozwolą ci nim manipulować. + + + + + Einige Projekte erfordern, dass dein Code überprüft werden muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + + + Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, nim bedziesz mogl zaczac z następną część. + + + + + Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf irgendeine Weise für die Bearbeitung zu kennzeichnen. + + + Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. + + + + + Einige lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. + + + Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. + + + + + Einige plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für seine Arbeit einen neuen 'Branch' anzulegen. + + + Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + + + + + Einleitung + + + Wprowadzenie + + + + + Entfernte 'Branches' + + + Oddalone 'Branches' + + + + + Entschuldigung, wir sind umgezogen. + + + Przepraszamy, przeprowadziliśmy się + + + + + Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten offiziellen Änderungen dort hin. + + + Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. + + + + + Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten. + + + Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + + + + + Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' Anweisungen. + + + Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. + + + + + Er muss sicher sein, aber nicht privat. + + + Musi być bezpieczne, jednak nie musi być prywatne + + + + + Erinnere Dich an das erste Kapitel: + + + Przypomnij sobie pierwszy rozdział: + + + + + Erinnere Dich, dass ein 'Pull' hinter den Kulissen einfach ein *fetch* gefolgt von einem *merge* ist. + + + Przypomnij sobie, że 'pull' za kulisami to to samo co 'fetch' z następującym za nim *merge*. + + + + + Erste Schritte + + + Pierwsze kroki + + + + + Erstelle ein Git 'Repository' für deine Dateien: + + + Utwóż GIT REPOSITORY dla twoich danych + + + + + Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen Rechner. + + + Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. + + + + + Erstelle eine Dummy-Datei um dieses Problem zu umgehen. + + + Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + + + + + Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + + + Es enthält nur Dateien, die normalerweise im '.git' Unterverzeichnis versteckt sind. + + + Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. + + + + + Es gibt drei Arten von Objekten die uns betreffen: 'Blob'-, 'Tree'-, und 'Commit'-Objekte. + + + Istnieją trzy rodzaje objektów, które nas interesują: 'blob', 'tree'-, i 'commit'. + + + + + Es gibt geringfügige Unterschiede bei mbox-basierten eMail Anwendungen, aber wenn Du eine davon benutzt, gehörst Du vermutlich zu der Gruppe Personen, die damit einfach umgehen können ohne Anleitungen zu lesen.! + + + Występują minimalne różnice między aplikacjami emailowymi bazującymi na mbox, ale jeśli korzystasz z takiej, należysz do grupy ludzi która za pewne umią się z nimi obchodzić bez czytania instrukcji! + + + + + Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + + + O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + + + + + Es gibt mindestens 3 Lösungen. + + + Istnieja przynajmniej 3 rozwiazania. + + + + + Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der ganze Verlauf geklont wird. + + + Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + + + + + Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das Ergebnis ist das selbe. + + + Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. + + + + + Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit 'tarball' Archiven oder *rsync* zu arbeiten. + + + Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. + + + + + Es ist als ob der Hauptserver gespiegelt wird. + + + Wygląda to jak klonowanie serwera. + + + + + Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel. + + + Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. + + + + + Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu erweitern. + + + Dość łatwo zastosować tą samą sztuczkę na dowolną ilość części. + + + + + Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen wäre. + + + Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 'commit' wcześniej utworzyć 'branch'- + + + + + Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu sehen was auf dem anderen Kanal los ist. + + + Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. + + + + + Es können noch weitaus kompliziertere Situationen entstehen. + + + Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. + + + + + Es liegt an dir diese weise zu nutzen. + + + Stosowanie tej możliwości zależy od ciebie + + + + + Es sei denn die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, oder die `--bare` Option wird übergeben. + + + Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + + + + + Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. + + + Wyglada jakbysmy ten plik zmienili i wykonali 'commit' + + + + + Es sieht so aus als müsste man nur ein paar Kommandozeilenskripte zusammenmixen, einen Schuß C-Code hinzufügen und innerhalb ein paar Stunden ist man fertig: eine Mischung von grundlegenden Dateisystemoperationen und SHA1-Hash-Berechnungen, garniert mit Sperrdateien und Synchronisation für Stabilität. + + + Wygląda to jak połączenie kilku skryptów, troszeczkę kodu C i w przeciągu kilku godzin jesteśmy gotowi: zmiksowanie podstawowych operacji na systemie danych obliczenia SHA1, przyprawione danymi blokującymy i synchronizacją dla stabilności. + + + + + Es stellt sich heraus, dass diese Notation immer den ersten Elternteil wählt. + + + Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. + + + + + Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. + + + Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. + + + + + Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, erstelle temporären Code und so weiter und 'commite' deine Änderungen oft. + + + Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. + + + + + Fahren wir fort mit der Annahme, Du hast eine Datei ``rose'' genannt. + + + Pójdźmy dalej, zakładając, że jedną z tych danych nazwałeś ``rose''. + + + + + Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können Verwirrungen entstehen. + + + Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + + + + + Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen: + + + Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + + + + + Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes: + + + Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + + + + + Filtere sie durch http://www.zlib.net/zpipe.c[zpipe -d], oder gib ein: + + + Przefiltruj je najpierw przez http://www.zlib.net/zpipe.c[zpipe -d], albo wpisz: + + + + + Finde heraus was du seit dem letzten 'Commit' getan hast: + + + Znajdz co zrobiles od ostatniego COMMIT: + + + + + Firewalls könnten uns stören und was, wenn wir gar keine Berechtigung für eine Serverkonsole haben. + + + Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + + + + + Folgen wir dem Pfad der differierenden SHA1-Hash-Werte, finden wir die verstümmelte Datei, wie auch den 'Commit', in dem sie erstmals auftauchte. + + + Wystrarczy teraz prześledzić ścieżkę różniących się kluczy SHA1, odnajeźć okaleczony plik, jak i 'commit' w którym po raz pierwszy wystąpił. + + + + + Folglich ist standardmäßig das 'Pushen' per Git-Protokoll verboten. + + + Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + + + + + Fortgeschrittenes Rückgängig machen/Wiederherstellen + + + Zaawansowane usuwanie/przywracanie + + + + + François Marier unterhält das Debian Packet, das ursprünglich von Daniel Baumann erstellt wurde. + + + François Marier jest mentorem pakietu Debiana, który uprzednio utworzony został przez Daniela Baumann. + + + + + Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. + + + Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. + + + + + Führe *git add* aus um sie hinzuzufügen und dann die vorhergehende Anweisung. + + + Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + + + + + Führe die Anweisungen des anderen Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale 'Repository' zu übertragen. + + + Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + + + + + Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst leeren Git 'Repository'. + + + Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY + + + + + Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und "A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen Bereich. + + + Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. + + + + + Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + + Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + + + + + Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. + + + Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. + + + + + Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt wird. + + + Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok + + + + + Für eine vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur Versionsverwaltung]. + + + Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + + + + + Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. + + + Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. + + + + + Für jede überwachte Datei speichert Git Informationen wie deren Größe, ihren Erstellzeitpunkt und den Zeitpunkt der letzten Bearbeitung in einer Datei die wir als 'Index' kennen. + + + Dla każdego kontrolowanego pliku, Git zapamiętuje informacje o jego wielkości, czasie utworzenia i czasie ostatniej edycji w pliku znanym nam jako index. + + + + + Für jetzt, merke dir + + + zapamietaj jednak na razie, że: + + + + + Für meine Projekte bevorzuge ich es, wenn Unterstützer 'Repositories' vorbereiten, von denen ich 'pullen' kann. + + + W moich projektach preferuję, gdy pomagający mi programiści przygotują własne repozytoria, z których mogę wykonać 'pull'. + + + + + Für reale Projekte solltest Du solche Anweisungen üblicherweise vermeiden, da Du dadurch Datensicherungen zerstörst. + + + W prawdziwych projektach powinnaś unikać takich komend, poonieważ zniszczą zabezpieczone dane. + + + + + Für tiefer gehende Erklärungen verweise ich auf das http://www.kernel.org/pub/software/scm/git/docs/user-manual.html[englischsprachige Benutzerhandbuch]. + + + Dla pogłębienia tematu odsyłam na http://www.kernel.org/pub/software/scm/git/docs/user-manual.html[anielskojęzychny podręcznik użytkownika]. + + + + + Gegründet und betrieben von einem der ersten Git Entwickler. + + + Założona i uprawiana przez jednego z pierwszych deweloperów Git. + + + + + Geheime Quellen + + + Utajnione Zródła + + + + + Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus der Geschichte zu löschen. + + + Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. + + + + + Genau deswegen gibt es Releasezyklen. + + + Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. + + + + + Genauso wenig setzt das 'Clonen' des zentralen 'Repository' dessen Bedeutung herab. + + + Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + + + + + Generell sollten Referenzen mit *git update-ref -d* gelöscht werden, auch wenn es gewöhnlich sicher ist +refs/original+ von Hand zu löschen. + + + Generalnie do kasowania referencji powinnaś używać *git update-ref -d*, nawet gdy ręczne usunięcie +ref/original+ jest dość bezpieczne. + + + + + Geschichte machen + + + Tworzyć historię + + + + + Geschichtsstunde + + + Lekcja historii + + + + + Gewagte Kunststücke + + + Śmiałe wyczyny + + + + + Gib ein: + + + Za pomoc + + + + + Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut ('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas zwischen 1 und 127 für 'bad'. + + + Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. + + + + + Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. + + + GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* + + + + + Git für Fortgeschrittene + + + Git dla zaawansowanych + + + + + Git hat mir bewundernswert gedient und hat mich bis jetzt noch nie im Stich gelassen. + + + Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. + + + + + Git ist 'assoziativ': Dateien werden nicht nach Ihren Namen gespeichert, sondern eher nach dem SHA1-Hash-Wert der Daten, welche sie enthalten, in einer Datei, die wir als 'Blob'-Objekt bezeichnen. + + + Git pracuje asocjacyjnie (skojarzeniowo): dane nie są zapamiętywane na podstawie ich nazwy, tylko wartości ich własnego klucza SHA1 w pliku, który określamy mianem objektu 'blob'. + + + + + Git kommt beim 'Commit' dazu sich um die Dateinamen zu kümmern: + + + Podczas wykonywania 'commit' Git troszczy się o nazwy plików: + + + + + Git lässt dich genauso arbeiten, wie du es willst. + + + GIT pozwoli ci pracować dokładnie tak jak chcesz. + + + + + Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + + + GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + + + + + Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben: + + + Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + + + + + Git referenziert Änderungen anhand ihres SHA1-Hash, was in vielen Fällen besser ist. + + + Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + + + + + Git ruft eine Stand ab, der genau dazwischen liegt. + + + Git przywoła stan, który leży dokładnie pośrodku. + + + + + Git speichert den Dateiinhalt nur ein einziges Mal. + + + Git zapamięta zawartość pliku wyłącznie jeden raz. + + + + + Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. + + + Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` + + + + + Git stöbert Umbenennungen und Kopien zwischen aufeinander folgenden Versionen heuristisch auf. + + + Git poszukuje heurystycznie zmian nazw w następującymch po sobie wersjach kopii. + + + + + Git tauscht selten Daten direkt zwischen Deinem Projekt und seiner Versionsgeschichte aus. + + + Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. + + + + + Git unter Microsoft Windows kann frustrierend sein: + + + Korzystanie z GIT pod Microsoft Windows może być frustrujące: + + + + + Git versetzt dich wieder auf einen Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert so die Möglichkeiten. + + + Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. + + + + + Git versteht beide Gesichtspunkte. + + + Git jest wyrozumiały dla oby dwuch stron. + + + + + Git von Anfang an zu benutzen, ist wie ein Schweizer Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen geöffnet werden. + + + Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. + + + + + Git war das erste Versionsverwaltungssystem, das ich benutzt habe. + + + Git był pierwszym systemem kontroli wersji którego używałem. + + + + + Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die Details selbst erarbeiten. + + + Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. + + + + + Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der Änderungen. + + + Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. + + + + + Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von 20 Null-Bytes gesetzt. + + + Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash + + + + + Git über SSH, HTTP + + + Git przez SSH, HTTP + + + + + Git über alles + + + Git ponad wszystko + + + + + Git überwacht immer das ganze Projekt, was normalerweise schon von Vorteil ist. + + + GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + + + + + Git's Geheimnisse scheinen zu einfach. + + + Tajemnice Gita wydają się być proste. + + + + + Git's Wurzeln + + + Korzenie Git + + + + + GitHub hat eine Schnittstelle, die das erleichtert: Erzeuge deine eigene 'Fork' vom "gitmagic" Projekt, 'pushe' deine Änderungen, dann gib mir Bescheid, deine Änderungen zu 'mergen'. + + + GitHub posiada interfejs, który to ułatwi: utwórz twój własny 'Fork' projektu "gitmagic", 'push' twoje zmiany i daj mi znać, by je 'mergen'. + + + + + Globaler Zähler + + + Licznik globalny + + + + + Glücklicherweise hat Git eine Abkürzung dafür, die genauso komfortabel ist wie eine Fernbedienung: + + + Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + + + + + Glücklicherweise ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + + + Na szczęście jest to silną stroną git i chyba jego racją bytu. + + + + + Hast Du es zu lange versäumt zu 'comitten'? + + + Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? + + + + + Hast Du so versessen programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? + + + Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? + + + + + Hast du es satt, wie sich ein Projekt entwickelt? + + + Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt + + + + + Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung eingegeben? + + + Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? + + + + + Hast du gravierende Änderungen vor? + + + Masz zamiar dokonania wielu zmian? + + + + + Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes angezeigt hat? + + + Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? + + + + + Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu zerstören. + + + Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. + + + + + Hinzufügen, Löschen, Umbenennen + + + Dodac, skasowac, zmienic nazwe + + + + + Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die Forschung SHA1 komplett unnütz macht. + + + Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + + + + + Hätte ich mein Projekt fertig gestellt, wäre ich trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + + + Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + + + + + Hättest du nur die Funktion während der Entwicklung getestet. + + + A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + + + + + Ich 'merge' meine eigenen Änderungen und führe eventuell weitere Änderungen durch. + + + Wykonuję 'merge' moich własnych zmian i przeprowadzam ewentualnie dalsze zmiany. + + + + + Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. + + + By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. + + + + + Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin süchtig nach schellen Ausführungszeiten. + + + Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + + + + + Ich bin erstaunt, dass so viele Leute an der Übersetzung dieser Seiten gearbeitet haben. + + + Jestem mile zaskoczony, że tak dużo ludzi pracowało nad przetłumaczeniem tych stron. + + + + + Ich bin schnell in die Anwendung hineingewachsen und betrachtete viele Funktionen als selbstverständlich. + + + Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. + + + + + Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur als akademische Übungen. + + + Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. + + + + + Ich empfehle folgende Schritte um diese Anleitung zu übersetzen, damit meine Skripte einfach eine HTML- und PDF-Version erstellen können. + + + Aby przetłumaszyć mije HOWTO polecam wykonanie następujących ponniżej kroków, wtedy moje skrypty będą w prosty sposób mogły wygenerować wersje HTML i PDF. + + + + + Ich habe diese Phänomen aus erster Hand erfahren. + + + Dowiedziałem się o tym fenomenie z pierwszej ręki. + + + + + Ich habe einfach vorausgesetzt, dass andere Systeme ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht anders sein als die Auswahl eines Texteditors oder Internetbrowser. + + + Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + + + + + Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. + + + Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. + + + + + Ich hatte noch keinen Grund zu wechseln. + + + Nie miałem jeszcze powodu do zmiany. + + + + + Ich musste lernen, wie man Projekte verwaltet, an denen mehrere Entwickler aus aller Welt beteiligt waren. + + + Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. + + + + + Ich nehme alles zurück + + + Wycofuję wszystko co na ten temat powiedziałem. + + + + + Ich spiele Computerspiele schon fast mein ganzes Leben. + + + Gram w gry komputerowe przez całe moje życie. + + + + + Ich vermute, dass ich damit nicht alleine bin und der Vergleich hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + + + Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + + + + + Ich war geschockt, als ich später gezwungen war ein zentralisiertes System zu benutzen. + + + Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. + + + + + Ich war versucht, euch hier alle aufzuzählen, aber das könnte Erwartungen in unermesslichem Umfang wecken. + + + Chciałem was tu wszystkich wyszczegąlnić, mogłoby to jednak wzbudzić oczekiwania w szerokim zakresie. + + + + + Ich weiß es zu würdigen, dass ich, dank der Bemühungen der oben genannten, einen größeren Leserkreis erreiche. + + + bardzo doceniam to, że dzięki staraniom tylu wyżej wymienionych osób mam możliwość osiągnąć większy zakres czytelników. + + + + + Ich werde nicht ins Detail gehen. + + + Nie będę wchodził w szczegóły. + + + + + Im Gegensatz dazu habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu benutzen. + + + W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. + + + + + Im Gegensatz dazu hält Git seinen Verlauf einfach im `.git` Verzeichnis von Deinem Arbeitsverzeichnis. + + + W przeciwieństwie do tego, Git posiada kronikę całej swojej historii w podkatalogu .git twojego katalogu roboczego. + + + + + Im Gegensatz zu den meisten Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem Speicherplatz umzugehen. + + + W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. + + + + + Im Gegensatz zu vielen anderen Versionsverwaltungssystemen funktioniert diese Operation offline, es wird nur von der lokalen Festplatte gelesen. + + + W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + + + + + Im letzten Fall zeigt der SHA1-Hash-Wert auf ein 'Tree'-Objekt. + + + W ostatnim przypadku klucz SHA1 wskazuje na objekt 'tree'. + + + + + Immerhin sind 'Clone' fast genauso schnell und du kannst mit *cd* anstelle von esoterischen Git Befehlen zwischen ihnen wechseln. + + + Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + + + + + In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die Standardaktion. + + + W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. + + + + + In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die Fertigstellung des ersten Schritt warten. + + + W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego + + + + + In der Git Welt zu bleiben ist etwas bequemer als 'Patch'-Dateien, denn es erspart mir sie in Git 'Commits' zu konvertieren. + + + Pozostając w świecie Gita jest wygodniejsze niż otrzymywanie patchów, ponieważ zaoszczędza mi to konwertowanie ich do 'commits' Gita. + + + + + In der Praxis möchtest Du aber das "refs/heads/" entfernen und Fehler ignorieren: + + + W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + + + + + In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' gehalten werden und die Binärdatei außerhalb des Projekts. + + + W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. + + + + + In diesem Fall verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber sehr flexibel. + + + W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. + + + + + In diesem Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. + + + W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. + + + + + In diesem Fall, gib folgendes ein: + + + W tym wypadku użyj komendy: + + + + + In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und Konvertierungswerkzeugen und so weiter. + + + W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. + + + + + In ein paar Jahren hat vielleicht schon ein ganz normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' unbemerkt zu korrumpieren. + + + Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + + + + + In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. + + + W sali sądowej można pewne zdarzenia wykreślić z akt. + + + + + In einem Git 'Repository' gib ein: + + + W repozytorium git natomiast podajesz: + + + + + In einem leeren Verzeichnis: + + + W pustym katalogu: + + + + + In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der Chronik eine schwierige Angelegenheit und den Administratoren vorbehalten. + + + W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. + + + + + In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach einem bestimmten Punkt durch Eingabe von: + + + W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + + + + + In extremen Fällen trifft das auch auf die grundlegenden Anweisungen zu. + + + W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. + + + + + In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen 'bundlest', die in den anderen 'Repositories' fehlen. + + + W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. + + + + + In irgendeinem Verzeichnis: + + + W jakimkolwiek katalogu: + + + + + In manchen Systemen benötigt der Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu sehen oder um eine Datei zum Bearbeiten zu öffnen. + + + W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + + + + + In unserem Beispiel ist der Dateityp 100644, was bedeutet, dass `rose` eine normale Datei ist und der SHA1-Hash-Wert entspricht dem 'Blob'-Objekt, welches den Inhalt von `rose` enthält. + + + W naszym przykładzie typ pliku to 100644, co oznacza, że `rose` jest plikiem zwykłym, natomiast klucz SHA1 odpowiada kluczowi SHA1 objektu 'blob' zawierającego zawartość `rose`. + + + + + In vielen Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + + + W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + + + + + In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation um Dateien zu bekommen. + + + W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. + + + + + Indizierung + + + Indeksowanie + + + + + Initialer 'Commit' + + + Pierwszy 'commit' + + + + + Integrität + + + Integralność + + + + + Intelligenz + + + Inteligencja + + + + + Irgendwann wirst du dann mit den anderen synchronisieren wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen Versionsverwaltungssystem und gib ein: + + + Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + + + + + Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' werden: + + + Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + + + + + Irgendwo speicherte ein Server alle gespeicherten Spiele, sonst niemand. + + + Jeden serwer zapamiętywał wszystkie gry, nikt inny. + + + + + Irren ist menschlich und so kann es vorkommen, dass du zurück zu Teil I willst um einen Fehler zu beheben. + + + Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. + + + + + Je mehr gespeicherte Spiele benötigt werden, desto mehr Kommunikation ist erforderlich. + + + Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + + + + + Jede Datei einzeln nachzuprüfen ist frustrierend und ermüdend. + + + Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. + + + + + Jede Datei in `.git/objects` ist ein 'Objekt'. + + + Każdy plik w `.git/objects` jest 'objektem'. + + + + + Jeder 'Clone' deines Codes ist eine vollwertige Datensicherung. + + + Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa + + + + + Jeder 'Commit' ab jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen Namen geben können. + + + Kazdy wykonyny od teraz 'commit' prowadzi twoje dane inna droga, ktorej później jeszcze mozemy nadac nazwe. + + + + + Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git log* angezeigt werden. + + + Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. + + + + + Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für alle relevant. + + + Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + + + + + Jeder Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. + + + Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. + + + + + Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. + + + Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. + + + + + Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses Null-'Commits'. + + + Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + + + + + Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert hat. + + + Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + + + + + Jeder kann oberflächliche Klone erstellen, die nur wenig oder gar nichts vom Verlauf des Projekts enthalten. + + + Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. + + + + + Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. + + + Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany + + + + + Jedoch kann es nicht alle Fälle abdecken, aber es leistet ordentliche Arbeit und diese Eigenschaft wird immer besser. + + + Mimo iż wykonuje kawał dobrej roboty, a ta właściwość staje się coraz lepsza, nie potrafi niestety jeszcze poradzić sobie z wszystkimi możliwymi przypadkami. + + + + + Jegliche Version Deiner Daten wird in der Objektdatenbank gehalten, welche im Unterverzeichnis `.git/objects` liegt; Die anderen Orte in `.git/` enthalten weniger wichtige Daten: den Index, 'Branch' Namen, Bezeichner ('tags'), Konfigurationsoptionen, Logdateien, die Position des aktuellen 'HEAD Commit' und so weiter. + + + Każda wersja twoich danych jest przechowywana w objektowej bazie danych, która znajduje sie w podkatalogu `.git/objects`. Inne miejsca w `.git/` posiadają mniej ważne dane, jak indeks, nazwy gałęzi ('branch'), tagi, logi,konfigurację, aktualną pozycję HEAD i tak dalej. + + + + + Jemanden zu fotografieren stiehlt nicht dessen Seele. + + + Fotografując kogoś nie kradziemy jego duszy. + + + + + Jetzt lass uns das Problem etwas komplizierter machen. + + + Skomplikujmy teraz trochę cały ten problem. + + + + + KOPF-Jagd + + + Łowcy głów + + + + + Keine Sorge, gib ein: + + + Nie ma sprawy, wpisz polecenie: + + + + + Keine Sorge: Für solche Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + + Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + + + + + Klassische Quellcodeverwaltung + + + Klasyczne zarządzanie kodem źródłowym + + + + + Kleinere Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie möglich bewirken. + + + Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + + + + + Kleinere Verfehlungen sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + + + Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + + + + + Kontinuierlicher Arbeitsfluss + + + Nieprzerywany ciąg pracy + + + + + Kopiere alle +txt+-Dateien aus dem "en"-Verzeichnis in das neue Verzeichnis und übersetze diese. + + + Skopiuj wszystkie pliki +txt+ z katalogu "en" do nowoutworzonego katalogu. + + + + + Kurz gesagt, Git hält Deine Daten in dem `.git/objects` Unterverzeichnis, wo Du anstelle von normalen Dateinamen nur Identitätsnummern findest. + + + Krótko mówiąc, Git przechowuje twoje dane w podkatalogu `.git/objects`, gdzie zamiast nazw plików znajdziesz numery identyfikacyjne. + + + + + Kurz gesagt, so lange die 20 Byte, welche den SHA1-Hash-Wert des letzen 'Commit' repräsentieren sicher sind, ist es unmöglich ein Git 'Repository' zu fälschen. + + + Krótko mówiąc, doputy reprezentujące ostatni commit 20 bajtów są zabezpieczone, przefałszowanie repozytorium Gita nie jest możliwe. + + + + + Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein 'bare Repository' ist; andernfalls benutze 'pull'. + + + Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + + + + + Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto und erstellen ein 'Repository' in Deinem Webverzeichnis: + + + Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + + + + + Lasse den -global Schalter weg um diese Einstellungen für das aktuelle 'Repository' zu setzen. + + + Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + + + + + Lasst uns einen Blick riskieren: + + + Zaryzykujmy spojrzenie: + + + + + Leere Unterverzeichnisse + + + Puste katalogi + + + + + Leere Unterverzeichnisse können nicht überwacht werden. + + + Nie ma możliwości wersjonowania pustych katalogów. + + + + + Leider gibt es noch ein paar Problemfälle. + + + Niestety występuje jeszcze kilka innych problemów. + + + + + Leider kenne ich keine solche Erweiterung für Git. + + + Niestety nie są mi znane takie rozszerzenia dla GIT. + + + + + Leute machen kleine Änderungen von Version zu Version. + + + Ludzie robią jednak pomniejsze zmiany z wersji na wersję. + + + + + Lizenz + + + Lizencja + + + + + Lokale Änderungen zum Schluß + + + Końcowe lokalne zmian + + + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + + + M 100644 inline hello.c data <<EOT #include <unistd.h> + + + +M 100644 inline hello.c data <<EOT #include <unistd.h> + + + + + Machst Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + + + Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + + + + + Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' zuletzt gesendet wurde. + + + Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. + + + + + Man kann das aber auch in einem einzigen Schritt ausführen mit: + + + Można to także wykonać za jednyym zamachem: + + + + + Man muss vom Hauptserver das alte gespeicherte Spiel anfordern. + + + Za każdym razem trzeba ściągnąć wszystkie dane z serwera. + + + + + Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. + + + Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales + + + + + Mehrere 'Remotes' + + + Więcej serwerów + + + + + Mein 'Commit' ist zu groß! + + + Mój 'commit' jest za duży! + + + + + Meine Dankbarkeit gilt auch vielen anderen für deren Unterstützung und Lob. + + + Chcałbym podziękować również wszystkim innym za ich pomoc i dobre słowo. + + + + + Meine Einstellungen + + + Moje ustawienia + + + + + Meistens befindet es sich auf einem Server, der nicht viel tut außer Daten zu verbreiten. + + + Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. + + + + + Menschen sind nicht gut im Kontextwechsel. + + + Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + + + + + Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit Git zusammenarbeiten kann. + + + Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT + + + + + Mischmasch Reorganisieren + + + Reorganizacja chaosu + + + + + Mit Git ist 'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + + + Z Git 'merge' jest tak proste, ze wogóle nie zauwazysz, gdy to nastepuje + + + + + Mit anderen Worten, es verwaltet die Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner beliebigen Version. + + + Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + + + + + Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* benannt und gesichert werden kann. + + + Innymi slowami, po przywolaniu starego stanu Git automatychnie zamienia sie w nowy, nienazwany 'branch', ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + + + + + Mit anderen Worten, wir wollen ihre 'Branches' untersuchen ohne dass deren Änderungen in unser Arbeitsverzeichnis einfließen. + + + Innymi słowami, chcemy zbadać ich branches bez importowania ich zmian do naszego katalogu roboczego. + + + + + Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon heute wäre es technisch machbar für finanzkräftige Unternehmen Hash-Kollisionen zu finden. + + + Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach + + + + + Mit der Zeit können einige davon zu offiziellen Anweisungen befördert werden. + + + Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. + + + + + Mit der `hg-git`-Erweiterung kann ein Benutzer von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus 'pullen'. + + + Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + + + + + Mit diesem Zauberwort verwandeln sich die Dateien in deinem Arbeitsverzeichnis plötzlich von einer Version in eine andere. + + + Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. + + + + + Mit ein bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen entspricht. + + + Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + + + + + Mit ein paar Tastendrücken kannst Du mehrere geänderte Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') oder Änderungen einzelner Dateien nachprüfen und hinzufügen. + + + Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. + + + + + Mit einer Webmail Anwendung musst Du eventuell ein Button anklicken um die eMail in ihrem rohen Originalformat anzuzeigen, bevor Du den 'Patch' in eine Datei sicherst. + + + Jeśli stosujesz webmail musisz ewentualnie kliknąć, by pokazać treść niesformatowaną, zanim zapamiętasz patch do pliku. + + + + + Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' einfach, aber das Zusammenfügen ('Mergen') ist schwierig. + + + Za pomoca niektorych systemow kontroli wersji utworzenie nowego 'branch' moze i jest proste, jednak pozniejsze zespolenie ('merge') trudne. + + + + + Mit etwas Glück, wenn Git's Verbreitung zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie vielleicht implementiert. + + + Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + + + + + Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. + + + Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. + + + + + Mit zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server herunterladen. + + + Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. + + + + + Mit zpipe, ist es einfach den SHA1-Hash-Wert zu prüfen: + + + Za pomocą zpipe łatwo sprawdzić klucz SHA1: + + + + + Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das meiste verstanden haben. + + + W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. + + + + + Multitasking mit Lichtgeschwindigkeit + + + Multitasking z prędkością światła + + + + + Musst Du während eines Notfalls improvisieren? + + + Musisz improwizować w nagłym wypadku? + + + + + Möglicherweise reicht ORIG_HEAD nicht aus. + + + Może się zdarzyć, że ORIG_HEAD nie wystarczy. + + + + + Nach dem 'Clonen' eines 'Repositories', wird *git push* oder *git pull* automatisch auf die original URL zugreifen. + + + Po sklonowaniu repozytorium, polecenia *git push* albo *git pull* będą automatycznie wskazywały na orginalne URL. + + + + + Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + + Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + + + + + Nach ein paar Durchläufen wird dich diese binäre Suche zu dem 'Commit' führen, der die Probleme verursacht. + + + Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. + + + + + Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige 'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder irgendetwas anderes. + + + Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + + + + + Nach einer längeren Sitzung hast du einen Haufen 'Commits' gemacht. + + + Po dłuższej sesji zrobiłeś całą masę 'commits'. + + + + + Nachdem ich einen Zweig abgerufen habe, benutze ich Git Anweisungen um durch die Änderungen zu navigieren und zu untersuchen, die idealerweise gut organisiert und dokumentiert sind. + + + Gdy przywołałem moją gałęź korzystam z poleceń Gita dla nawigacji i kontroli zmian, które najłepiej gdy są dobrze zorganizowane i udokumentowane. + + + + + Natürlich funktioniert der Trick für fast alles, nicht nur Skripts. + + + Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + + + + + Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und vielleicht bist du mit einem anderen System besser dran. + + + Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. + + + + + Natürlich sind dann viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' übermittelt werden. + + + Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. + + + + + Natürlich wird der Quelltext in einem Git 'Repository' gehalten und kann abgerufen werden durch: + + + Oczywiście, tekst źródłowy znajduje się w repozytorium Git i może zostać powielone przez: + + + + + Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. + + + Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami + + + + + Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. + + + Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. + + + + + Netzwerkressourcen sind einfach teurer als lokale Ressourcen. + + + Zasoby sieciowe są po prostu droższe niż zasoby lokalne. + + + + + Nicht nur des aktuellen Stand, sondern der gesamten Geschichte. + + + Nie tylko jedo aktualny stan, lecz również jego całą historię. + + + + + Nichts könnte weiter von der Wahrheit entfernt sein. + + + Nic nie jest bardziej oddalone od rzeczywistości. + + + + + Nichtsdestotrotz, abgesehen von geschickten Verpackungstricks um Speicherplatz zu sparen und geschickten Indizierungstricks um Zeit zu sparen, wissen wir nun, wie Git gewandt ein Dateisystem in eine Datenbank verwandelt, das perfekt für eine Versionsverwaltung geeignet ist. + + + Tym niemniej, abstrahując od udanych trików pakujących, by oszczędnie odnosić się z pamięcią i udanych trików indeksujących by zaoszczędzić czas, wiemy jak Git sprawnie przemienia system danych i bazę danych, co jest optymalne dla kontroli wersji. + + + + + Normalerweise füllt man ein Formular auf einer Website aus. + + + Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + + + + + Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den vorhergehenden 'Commit'. + + + Zazwyczaj kazdy 'commit' posiada rodzica-'commit', a mianowicie poprzedni 'commit'. + + + + + Normalerweise können wir den Index ignorieren und so tun als würden wir direkt aus der Versionsgeschichte lesen oder in sie schreiben. + + + Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. + + + + + Normalerweise machen wir einen *pull* weil wir die letzten 'Commits' abrufen und einbinden wollen. + + + W normalnym wypadku wykonalibyśmy *pull*, bo chcielibyśmy przywołać również ostatnie 'commmits'. + + + + + Normalerweise wird ein Skript, das diese Anweisung benutzt, hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem einzigen Lauf zu migrieren. + + + Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + + + + + Normalerweise ändern sich immer nur wenige Dateien zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. + + + W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. + + + + + Nun bist du wieder im `master` 'Branch', mit Teil II im Arbeitsverzeichnis. + + + Znajdujesz się znowu w `master` 'branch', z częścią II w katalogu roboczym. + + + + + Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + + + I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + + + + + Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach Herzenslust. + + + Przejdź teraz do nowego katalogu i pracuj według upodobania. + + + + + Nun gib ein: + + + Podajemy teraz; + + + + + Nun haben wir einen 'Branch' vom zweiten 'Repository' eingebunden und wir haben einfachen Zugriff auf alle 'Branches' von allen 'Repositories': + + + Teraz przyłączyliśmy jeden branch z dwóch repozytorii i uzyskaliśmy łatwy dostęp do wszystkich branch z wszystkich repozytorii. + + + + + Nun kannst Du Deine Arbeit jederzeit wie folgt überprüfen: + + + Teraz możesz swoją pracę w każdej chwili sprawdzić: + + + + + Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus veröffentlichen. + + + Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + + + + + Nun kannst du Fehler beheben, Änderungen vom zentralen 'Repository' holen ('pull') und so weiter. + + + Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. + + + + + Nun kannst du überall wild temporären Code hinzufügen. + + + Teraz mozesz wszedze wprowadzac na dziko kod tymczasowy. + + + + + Nun können wir die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten Stand, aber wir müssen den 'Master Branch' verlassen. + + + Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic 'master branch'. + + + + + Nun müsstest Du die Datei +.git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9+ sehen, denn das ist der SHA1-Hash-Wert ihres Inhalts: + + + Powinnaś zobaczyć teraz plik +.git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9+, ponieważ jest to klucz SHA1 jego zawartości. + + + + + Nun stell dir ein ganz kompliziertes Computerspiel vor. + + + Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. + + + + + Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben Zeile. + + + Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. + + + + + Nur Kleinigkeiten. + + + To szczegół. + + + + + Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab: + + + Nie ma sprawy, jednak najpierw zabezpiecz dane. + + + + + Obwohl das Arbeitsverzeichnis unverändert bleibt, können wir nun jeden 'Branch' aus jedem 'Repository' in einer Git Anweisung referenzieren, da wir eine lokale Kopie besitzen. + + + Mimo, że nasz katalog pozostał bez zmian, możemy teraz referować z każdego repozytorium poprzez polecenia Gita, ponieważ posiadamy lokalną kopię. + + + + + Obwohl es extrem lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, so hat es doch zwei Vorteile: + + + Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + + + + + Obwohl ich nur unregelmäßig Beiträge erhalte, glaube ich, dass diese Methode sich auszahlt. + + + Mimo, iż dość rzadko otrzymuję posty, jestem zdania, że ta metoda się opłaca. + + + + + Obwohl sie automatisch über Bord geworfen werden, wenn ihre Gnadenfrist abgelaufen ist, wollen wir sie nun löschen, damit wir unserem Beispiel besser folgen können. + + + Mimo iż automatycznie zostaną usunięte po upłynięciu okresu łaski, chcemy się ich pozbyć od zaraz, aby lepiej prześledzić następne przykłady. + + + + + Oder Du kannst schauen, was auf dem 'Branch' ``experimentell'' los war: + + + Możesz też sprawdzić co działo się w 'Branch' ``experimental'' + + + + + Oder anders gesagt, du spiegelst den zentralen Server. + + + Lub inaczej mówiąc, odzwierciedlasz zentralny server. + + + + + Oder noch besser, anpacken und mithelfen. + + + Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + + + + + Oder noch schlimmer, deine aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz vorne beginnen. + + + Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + + + + + Oder rufe den fünftletzten 'Commit' ab, mit: + + + Albo przywołaj 5 ostatnich 'commits' za pomocą: + + + + + Oder seit Gestern: + + + Albo od wczoraj + + + + + Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel ein Spieler geleistet hat. + + + Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + + + + + Oder zwischen irgendeiner Version und der vorvorletzten: + + + Albo miedzy jakakolwiek wersja a przedostatnia: + + + + + Patches: Das globale Zahlungsmittel + + + Patches: globalny środek płatniczy + + + + + Persönliche Erfahrungen + + + Osobiste doświadczenia + + + + + Praktisch, http://csdcf.stanford.edu/status/[wenn dieser Server offline ist]. + + + Praktyczne, http://csdcf.stanford.edu/status/[gdyby ten serwer był offline]. + + + + + Praktisch, wenn es keinen Strom gibt. + + + Praktyczna, gdyby zabrakło prądu. + + + + + Prüfe, ob die 'filter-branch' Anweisung getan hat was du wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' Operationen durchführst. + + + Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + + + + + Prüfe, ob diese Datei tatsächlich dem obigen Inhalt entspricht, durch Eingabe von: + + + Sprawdź, czy plik na prawdę odpowiada powyższej zawartości przez polecenie: + + + + + Quellcode veröffentlichen + + + +Publikowanie kodu źródłowego + + + + + Rund ums 'Clonen' + + + Polecenie CLONEN + + + + + Rückgängig machen + + + Przywracanie + + + + + SHA1 Schwäche + + + Słabości SHA1 + + + + + Sagen wir du bist im `master` 'Branch'. + + + Powiedzmy też, że znajdujesz sie w 'master branch'. + + + + + Sagen wir, du hast einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt oder Dateien einer Website. + + + Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. + + + + + Schließlich, Teil I ist zugelassen: + + + Wreszcie, dopuszczamy część I: + + + + + Schmutzarbeit + + + Brudna robota + + + + + Schnelle Fehlerbehebung + + + Szybkie poprawianie bledow. + + + + + Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. + + + Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. + + + + + Sei auch vorsichtig, wenn Du +.git+ direkt manipulierst: was, wenn zeitgleich ein Git Kommando ausgeführt wird oder plötzlich der Strom ausfällt? + + + Bądź też ostrożna przy bezpośredniej manipulacji +.giz+: gdy równocześnie wykonywane jest polecenie Git i zgaśnie światło? + + + + + Sei vorsichtig, wenn Du 'checkout' auf diese Weise benutzt. + + + Bądź ostrożny stosując 'checkout' w ten sposób. + + + + + Sein Inhalt hängt von der 'Commit'-Beschreibung ab, wie auch vom Zeitpunkt der Erstellung. + + + Jego zawartość jest zależna od opisu 'commit' jak i czasu jego wykonania. + + + + + Sicher, Du hast vielleicht *git mv* benutzt, aber das ist exakt das selbe wie *git rm* gefolgt von *git add*. + + + Oczywiście, być może użyłaś polecenia *git mv*, jest to jednak to samo jakbyś użyła *git rm*, a następnie *git add*. + + + + + Sie alle haben bequeme Schnittstellen um Ordner voller Dateien zu verwalten. + + + Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. + + + + + Sie müssen irgendwo gespeichert sein. + + + Przecież muszą być gdzieś zapisane. + + + + + Siehe *git help branch*. + + + Zobacz: *git help branch*. + + + + + Siehe *git help diff* und *git help rev-parse*. + + + Sprawdź *git help diff* i *git help rev-parse*. + + + + + Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine schnellere Methode vorstellt wird. + + + Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. + + + + + Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die ignoriert werden sollen. + + + Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + + + + + Siehe *git help remote* um zu sehen wie man Remote-'Repositories' entfernt, bestimmte 'Branches' ignoriert und mehr. + + + Sprawdź *git help remote* by zobaczyć, jak usuwa się repozytoria, ignoruje pewne branches i więcej- + + + + + Siehe *git help stash*. + + + Zobacz *git help stash*. + + + + + Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen Anweisung. + + + Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. + + + + + Siehe auf der Git Hilfeseite für einige Anwendungsbeispiele. + + + Na stronach pomocy git znajdziesz więcej zasosowań. + + + + + Siehe http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[diesen Blog Beitrag von Linus Torvalds (englisch)]. + + + Zobacz http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[Post na Blogu Linusa Torvalds (po angielsku)]. + + + + + Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für mehr. + + + Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + + + + + So konnte ich einfach vorhersagen, was Du sehen wirst. + + + Przez to właśnie mogłem 'przepowiedzieć' wynik. + + + + + So schwierig zu lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das Spiel zu beenden. + + + Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. + + + + + So wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' mit abweichender Chronik hat und die Zweige sich austauschen sollen. + + + Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + + + + + Sogar einige Git Anweisungen selbst sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. + + + Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. + + + + + Sogar mehr als das: jegliche Zeichenfolge, die alle Menschen über mehrere Generationen verwenden. + + + Nawet i więcej niż to: wszystkie łańcuchy znaków, jakie ludzkość przez wiele generacji stworzyła. + + + + + Solange Deine Mitstreiter ihre eMails lesen können, können sie auch Deine Änderungen sehen. + + + Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. + + + + + Solltest du kürzlich konkurrierende Änderungen an der selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut 'commiten' nachdem du die Konflikte aufgelöst hast. + + + Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + + + + + Speichere und Beende. + + + Zapamietaj i zakończ. + + + + + Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von Mitstreitern einbinden. + + + Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów + + + + + Stand sichern + + + Backup + + + + + Standardmäßig beginnst du in einem 'Branch' namens ``master''. + + + Standardowo zaczynasz w BRANCH zwanym MASTER. + + + + + Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. + + + Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. + + + + + Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + + + Standardowo dane te pozostają jeszcze przez 2 tygodnie. + + + + + Standardmäßig nutzt Git Systemeinstellungen um diese Felder auszufüllen. + + + Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. + + + + + Stattdessen stellen wir uns wieder vor, wir editieren ein Dokument. + + + Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + + + + + Stell Dir vor, jemand will den Inhalt einer Datei ändern, die in einer älteren Version eines Projekt liegt. + + + Wyobraź sobie,, ktoś ma zamiar zmienić treść jakiegoś pliku, która leży w jakiejś starszej wersji projektu. + + + + + Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am Dateiende. + + + Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. + + + + + Stell dir zum Beispiel vor, du willst ein Projekt veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen privat bleiben muss. + + + Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. + + + + + Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein Computerspiel vor. + + + Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. + + + + + Stimmen diese Daten überein, kann Git das Lesen des Dateiinhalts überspringen. + + + Jeśli dane te nie różnią się, Git może pominąć czytanie zawartości pliku. + + + + + Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, wird von unzähligen Projekten benutzt. + + + Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. + + + + + Suche Dir einen Dateinamen aus, irgendeinen. + + + Wymyśl jakąś nazwę pliku, jakąkolwiek. + + + + + Tatsächlich beschreibt dies die früheste Version von Git. + + + W sumie można by tak opisać najwcześniejsze wersje Gita. + + + + + Tatsächlich sind wir dem 'Mergen' schon lange begegnet. + + + W gruncie rzeczy spotkalismy sie juz wczesniej z 'merge'. + + + + + Temporäre 'Branches' + + + Tymczasowe BRANCHES + + + + + Teste die Funktion und wenn sich immer noch nicht funktioniert: + + + Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + + + + Tippe: + + + Wpisz: + + + + + Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. + + + Momo ich prostoty, wszystkie sa wazne i pozyteczne. + + + + + Trotz seiner Größe, +einedatei+ enthält das komplette original Git 'Repository'. + + + Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + + + + + Trotzdem gibt es Situationen, in denen es besser ist einen oberflächlichen Klon mit der `--depth` Option zu erstellen. + + + Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. + + + + + Trotzdem kann es langwierig sein, den exakten Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. + + + Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. + + + + + Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe von: + + + Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + + + + + Ultimative Datensicherung + + + Ultymatywny backup danych + + + + + Um Dateien zu bekommen, erstellst du einen 'Clone' des gesamten 'Repository'. + + + By pozyskać dane, tworzysz klon całej REPOSITORY. + + + + + Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. + + + Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, + + + + + Um auf die aktuelle Server-Version zu aktualisieren: + + + Aby zaktualizować do wersji na serwerze: + + + + + Um das Leben zu vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die Firmware. + + + By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + + + + + Um das Löschen zu erzwingen, gib ein: + + + By wymusić skasowanie, podaj: + + + + + Um das Verschieben zu erzwingen, gib ein: + + + By wymusić przesunięcie, podaj: + + + + + Um das zu tun, klickst du auf auf Speichern in deinem vertrauten Editor. + + + W tym celu klikasz na 'zapisz' w wybranym edytorze. + + + + + Um den neuen Stand zu sichern: + + + Aby zapisac nowy stan: + + + + + Um die Objektdatenbank intakt aussehen zu lassen, müssten sie außerdem den SHA1-Hash-Wert des korrespondierenden 'Blob'-Objekt ändern, da die Datei nun eine geänderte Zeichenfolge enthält. + + + By sprawić pozory, że baza danych wygląda nienaruszona. musiałabyś wmienić klucze SHA1 korespondujących objektów, ponieważ plik zawiera teraz zmieniony sznur znaków. + + + + + Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + + By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + + + + + Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + + Lokalne zmiany przekazujemy do serwera poleceniem: + + + + + Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + + Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + + + + Um diese Angaben explizit zu setzen, gib ein: + + + Aby wprowadzić te dane bezpośrednio, podaj: + + + + + Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht. + + + Bedac szczery, w pierwszych miesiacach pracy z GIT nie potrzebowalem zadnych innych poleceń, niz opisane w tym rozdziale + + + + + Um ein tarball-Archiv des Quellcodes zu erzeugen, verwende ich den Befehl: + + + Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + + + + + Um es zu erzwingen, verwende: + + + By zmusić dgo do tego, możesz użyć: + + + + + 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. + + + Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. + + + + + Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + + Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + + + + + Um wieder die Computerspielanalogie anzuwenden: + + + Jeśli znów skorzystamy z analogii do gier komputerkowych: + + + + + Um zu ermitteln, ob eine Datei verändert wurde, vergleicht Git den aktuellen Status mit dem im Index gespeicherten. + + + By ustalić, czy nastąpiła jakaś zmiana, Git porównuje stan aktualny ze stanem zapamiętanym w indeksie. + + + + + Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'. + + + Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + + + + + Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze: + + + By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + + + + + Um zum Beispiel die Anleitung auf http://de.wikipedia.org/wiki/Klingonische_Sprache[Klingonisch] zu übersetzen, mußt du folgendes machen: + + + Aby przykładowo przetłumaczyć to HOWTO na http://de.wikipedia.org/wiki/Klingonische_Sprache[Klingonisch], musisz wykonać następujące polecenia: + + + + + Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + + By na przyklad pokazać logi drugiego rodzica + + + + + Um zum Beispiel die Unterschiede zum ersten Elternteil anzuzeigen: + + + Natomiast, by pokazać roznice do pierwszgo rodzica + + + + + Unbeständige Projekte + + + Niestałe projekty + + + + + Und das ist, wenn Du froh bist, dass Git die ganze Zeit über Dich gewacht hat. + + + A oto chodzi, byś był zadoowolony z tego, że Git cały czas czuwa nad twoją pracą + + + + + Und eigene Sicherungen bereitstellt? + + + Natomiast własne innym udostępni? + + + + + Und wenn der Chef in diesem Verzeichnis herumschnüffelt, tippe: + + + A gdy szef grzebie w twoim katalogu, wpisz: + + + + + Unsichtbarkeit + + + Niewidzialność + + + + + Unter den Befehlen im Zusammenhang mit Git's verteilter Art, brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an unterschiedlichen Orten halten. + + + Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + + + + + Unterschiede sind schnell gefunden, weil nur die markierten Dateien untersucht werden müssen. + + + Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + + + + + Untracked .txt files. + + + untracket.txt files. + + + + + Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden Eigenschaften von Git. + + + niezwloczne 'branch' i MERGEN sa uderzajacymi wlasciwosciami GIT + + + + + Verhindere schlechte 'Commits' + + + Zapobiegaj złym 'commits' + + + + + Verliere nicht Deinen KOPF + + + Nie trać głowy + + + + + Verschiedene Git Hosting Anbieter lassen Dich mit einem Klick deine eigene 'Fork' eines Projekts hosten. + + + Większość hosterów Gita pozwala na utworzenie jednym kliknięciem twojego własnego forka innego projektu. + + + + + Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. + + + Niektóre projekty wymagają pliku historii zmian + + + + + Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit jedem 'Commit' erhöht wird. + + + Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". + + + + + Versionsverwaltung + + + Kontrola wersji + + + + + Versionsverwaltung im Untergrund + + + Zarządzanie wersją w poddziemiu + + + + + Versionsverwaltungen sind nicht anders. + + + Systemy kontroli wersji nie różnią się tutaj zbytnio. + + + + + Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und überlassen die schwierigen uns Menschen. + + + Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. + + + + + Versuche + + + Wypróbuj polecenie: + + + + + Versuche Kopien Deiner Datei hinzuzufügen, mit beliebigen Dateinamen. + + + Spróbuj dodać kopie twojej danej pod jakąkolwiek nazwą. + + + + + Versuche auch: + + + Sprobuj rowniez: + + + + + Verteilte Kontrolle + + + Rozproszona kontrola + + + + + Viele Git Befehle funktionieren nicht in 'bare Repositories'. + + + Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH + + + + + Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. + + + Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. + + + + + Viele Kommandos sind mürrisch vor dem intialen 'Commit'. + + + Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. + + + + + Viele Versionen auf diese Art zu archivieren ist mühselig und kann sehr schnell teuer werden. + + + Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + + + + + Vielen Dank an alle diese Seiten für das Hosten dieser Anleitung. + + + Duże dzięki dla wszystkich tych stron za hosting tego poradnika. + + + + + Vielleicht habe ich meine Kreditkartennummer in einer Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. + + + Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? + + + + + Vielleicht hast Du gerade bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + + + Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + + + + + Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash des letzten 'Commit' verknüpft ist. + + + Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + + + + + Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar ist. + + + Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. + + + + + Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung gesucht, nicht ein Versionsverwaltungssystem. + + + Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. + + + + + Vielleicht kann ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich in der Vergangenheit gebraucht habe. + + + Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + + + + + Vielleicht können Dateiformate geändert werden. + + + Ewentualnie można czasami zmienić format danych. + + + + + Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' abzuarbeiten. + + + Może lubisz odpracować wszystkie aspekty projektu w + + + + + Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' konfigurieren. + + + Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. + + + + + Vielmehr kann es sogar Codeblöcke erkennen, die zwischen Dateien hin und her kopiert oder verschoben wurden! + + + Dodatkowo potrafi czasami nawet znaleźć całe bloki z kodem przenoszonym tam i spowrotem między plikami! + + + + + Vielmehr schreibt Git die Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an ihren eigentlichen Bestimmungsort. + + + Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + + + + + Von Magie nicht zu unterscheiden + + + Nie do odróżnienia od magii + + + + + Von jetzt an wird + + + Od teraz poleceniem: + + + + + Vorwort + + + Przedmowa + + + + + Wann immer du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + + Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + + + + + Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten 'pull'-Befehl zu bleiben? + + + Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? + + + + + Warum ich Git benutze + + + Dlaczego korzystam z GIT + + + + + Warum kann ein Haufen von Dateistatusinformationen ein Bereitstellungsraum sein? + + + Jak to możliwe, że stos informacji o statusie danych może być przechowywalnią? + + + + + Warum mehrere Tabs unterstützen und mehrere Fenster? + + + Dlaczego pozwalają używać tabs albo okien? + + + + + Was habe ich getan? + + + Co ostatnio robilem? + + + + + Was ist mit Git's berühmten Fähigkeiten? + + + A co ze sławnymi możliwościami Gita? + + + + + Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? + + + A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? + + + + + Was, wenn du am Ende die temporären Änderungen sichern willst? + + + A co jesli chcesz zapamietac wprowadzone zmiany? + + + + + Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? + + + A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? + + + + + Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. + + + Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. + + + + + Weil der SHA1-Hash-Wert von: + + + Poniewaś wartość klucza SHA1 dla: + + + + + Weil die 'add' Anweisung Dateien in die Git Datenbank befördert und die Dateistatusinformationen aktualisiert, während die 'commit' Anweisung, ohne Optionen, einen 'Commit' nur auf Basis der Dateistatusinformationen erzeugt, weil die Dateien ja schon in der Datenbank sind. + + + Ponieważ polecenie 'add' transportuje pliki do bazy danych Git i aktualizuje informacje o ich statusie, podczas gdy polecenie 'commit' (bez opcji) tworzy commit tylko wyłącznie na podstawie informacji o statusie plików, ponieważ pliki te już sie w tej bazie znajdują. + + + + + Welche Lösung ist die beste? + + + Ktore rozwiazanie jest najlepsze? + + + + + Wenn Anwender langsame Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss unterbrochen wird. + + + Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + + + + + Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien überwacht. + + + Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. + + + + + Wenn Du 'filter-branch' aufrufst, bekommst Du alte Objekte, welche nicht länger benötigt werden. + + + Jeśli użyjesz polecenia 'filter-branch', otrzymasz stare objekty, które nie są już używane. + + + + + Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + + Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + + + + + Wenn Du ein 'Repository' 'clonst', 'clonst' Du auch alle seine 'Branches'. + + + Jeśli klonujesz repozytorium, klonujesz równierz wszystkie jego 'branches' + + + + + Wenn Du ein sauberes 'Repository' willst, ist es am besten, einen neuen Klon anzulegen. + + + Jeśli chcesz posiadać czyste repozytorium, to najlepiej załóż nowy klon. + + + + + Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + + Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + + + + + Wenn Du zufrieden bist, gib + + + Jeśli jesteś zadowolony z wyniku, wpisz: + + + + + Wenn Spieler vom Hauptserver herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt gespeicherte. + + + Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany + + + + + Wenn alle 'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu lassen, da jegliche Kommunikation über SSH läuft. + + + Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + + + + + Wenn auch nicht so effizient wie mit dem systemeigenen Protokoll, kann Git über HTTP kommunizieren. + + + Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + + + + + Wenn das original 'Repository' verschoben wird, können wir die URL aktualisieren mit: + + + Jeśli orginalne repozytorium zostanie przesunięte, możemy zaktualizować link poprzez: + + + + + Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst um dort einen 'Clone' zu platzieren. + + + Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + + + + + Wenn dein Projekt viele Entwickler hat, musst du nichts tun! + + + Jeśli projekt posiada wielu programistów, nie musisz niczego robić + + + + + Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter Form zu verwenden. + + + Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. + + + + + Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen: + + + Jesli dodales nowe pliki, musisz o tym poinformowac GIT + + + + + Wenn du Glück hast oder sehr gut bist, kannst du die nächsten Zeilen überspringen. + + + Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + + + + + Wenn du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir Konflikte melden. + + + Jesli jednak wprowadziles zmiany, Git bedzie je automatycznie 'merge' i powiadomi cie o eventualnych konfliktach. + + + + + Wenn du deine Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + + Po skończeniu dochodzenia przejdź do orginalnego stanu: + + + + + Wenn du einen 'Commit' mit 'edit' markiert hast, gib ein: + + + Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + + + + + Wenn du fertig bist, + + + A gdy skończysz: + + + + + Wenn du gut voran gekommen bist, willst du das Erreichte sichern. + + + Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. + + + + + Wenn du keine lokalen Änderungen hast, dann ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. + + + Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu kontroli wersji. + + + + + Wenn du nun eine alte Version erhalten willst, musst du den ganzen Ordner archivieren. + + + Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. + + + + + Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit: + + + Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + + + + + Wenn du wieder zurück zu deinen Änderungen willst, tippe: + + + Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + + + + + Wenn ein Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + + + Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + + + + + Wenn es bei Dir nicht funktioniert, versuche Optionen zur aufwendigeren Erkennung von Kopien oder erwäge einen Upgrade. + + + Jeśli to u ciebie nie działa, spróbuj poszukać opcji rozszerzonego rozpoznawania kopii, aktualizacja samegi Git, też może pomóc. + + + + + Wenn es mit einem der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon jemand ein Skript geschrieben hat, das die gesamte Chronik für Git exportiert. + + + Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + + + + + Wenn ich Dich versehentlich vergessen habe, sag' mir bitte Bescheid oder schicke mir einfach einen Patch! + + + Gdybym o tobie przypadkowo zapomniał, daj mi znać albo przyślij mi po prostu patch. + + + + + Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + + Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + + + + + Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger Schaden zugefügt. + + + Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. + + + + + Wenn ich zufrieden bin, 'pushe' ich in das zentrale 'Repository'. + + + Gdy już jestem zadowolony, 'push' do zentralnego repozytorium.- + + + + + Wenn ich zur ursprünglichen Arbeit zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr Zeit beim Versuch mich zu erinnern was ich getan habe. + + + Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. + + + + + Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver eingegangen sind, schlägt dein 'push' fehl. + + + Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. + + + + + Wenn mehrere 'Branches' mit unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' gemacht wird, ist ein manuelles Eingreifen erforderlich. + + + Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + + + + + Wenn nicht, ersetzte "bad" mit "good". + + + Jeśli nie, zamień "bad" na "good". + + + + + Wenn nicht, kannst Du den Verlauf so umschreiben, dass es so aussieht als hättest Du es: + + + Jeśli nie, możesz zmienić opis, by wyglądał jakby był twój: + + + + + Wenn nötig, starte den Git-Dämon: + + + Jeśli konieczne, wystartuj GIT-DAEMON + + + + + Wer bin ich? + + + Kim jestem? + + + + + Wer ist verantwortlich? + + + Kto ponosi odpowiedzialność? + + + + + Wer macht was? + + + Kto robi co? + + + + + Wie 'Clonen', 'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine weitere Stärke, die Git dir bietet. + + + Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. + + + + + Wie Arthur C. Clarke festgestellt hat, ist jede hinreichend fortschrittliche Technologie nicht von Magie zu unterscheiden. + + + Jak stwierdźił Arthur C. Clarke, każda wystarczająco postępowa technologia jest porównywalna z magią. + + + + + Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein 'Repository' ab. + + + W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY + + + + + Wie auch immer, mit Git kannst du nicht viel falsch machen. + + + Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. + + + + + Wie auch immer, vorausgesetzt du hast oft 'comittet', kann Git dir sagen, wo das Problem liegt: + + + Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + + + + + Wie du dir vielleicht schon gedacht hast, verwendet Git 'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + + + Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + + + + + Wie kann Git so unauffällig sein? + + + Jak to możliwe, że Git jest taki niepostrzeżony? + + + + + Wie konnte ich das wissen, ohne den Dateiname zu kennen? + + + Skąd mogłem to wiedzieć, mimo iż nie znałem nazwy pliku? + + + + + Wie macht Git das? + + + Jak Git to robi? + + + + + Wie mit der ``master'' 'Branch' Konvention können wir diesen Spitznamen ändern oder löschen, aber es gibt für gewöhnlich keinen Grund dies zu tun. + + + Tak jak i przy konwencji z ``master'' 'Branch' , możemy ten alias zmienić albo skasować, zwykle jednak nie ma powodów by to robić. + + + + + Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + + Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + + + + + Wie vorhin, kannst Du 'zpipe' oder 'cat-file' benutzen um es für Dich zu überprüfen. + + + Jak i w poprzednich przykładach możesz użyć 'zpipe' albo 'cat-file' by to sprawdzić. + + + + + Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die Sicherungen der anderen bekommt? + + + W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? + + + + + Wieder andere bevorzugen irgendetwas dazwischen. + + + Inni znowu wolą coś pomiędzy. + + + + + Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne Netzwerkverbindung? + + + Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? + + + + + Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. + + + Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 + + + + + Wir erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß permanent. + + + Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + + + + + Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das bekannteste freie verteilte Versionsverwaltungssystem ist. + + + Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + + + + + Wir haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. + + + We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. + + + + + Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer bestimmten Nachricht enthält. + + + Utworzylismy repozytorium posiadające plik z ta zawartoscia + + + + + Wir haben früher festgestellt, dass der Index ein Bereitstellungsraum ist. + + + Stwierdziliśmy już wcześniej, że indeks jest przechowalnią (ang. staging area). + + + + + Wir haben gesehen, dass man mit <<makinghistory, *git fast-export* und *git fast-import* 'Repositories' in eine einzige Datei konvertieren kann und zurück>>. + + + Widzieliśmym, że poleceniami <<makinghistory, *git fast-export* i *git fast-import* możemy konwertować całe repozytoria w jeden jedyny plik i spowrotem>>. + + + + + Wir haben nun zwei von drei Objekten erklärt. + + + Wytłumaczyliśmy dwa z trzech objektów. + + + + + Wir können SHA1-Hash-Werte aus Zeichenfolgen generieren, die selbst SHA1-Hash-Werte enthalten. + + + Możemy generować klucze SHA1 z łańcuchów samych zawierających klucze SHA1. + + + + + Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen: + + + Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + + + + + Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden: + + + Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + + + + + Wir können mehr als ein 'Repository' gleichzeitig beobachten mit: + + + Możemy obserwować więcej niż jedno reposytorium jednocześnie: + + + + + Wir können sogar den hinterhältigsten Gegnern widerstehen. + + + Możemy przetrwać nawet podstępnego przeciwnika. + + + + + Wir können solche Dateien hin und her schicken um Git 'Repositories' über jedes beliebige Medium zu transportieren, aber ein effizienteres Werkzeug ist *git bundle*. + + + W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + + + + + Wir können uns den SHA1-Hash-Wert als eindeutige Identnummer des Dateiinhalts vorstellen, was sinngemäß bedeutet, dass die Dateien über ihren Inhalt adressiert werden. + + + Klucz SHA1 możemy sobie wyobrazić jako niepowtarzalny numer identyfikacyjny zawartości pliku, co oznacza, że pliki adresowane są na podstawie ich zawartości. + + + + + Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das? + + + Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + + + + + Wir müssen die Datei aus allen 'Commits' entfernen: + + + Musimy ten plik usunąć ze wszystkich 'commits': + + + + + Wir müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen 'pullen', also abholen wollen. + + + Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. + + + + + Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung gekommen, als wir das Laden alter Stände besprochen haben. + + + Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow + + + + + Wir werden später sehen, wie Git diese nutzt um effizient die Datenintegrität zu garantieren. + + + Zobaczymy później w jaki sposób wykorzystje je Git dla zapewnienia produktywności i integralności danych. + + + + + Wir werfen einen Blick unter die Motorhaube und erklären, wie Git seine Wunder vollbringt. + + + Rzućmy spojrzenie pod maskę silnika i wytłumaczymy w jaki sposób Git realizuje swoje cuda. + + + + + Wird irgendein 'Clone' beschädigt, wird dies dank des kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit anderen zu kommunizieren. + + + Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + + + + + Wirklich, diese Anweisung kann Klartext-'Repositories' über reine Textkanäle übertragen. + + + Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + + + + + Wo ging alles schief? + + + Gdzie wszystko poszło źle? + + + + + Wo kommt dieser Fehler her? + + + Skąd wziął się ten błąd? + + + + + Wobei SP ein Leerzeichen ist, NUL ist ein Nullbyte und LF ist ein Zeilenumbruch. + + + Przyczym SP to spacja, NUL - to bajt zerowy, a LF to znak nowej linii ('newline'). + + + + + Woher weiß Git, dass Du eine Datei umbenannt hast, obwohl Du es ihm niemals explizit mitgeteilt hast? + + + Skąd Git wie o tym, że zmieniłaś nazwę jakiegoś pliku, jeśli nigdy go o tym wyraźnie nie poinformowałaś? + + + + + Während dem Warten auf das Ende der Serverkommunikation tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails lesen oder Dokumentation schreiben. + + + Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. + + + + + Während dem ursprünglichen 'clonen', wird sie auf den aktuellen 'Branch' des Quell-'Repository' gesetzt, so dass selbst dann, wenn der 'HEAD' des Quell-'Repository' inzwischen auf einen anderen 'Branch' gewechselt hat, ein späterer 'pull' wird treu dem original 'Branch' folgen. + + + Podczas początkowego klonowania, zostanie ustawiony na aktualny branch źródłowego repozytorium, że nawet i potym jak 'HEAD' źródłowego repozytorium przejdzie do innego branch, późniejszy 'pull' pozostanie wierny orginalnemu branch. + + + + + Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem fatalen Fehler zu beenden. + + + Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. + + + + + Zeige die entfernten 'Branches' an mit: + + + Oddalone 'branches' możesz pokazać poprzez: + + + + + Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler steigt. + + + Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. + + + + + Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts 'mergen' mit: + + + W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + + + + + Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon 'pullen'. + + + W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + + + + + Zu link:/~blynn/gitmagic/intl/zh_tw/[Traditionellem Chinesisch] konvertiert via +cconv -f UTF8-CN -t UTF8-TW+. + + + Do link:/~blynn/gitmagic/intl/zh_tw/[tradycyjny chiński] skonwertowany przez +cconv -f UTF8-CN -t UTF8-TW+. + + + + + Zuerst ein Zaubertrick. + + + Na początek magiczna sztuczka + + + + + Zuerst, 'pull' funktioniert nicht mit 'bare Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später behandeln. + + + Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. + + + + + Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten Version, falls du später mit ihnen interagieren möchtest. + + + Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + + + + + Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. + + + na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. + + + + + Zum Beispiel ist `git checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu komprimieren als eine Sammlung von Änderungen auf Dateibasis. + + + Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + + + + + Zum Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert wird. + + + Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany + + + + + Zum Beispiel wäre es sicher, ihn in einer Zeitung zu veröffentlichen, denn es ist schwer für einen Angreifer jede Zeitungskopie zu manipulieren. + + + Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + + + + + Zum Beispiel, Englisch ist "en", Japanisch ist "ja". + + + Na przykład, angielski to "en", a japoński to "ja". + + + + + Zum Beispiel, angenommen Du hast viele 'Commits' gemacht und möchtest einen Vergleich zur letzten abgeholten Version machen. + + + Przyjmijmy, na przykład, że wykonałeś wiele COMMITTS i chciałbyś uzyskać porównanie do ostatnio ściągniętej wersji. + + + + + Zum Beispiel, nehmen wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien haben: + + + Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + + + + Zum Beispiel: + + + Na przyklad: + + + + + Zum Glück ist es einfach, Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' einen Zähler erhöht. + + + Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. + + + + + Zum Konvertieren gib in einem leeren Verzeichnis ein: + + + Aby przekonwertować wejść do pustego katalogu: + + + + + Zusätzlich habe ich mich dabei ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten meinem gewohnten Arbeitsablauf zu folgen. + + + Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + + + + + Zusätzlich müssen verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines 'Branch' mit einem abweichenden initialen 'Commit'. + + + Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + + + + + [[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum auch immer, drei Versionen zurückgehen um ein paar print Anweisungen einzufügen, damit du siehst, wie etwas funktioniert. + + + [[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzialanie. + + + + + [[makinghistory]] Du möchtest ein Projekt zu Git umziehen? + + + [[makinghistory]] Masz zamiar przenieść projekt do git? + + + + + aa823728ea7d592acc69b36875a482cdf3fd5c8d ist. + + + wynosi właśnie: aa823728ea7d592acc69b36875a482cdf3fd5c8d. + + + + + bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + + + znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + + + + + beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen Hashwert mit 1b6d beginnt. + + + rozpoczyna z nowym BRANCH o nazwie '``archaiczny'', ktory posiada stan 10 'commit' spowrotem od drugiego rodzica 'commit', ktorego klucz rozpoczyna sie na 1b6d. + + + + + bewegt den HEAD Bezeichner drei 'Commits' zurück. + + + przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. + + + + + bringt dich wieder in die Gegenwart. + + + sprowadzi cie znów do teraźniejszości. + + + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + + + dann 'Clone' es: + + + następnie sklonuj go: + + + + + das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie zuletzt geändert hat und wann. + + + które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. + + + + + den Zustand der Dateien des anderen Computer auf den übertragen, an dem du gerade arbeitest. + + + przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz + + + + + ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" Änderungen). + + + by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) + + + + + exit 1 fi + + + exit 1 fi + + + + + gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt werden kann. + + + produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. + + + + + http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine herkömmliche Datensicherung. + + + Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + + + + + http://git.or.cz/[Git] ist eine Art "Schweizer Taschenmesser" für Versionsverwaltung. + + + http://git.or.cz/[Git] to rodzaj scyzoryka szwajcarskiego dla kontroli wersji. + + + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + + + int main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + + + nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + + + po uprzednim dodaniu skryptu do `$ PATH`. + + + + + oder Mercurial: + + + albo Mercurial: + + + + + oder von einem der Mirrorserver: + + + albo z lustrzanego serwera: + + + + + origin/HEAD origin/master origin/experimentell + + + origin/HEAD origin/master origin/experimental + + + + + pick 5c6eb73 Link repo.or.cz hinzugefügt pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert pick 100834f Push-Ziel zum Makefile hinzugefügt + + + pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + + + + + um dein Skript herunterzuladen. + + + by mogli zładować skrypt. + + + + + um den 'Patch' anzuwenden. + + + By zastosować patch. + + + + + um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen. + + + możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + + + + + um die letzte Beschreibung zu ändern. + + + by zmienić ostatni opis. + + + + + um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. + + + by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. + + + + + um mehr zu erfahren. + + + by dowiedzieć się więcej. + + + + + um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. + + + by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, + + + + + um zur ursprünglichen Arbeit zurückzukehren. + + + by wrocic do poprzedniego zajęcia + + + + + und 'commite' bevor du auf den 'Master Branch' zurückschaltest. + + + i tylko jeszcze 'commit' zanim wrocisz do 'master branch'. + + + + + und Simsalabim! + + + i Simsalabim! + + + + + und das machst du für jede txt-Datei. + + + i zrób to z każdą następną daną textową. + + + + + und deine Nutzer können ihr Skript aktualisieren mit: + + + a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + + + + + und die letzten zehn 'Commits' erscheinen in deinem bevorzugten $EDITOR. Auszug aus einem Beispiel: + + + i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + + + + + und erstelle neue Aktualisierungsbundles mit: + + + a nowy 'bundle' tworzymy następnie poprzez: + + + + + und fahre mit deiner ursprünglichen Arbeit fort. + + + i kontynuujesz przerwane zajęcie + + + + + und jedermann kann Dein Projekt abrufen mit: + + + i każdy może teraz sklonować twój projekt przez: + + + + + und noch viel mehr + + + i tak dalej. + + + + + und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich die 'Commits' aus dem 'Bundle' durch Eingabe von: + + + i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + + + + untersuchen wes you can study for writing exporters, and also to transport repositories in a human-readable format. + + + + + + + + was Dir das Objekt im Klartext anzeigt. + + + polecenie to pokaże ci zawartość objektu jako tekst. + + + + + wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den ``bereinigt'' 'Branch' an. + + + zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. + + + + + wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. + + + To polecenie skasuje COMMIT o wybranym hash-u. + + + + + wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell aufrufst. + + + wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + + + + + zeigt den Namen des aktuellen 'Branch'. + + + pokaże nazwę aktualnego 'branch'. + + + + + zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + + + pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + + + + + Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + + Podobnie możesze celowo wykasować wybrane COMMITS. + + + + + Über die Zeit haben sich einige lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' mit dem offiziellen Zweig. + + + Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. + + + + + Übertrage ('push') dein Projekt auf den zentralen Server mit: + + + Przenieś (PUSH) twój projekt teraz na centralny serwer: + + + + + Üblicherweise ist deren Verhalten einstellbar. + + + Zazwyczaj ich zachowanie daje się ustawić. + + + + + Übrigens, die Dateien in +.git/objects+ sind mit zlib komprimiert, Du solltest sie also nicht direkt anschauen. + + + Na marginesie, dane w +.git/objects+ są spakowane poprzez zlib, nie powinieneś otwierać ich bezpośrednio. + + + + + Übung + + + Cwiczenie + + + + + diff --git a/pl/omegat-tmp/omegat/project_stats.txt b/pl/omegat-tmp/omegat/project_stats.txt new file mode 100644 index 0000000..ba9463f --- /dev/null +++ b/pl/omegat-tmp/omegat/project_stats.txt @@ -0,0 +1,24 @@ +03.07.13 22:08 +Projektstatistiken + + Segmente Wörter Zeichen (ohne Leerzeichen) Zeichen (mit Leerzeichen) +Insgesamt: 1210 14294 87064 100014 +Verbleiben: 102 562 3344 3832 +Einzigartig: 1183 14225 86704 99592 +Verbleiben einzigartig: 91 536 3219 3684 + + +Statistik einzelner Dateien: + +Dateiname Segmente Gesamt Verbleibende Segments Einzigartige Segmente Verbleibende einzigartige Segmente Wörter insgesamt verbleibende Wörter: einzigartige Wörter Verbleibende einzigartige Wörter Zeichen insgesamt (ohne Leerzeichen) verbleibende Zeichen (ohne Leerzeichen) einzigartige Zeichen (ohne Leerzeichen) verbleibende einzigartige Zeichen (ohne Leerzeichen) insgesamt Zeichen (mit Leerzeichen) verbleibende Zeichen (mit Leerzeichen) einzigartige Zeichen (ohne Leerzeichen) verbleibende einzigartige Zeichen (ohne Leerzeichen) +basic.txt 134 36 132 35 1180 172 1174 170 6723 1006 6699 998 7775 1153 7743 1143 +branch.txt 162 14 157 13 1880 97 1868 94 10989 511 10924 493 12759 611 12685 590 +clone.txt 149 30 141 24 1634 173 1609 156 10169 1110 10050 1023 11637 1246 11491 1144 +drawbacks.txt 80 5 78 3 1118 45 1116 43 6941 314 6937 310 7964 346 7960 342 +grandmaster.txt 149 13 146 12 1685 62 1679 60 10130 320 10098 312 11676 381 11639 370 +history.txt 133 0 128 0 1627 0 1619 0 9932 0 9862 0 11427 0 11352 0 +intro.txt 77 0 77 0 1069 0 1069 0 6489 0 6489 0 7478 0 7478 0 +multiplayer.txt 122 1 122 1 1421 2 1421 2 8715 14 8715 14 10011 15 10011 15 +preface.txt 44 0 44 0 557 0 557 0 3851 0 3851 0 4288 0 4288 0 +secrets.txt 144 1 142 1 1926 1 1916 1 11869 9 11823 9 13568 9 13514 9 +translate.txt 16 2 16 2 197 10 197 10 1256 60 1256 60 1431 71 1431 71 diff --git a/pl/omegat-tmp/pl-level1.tmx b/pl/omegat-tmp/pl-level1.tmx new file mode 100644 index 0000000..69640bd --- /dev/null +++ b/pl/omegat-tmp/pl-level1.tmx @@ -0,0 +1,6541 @@ + + + +
+
+ + + + Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' Anweisungen. + + + Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. + + + + + Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + + + A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + + + + + Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht installiert. + + + Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. + + + + + Erstelle ein Git 'Repository' für deine Dateien: + + + Utwóż GIT REPOSITORY dla twoich danych + + + + + Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. + + + Wyglada jakbysmy ta dana zmienili i COMMITED + + + + + Die Änderungen bleiben im .git Unterverzeichnis gespeichert und können wieder hergestellt werden, wenn der entsprechende SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" oben). + + + Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). + + + + + Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch Eingabe von: + + + Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + + + + + Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + + + $ git bisect reset + + + $ git bisect reset + + + + + Angenommen, wir sind bei D: + + + Zalozmym ze jestesmy w D: + + + + + Es stellt sich heraus, dass diese Notation immer den ersten Elternteil wählt. + + + Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. + + + + + Die Anweisung + + + Polecenie: + + + + + Um ein tarball-Archiv des Quellcodes zu erzeugen, verwende ich den Befehl: + + + Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + + + + + Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da andere Operationen dafür unglaublich effizient sind. + + + Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. + + + + + Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die Forschung SHA1 komplett unnütz macht. + + + Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + + + + + ... + + + ... + + + + + Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. + + + Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany + + + + + Computerspiele machten das lange Zeit so, viele von ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + + + Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + + + + + Außerdem kannst du sie komprimieren um Speicherplatz zu sparen. + + + Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. + + + + + In manchen Systemen benötigt der Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu sehen oder um eine Datei zum Bearbeiten zu öffnen. + + + W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + + + + + Git unter Microsoft Windows kann frustrierend sein: + + + Korzystanie z GIT pod Microsoft Windows może być frustrujące: + + + + + und erstelle neue Aktualisierungsbundles mit: + + + a nowy 'bundle' tworzymy następnie poprzez: + + + + + $ git bisect run mein_skript + + + $ git bisect run moj_skrypt + + + + + Stand sichern + + + Backup + + + + + Man kann das aber auch in einem einzigen Schritt ausführen mit: + + + Można to także wykonać za jednyym zamachem: + + + + + Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das? + + + Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + + + + + Dann gib ein: + + + Wpisujesz: + + + + + Wie auch immer, mit Git kannst du nicht viel falsch machen. + + + Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. + + + + + Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des 'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. + + + Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu + + + + + Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden Eigenschaften von Git. + + + niezwloczne BRANCHEN i MERGEN sa uderzajacymi wlasciwosciami GIT + + + + + Du kannst diese Änderungen sogar 'commiten'. + + + Mozesz te zmiany nawet COMMITEN. + + + + + Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. + + + GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* + + + + + Natürlich sind dann viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' übermittelt werden. + + + Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. + + + + + Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git log* angezeigt werden. + + + Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. + + + + + In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' gehalten werden und die Binärdatei außerhalb des Projekts. + + + W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. + + + + + Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. + + + na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. + + + + + Um das Löschen zu erzwingen, gib ein: + + + By wymusić skasowanie, podaj: + + + + + Schnelle Fehlerbehebung + + + Szybkie koregowanie bledow. + + + + + Aktualisiere das lokale 'Repository' erneut mit 'pull', löse eventuell aufgetretene 'Merge'-Konflikte und versuche es nochmal. + + + Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + + + + + $ git format-patch 1b6d + + + git format-patch 1b6d + + + + + Persönliche Erfahrungen + + + Osobiste doświadczenia + + + + + Wieder andere bevorzugen irgendetwas dazwischen. + + + Inni znowu wolą coś pomiędzy. + + + + + Du kannst sogar 'Branches' in einem 'Repository' umorganisieren. + + + Możesz nawet przeorganizować 'branches' w repozytorium. + + + + + Auch wenn Git die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + + + Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + + + + + Ich bin schnell in die Anwendung hineingewachsen und betrachtete viele Funktionen als selbstverständlich. + + + Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. + + + + + Im Gegensatz zu vielen anderen Versionsverwaltungssystemen funktioniert diese Operation offline, es wird nur von der lokalen Festplatte gelesen. + + + W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + + + + + Du willst zahlreiche, vor Manipulation geschützte, redundante Datensicherungen an unterschiedlichen Orten? + + + Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach + + + + + In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen 'bundlest', die in den anderen 'Repositories' fehlen. + + + W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. + + + + + Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und "A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen Bereich. + + + Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. + + + + + ---------------------------------- + + + ---------------------------------- + + + + + Ich habe diese Phänomen aus erster Hand erfahren. + + + Dowiedziałem się o tym fenomenie z pierwszej ręki. + + + + + Um wieder die Computerspielanalogie anzuwenden: + + + Jeśli znów skorzystamy z analogii do gier komputerkowych: + + + + + *Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. + + + *reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. + + + + + Erste Schritte + + + Pierwsze kroki + + + + + $ git config --global user.name "Max Mustermann" $ git config --global user.email maxmustermann@beispiel.de + + + $ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + + + + + um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen. + + + możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + + + + + Geschichtsstunde + + + Lekcja historii + + + + + Das gilt stellvertretenden für andere Anweisungen. + + + Reprezentuje to również wszystkie inne polecenia. + + + + + http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine herkömmliche Datensicherung. + + + Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + + + + + Du arbeitest an einem aktiven Projekt. + + + Pracujesz nad aktywnym projektem. + + + + + Einige Git Anweisungen lassen Dich ihn manipulieren. + + + Niektóre komendy git pozwolą ci nim manipulować. + + + + + Einige Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für unterschiedliche Webseiten. + + + Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron + + + + + Arbeite wie du willst + + + Pracuj jak chcesz + + + + + Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für alle relevant. + + + Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + + + + + Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach Herzenslust. + + + Przejdź teraz do nowego katalogu i pracuj według upodobania. + + + + + den Zustand der Dateien des anderen Computer auf den übertragen, an dem du gerade arbeitest. + + + przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz + + + + + Wenn du wieder zurück zu deinen Änderungen willst, tippe: + + + Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + + + + + Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + + + Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + + + + + Oder rufe den fünftletzten 'Commit' ab, mit: + + + Albo przywołaj 5 ostatnich 'commits' za pomocą: + + + + + Zum Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert wird. + + + Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany + + + + + Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + + Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + + + + + Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar ist. + + + Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. + + + + + Nichts könnte weiter von der Wahrheit entfernt sein. + + + Nic nie jest bardziej oddalone od rzeczywistości. + + + + + Übung + + + Cwiczenie + + + + + Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + + Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + + + + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + + + $ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + + + + + Man muss vom Hauptserver das alte gespeicherte Spiel anfordern. + + + Za każdym razem trzeba ściągnąć wszystkie dane z serwera. + + + + + bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + + + znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + + + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + + + Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. + + + Termin opublikowania pewnej wlasciwosci zbliza sie. + + + + + Ein dummer Aberglaube + + + Głupi przesąd + + + + + Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin süchtig nach schellen Ausführungszeiten. + + + Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + + + + + Die Entwicklung findet in den 'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis auskommen. + + + Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + + + + + Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir uns mit ihm auseinandersetzen um das bisherige zu erklären. + + + Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. + + + + + Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. + + + Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali + + + + + Alles, was man mit dem zentralen 'Repository' tun kann, kannst du auch mit deinem 'Clone' tun. + + + Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + + + + + Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + + Lokalne zmiany przekazujemy do serwera poleceniem: + + + + + Was habe ich getan? + + + Co ostatnio robilem? + + + + + Für jetzt, merke dir + + + zapamietaj jednak na razie, że: + + + + + In diesem Fall, gib folgendes ein: + + + W tym wypadku użyj komendy: + + + + + Menschen sind nicht gut im Kontextwechsel. + + + Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + + + + + Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. + + + Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. + + + + + Wo ging alles schief? + + + Gdzie wszystko poszło źle? + + + + + Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. + + + Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. + + + + + Auch wenn du den ``master'' 'Branch' umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch respektieren. + + + Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + + + + + Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der Änderungen. + + + Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. + + + + + Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' zuletzt gesendet wurde. + + + Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. + + + + + Deine Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so weiter. + + + Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi u tak dalej. + + + + + Zum Beispiel: + + + Na przyklad: + + + + + Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine Authentifizierung, also kann jeder das Projekt abrufen. + + + Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. + + + + + Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine historische Unwegbarkeiten umgehen. + + + Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. + + + + + Vielmehr schreibt Git die Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an ihren eigentlichen Bestimmungsort. + + + Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + + + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + + + Sagen wir, du hast einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt oder Dateien einer Website. + + + Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. + + + + + Ich musste lernen, wie man Projekte verwaltet, an denen mehrere Entwickler aus aller Welt beteiligt waren. + + + Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. + + + + + Du hast auch noch andere Optionen, z.B. den Aufschub der Entscheidung; drücke "?" + + + Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" + + + + + Schmutzarbeit + + + Brudna robota + + + + + $ git commit --amend -a + + + $ git commit --amend -a + + + + + Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst um dort einen 'Clone' zu platzieren. + + + Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + + + + + Keine Sorge, gib ein: + + + Nie ma sprawy, wpisz polecenie: + + + + + Rückgängig machen + + + Przywracanie + + + + + Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. + + + Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. + + + + + Mischmasch Reorganisieren + + + Reorganizacja chaosu + + + + + Auf Debian und Ubuntu, findet man dieses Verzeichnis unter +/usr/share/doc/git-core/contrib+. + + + W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + + + + + Wenn auch nicht so effizient wie mit dem systemeigenen Protokoll, kann Git über HTTP kommunizieren. + + + Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + + + + + Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter Form zu verwenden. + + + Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. + + + + + Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. + + + Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. + + + + + Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit Git zusammenarbeiten kann. + + + Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT + + + + + Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. + + + Niektóre projekty wymagają pliku historii zmian + + + + + Jeder kann oberflächliche Klone erstellen, die nur wenig oder gar nichts vom Verlauf des Projekts enthalten. + + + Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. + + + + + Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige Entwickler war. + + + Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. + + + + + Git überwacht immer das ganze Projekt, was normalerweise schon von Vorteil ist. + + + GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + + + + + Aber du bist mit der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas umformuliert werden. + + + Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. + + + + + Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. + + + Ta inna rzeczywistość, to tzw. branch <<branch, zajmiemy się tym w późniejszym czasie>>. + + + + + In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der Chronik eine schwierige Angelegenheit und den Administratoren vorbehalten. + + + W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. + + + + + Dieser spezielle 'Commit' repräsentiert einen leeren 'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git 'Repositories'. + + + Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + + + + + Der zweite Teil eines Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und getestet wurde. + + + Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. + + + + + Leere Unterverzeichnisse + + + Puste katalogi + + + + + Diese Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. + + + Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. + + + + + Ein 'Commit' kann mehrere Eltern haben, welchem folgen wir also? + + + COMMIT moze posiadac wiecej rodzicow, ktoremu wlasciwie nastepowac? + + + + + Da ich in erster Linie unter Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + + + Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + + + + + Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit 'tarball' Archiven oder *rsync* zu arbeiten. + + + Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. + + + + + Git lässt dich genauso arbeiten, wie du es willst. + + + GIT pozwoli ci pracować dokładnie tak jak chcesz. + + + + + Wie 'Clonen', 'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine weitere Stärke, die Git dir bietet. + + + Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. + + + + + Das ist unüblich. + + + Znajduje to dość szerokie zastosowanie + + + + + Da diese Anweisung aber auch zu ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option hinzufügen. + + + Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + + + + + Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. + + + Momo ich prostoty, wszystkie sa wazne i pozyteczne. + + + + + und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich die 'Commits' aus dem 'Bundle' durch Eingabe von: + + + i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + + + + und Simsalabim! + + + i Simsalabim! + + + + + Tatsächlich sind wir dem 'Mergen' schon lange begegnet. + + + W gruncie rzeczy spotkalismy sie juz wczesniej z MERGE. + + + + + Einfacher geht das mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + + Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + + + + + Im Gegensatz zu den meisten Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem Speicherplatz umzugehen. + + + W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. + + + + + Durch cleveres verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine Versionsgeschichte mit dem original 'Repository' teilt: + + + Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + + + + + Nach einer längeren Sitzung hast du einen Haufen 'Commits' gemacht. + + + Po dłuższej sesji zrobiłeś całą masę 'commits'. + + + + + Untracked .txt files. + + + untracket.txt files. + + + + + Argh! + + + Och! + + + + + Die Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer Kopie der ganzen Datei. + + + Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + + + + + $ git bisect bad + + + +$ git bisect bad + + + + + In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und Konvertierungswerkzeugen und so weiter. + + + W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. + + + + + Dadurch agieren nun alle Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, während deine Dateien unverändert erhalten bleiben. + + + Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. + + + + + Keine Sorge: Für solche Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + + Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + + + + + Zusätzlich habe ich mich dabei ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten meinem gewohnten Arbeitsablauf zu folgen. + + + Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + + + + + Quellcode veröffentlichen + + + +Publikowanie kodu źródłowego + + + + + Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts 'mergen' mit: + + + W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + + + + + Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver eingegangen sind, schlägt dein 'push' fehl. + + + Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. + + + + + Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein Arbeitsverzeichnis hat. + + + Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego + + + + + Du arbeitest also an Teil II und 'commitest' deine Änderungen regelmäßig. + + + Pracujesz w cześci 2 i regularnie wykonujesz COMMIT. + + + + + Ich war geschockt, als ich später gezwungen war ein zentralisiertes System zu benutzen. + + + Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. + + + + + Ein negativer Rückgabewert beendet die 'bisect'-Operation sofort. + + + Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + + + + + Jemanden zu fotografieren stiehlt nicht dessen Seele. + + + Fotografując kogoś nie kradziemy jego duszy. + + + + + Zum Konvertieren gib in einem leeren Verzeichnis ein: + + + Aby przekonwertować wejść do pustego katalogu: + + + + + dann 'Clone' es: + + + następnie sklonuj go: + + + + + Dann 'branche' zu Teil II: + + + Najpierw zmień BRANCH do części drugiej + + + + + Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen Format einliest um eine Git Chronik von Anfang an zu erstellen. + + + W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. + + + + + Beide laden ihre Änderungen hoch. + + + Obydwoje ładują swoje zmiany na serwer. + + + + + Normalerweise füllt man ein Formular auf einer Website aus. + + + Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + + + + + Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie auch die ganze Geschichte bis zum angegebenen Punkt mit sich. + + + Jednak CLONEN niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. + + + + + Glücklicherweise hat Git eine Abkürzung dafür, die genauso komfortabel ist wie eine Fernbedienung: + + + Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + + + + + Initialer 'Commit' + + + Pierwszy 'commit' + + + + + Siehe *git help stash*. + + + Zobacz *git help stash*. + + + + + Hast Du es zu lange versäumt zu 'comitten'? + + + Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? + + + + + und 'commite' bevor du auf den 'Master Branch' zurückschaltest. + + + i tylko jeszcze COMMIT zanim wrocisz do MASTER BRANCH. + + + + + Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. + + + Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* + + + + + Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. + + + Może pytasz się, czy BRANCHES są warte tego zachodu. + + + + + Das erfordert aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch aufrufen, wenn sie eine Datei bearbeiten. + + + Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + + + + + Hast du gravierende Änderungen vor? + + + Masz zamiar dokonania wielu zmian? + + + + + Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den vorhergehenden 'Commit'. + + + Zwyczajnie kazdy COMMIT posiada rodzica-COMMIT, a mianowicie poprzedni COMMIT. + + + + + Trotz seiner Größe, +einedatei+ enthält das komplette original Git 'Repository'. + + + Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + + + + + Es enthält nur Dateien, die normalerweise im '.git' Unterverzeichnis versteckt sind. + + + Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. + + + + + - Ersetze `pick` mit: * `edit` um einen 'Commit' für 'amends' zu markieren. + + + - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. + + + + + Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. + + + Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. + + + + + Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + + Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + + + + + beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen Hashwert mit 1b6d beginnt. + + + rozpoczyna z nowym BRANCH o nazwie '``stare', ktory posiada stan 10 COMMIT spoowrotem od drugiego rodzica COMMIT, ktorego hash rozpoczyna sie na 1b6d. + + + + + Finde heraus was du seit dem letzten 'Commit' getan hast: + + + Znajdz co zrobiles od ostatniego COMMIT: + + + + + Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. + + + O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. + + + + + nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + + + po uprzednim dodaniu skryptu do `$ PATH`. + + + + + Einen Klon zu erstellen ist aufwendiger als in anderen Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + + + Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + + + + + So wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' mit abweichender Chronik hat und die Zweige sich austauschen sollen. + + + Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + + + + + Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch ging. + + + Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. + + + + + 'Nackte Repositories' + + + Gołe REPOSITORIES + + + + + Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + + + No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + + + + + um zur ursprünglichen Arbeit zurückzukehren. + + + by wrocic do poprzedniej pracy + + + + + Wo kommt dieser Fehler her? + + + Skąd wziął się ten błąd? + + + + + Du kannst diese Notation mit anderen Typen kombinieren. + + + mozesz ta notacje kombinowac takze z innymi typami + + + + + Leute machen kleine Änderungen von Version zu Version. + + + Ludzie robią jednak pomniejsze zmiany z wersji na wersję. + + + + + Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor der Operation. + + + Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. + + + + + Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren und für andere Benutzer veröffentlichen will. + + + Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. + + + + + KOPF-Jagd + + + Łowcy głów + + + + + Das ist wie bei den Spielen der alten Schule, die nur Speicherplatz für eine Sicherung hatten: sicherlich konntest du speichern, aber du konntest nie zu einem älteren Stand zurück. + + + To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. + + + + + Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem zentralisierten Versionsverwaltungssystem: Das Zuhause deines Projekts. + + + BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu + + + + + Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. + + + Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. + + + + + Was, wenn du am Ende die temporären Änderungen sichern willst? + + + A co jesli chcesz zapamietac wprowadzone zmiany? + + + + + 'Branch'-Magie + + + Magia BRANCH + + + + + 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne Netzwerkverbindung. + + + Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. + + + + + Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und vielleicht bist du mit einem anderen System besser dran. + + + Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. + + + + + Aus diesem Grund plädiere ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man Mercurial bevorzugt. + + + Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial + + + + + Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + + Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + + + + + B ist identisch mit A, außer dass einige Dateien gelöscht wurden. + + + B rozni sie od A, jedynie tym, ze usunieto kilka plikow. + + + + + Wenn dein Projekt viele Entwickler hat, musst du nichts tun! + + + Jeśli projekt posiada wielu programistów, nie musisz niczego robić + + + + + Um auf die aktuelle Server-Version zu aktualisieren: + + + Aby zaktualizować do wersji na serwerze: + + + + + Wir erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß permanent. + + + Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + + + + + Trotzdem kann es langwierig sein, den exakten Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. + + + Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. + + + + + Um das zu tun, klickst du auf auf Speichern in deinem vertrauten Editor. + + + W tym celu klikasz na 'zapisz' w wybranym edytorze. + + + + + $ git diff 1b6d > mein.patch + + + $ git diff 1b6d > moj.patch + + + + + Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. + + + Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` + + + + + Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die Details selbst erarbeiten. + + + Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. + + + + + um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. + + + by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. + + + + + Du kannst sogar die frisch gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + + Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + + + + + $ chmod a+x hooks/post-update + + + chmod a+x hooks/post-update + + + + + Ich nehme alles zurück + + + Wycofuję wszystko co na ten temat powiedziałem. + + + + + Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. + + + Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. + + + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + + + Wenn es mit einem der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon jemand ein Skript geschrieben hat, das die gesamte Chronik für Git exportiert. + + + Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + + + + + Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? + + + A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? + + + + + $ git checkout -f HEAD^ + + + $ git checkout -f HEAD^ + + + + + Um Dateien zu bekommen, erstellst du einen 'Clone' des gesamten 'Repository'. + + + By pozyskać dane, tworzysz klon całej REPOSITORY. + + + + + 'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern und Menschen gleichermaßen einfach verstanden werden. + + + 'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. + + + + + Normalerweise können wir den Index ignorieren und so tun als würden wir direkt aus der Versionsgeschichte lesen oder in sie schreiben. + + + Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. + + + + + Um den neuen Stand zu sichern: + + + Aby zapisac nowy stan: + + + + + $ git rebase -i HEAD~10 + + + $ git rebase -i HEAD~10 + + + + + Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein 'bare Repository' ist; andernfalls benutze 'pull'. + + + Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + + + + + Beschaffe dir die `hg-git`-Erweiterung mit Git: + + + Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + + + + + Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach verändert werden kann. + + + Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. + + + + + Angenommen du hast Teil I 'commitet' und zur Prüfung eingereicht. + + + Przyjmijmy, że wykonałeś COMMIT pierwszej części i przekazałeś do sprwadzenia. + + + + + Mit der Zeit können einige davon zu offiziellen Anweisungen befördert werden. + + + Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. + + + + + 'Push' oder 'Pull' + + + PUSH albo PULL + + + + + Tippe: + + + Wpisz: + + + + + Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu sehen was auf dem anderen Kanal los ist. + + + Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. + + + + + Unterschiede sind schnell gefunden, weil nur die markierten Dateien untersucht werden müssen. + + + Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + + + + + Solange Deine Mitstreiter ihre eMails lesen können, können sie auch Deine Änderungen sehen. + + + Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. + + + + + Mein 'Commit' ist zu groß! + + + Mój 'commit' jest za duży! + + + + + Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + + Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + + + + + Patches: Das globale Zahlungsmittel + + + Patches: globalny środek płatniczy + + + + + Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt wird. + + + Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok + + + + + Dann, wenn du den Fehler behoben hast: + + + Jak juz uporasz sie z bledem: + + + + + Dafür ist es nun zu spät. + + + Na to jest już za późno. + + + + + Der zweite Schritt speichert dauerhaft den Schnappschuß, der sich nun im Index befindet. + + + Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. + + + + + Diese Spiele versteckten die Details vor dem Spieler und präsentierten eine bequeme Oberfläche um verschiedene Versionen des Ordners zu verwalten. + + + Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + + + + + 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + + + 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + + + + + Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon heute wäre es technisch machbar für finanzkräftige Unternehmen Hash-Kollisionen zu finden. + + + Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach + + + + + Der ``master'' 'Branch' ist ein nützlicher Brauch. + + + MASTER BRANCH jest bardzo użytecznym + + + + + Prüfe, ob die 'filter-branch' Anweisung getan hat was du wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' Operationen durchführst. + + + Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + + + + + 'Fork' eines Projekts + + + FORK projektu + + + + + Geheime Quellen + + + Utajnione Zródła + + + + + Git versteht beide Gesichtspunkte. + + + Git jest wyrozumiały dla oby dwuch stron. + + + + + Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' abzuarbeiten. + + + Może lubisz odpracować wszystkie aspekty projektu w + + + + + Das kannst du mit folgendem Befehl erstellen: + + + Możesz go utwoszyć korzystając z polecenia: + + + + + Es liegt an dir diese weise zu nutzen. + + + Stosowanie tej możliwości zależy od ciebie + + + + + Aber auch wenn wir ein normales 'Repository' auf dem zentralen Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. + + + Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. + + + + + $ git branch -M source target # instead of -m + + + git branch -M zrodlo cel # zamiast -m + + + + + Arbeit ist Spiel + + + Praca jest zabawą + + + + + Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf Git aufbauen. + + + Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. + + + + + Ich habe einfach vorausgesetzt, dass andere Systeme ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht anders sein als die Auswahl eines Texteditors oder Internetbrowser. + + + Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + + + + + Wenn du einen 'Commit' mit 'edit' markiert hast, gib ein: + + + Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + + + + + $ git init $ git add . + + + + + + + + Führe *git add* aus um sie hinzuzufügen und dann die vorhergehende Anweisung. + + + Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + + + + + Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. + + + Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. + + + + + Es ist als ob der Hauptserver gespiegelt wird. + + + Wygląda to jak klonowanie serwera. + + + + + Mit der `hg-git`-Erweiterung kann ein Benutzer von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus 'pullen'. + + + Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + + + + + Wenn du nun eine alte Version erhalten willst, musst du den ganzen Ordner archivieren. + + + Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. + + + + + Benutze *git submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten willst. + + + Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + + + + + Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine schnellere Methode vorstellt wird. + + + Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. + + + + + Aber manchmal arbeite ich an meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich inzwischen nicht austauschen können. + + + Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + + + + + Dann 'commite' dein Projekt und gib ein: + + + Wtedy COMMIT twój projekt i wykomaj: + + + + + Dann tippe: + + + Wpisz wtedy: + + + + + Aber stell Dir vor, Du hast ihn niemals notiert? + + + Wyobraź jednak sobie, że nigdy go nie notowałeś? + + + + + Sie alle haben bequeme Schnittstellen um Ordner voller Dateien zu verwalten. + + + Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. + + + + + Ultimative Datensicherung + + + Ultymatywny backup danych + + + + + und jedermann kann Dein Projekt abrufen mit: + + + i każdy może teraz sklonować twój projekt przez: + + + + + Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein 'Repository' ab. + + + W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY + + + + + Dateien ohne Bezug + + + Pliki z brakiem odniesienia + + + + + Auch wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser Faustregel weniger anfällig für falsche Vergleiche. + + + Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + + + + + Die letztere kann verwendet werden um SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich gestutzt wurde. + + + Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + + + + + Normalerweise ändern sich immer nur wenige Dateien zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. + + + W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. + + + + + Wenn mehrere 'Branches' mit unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' gemacht wird, ist ein manuelles Eingreifen erforderlich. + + + Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + + + + + Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten 'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. + + + Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. + + + + + Genau deswegen gibt es Releasezyklen. + + + Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. + + + + + Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem fatalen Fehler zu beenden. + + + Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. + + + + + In vielen Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + + + W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + + + + + Auf Git bauen + + + Budować na git + + + + + Die meisten Systeme wählen automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + + + Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + + + + + Oder noch besser, anpacken und mithelfen. + + + Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + + + + + Erstelle eine Dummy-Datei um dieses Problem zu umgehen. + + + Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + + + + + Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst: + + + Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + + + + + Vielleicht kann ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich in der Vergangenheit gebraucht habe. + + + Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + + + + + Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. + + + To zadanie dla *git rebase*, jak wyżej opisane. + + + + + Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls wird Git alle Änderungen 'comitten'. + + + Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + + + + + Das setzt voraus, dass sie einen SSH-Zugang haben. + + + Wymaga to od nich posiadanie klucza SSH do twojego komputera. + + + + + Verliere nicht Deinen KOPF + + + Nie trać głowy + + + + + Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit jedem 'Commit' erhöht wird. + + + Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". + + + + + Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den Rest. + + + Teraz MASTER BRANCH zawiera cześć 1 a BRANCH czesc2 posiada resztę. + + + + + Wenn du Glück hast oder sehr gut bist, kannst du die nächsten Zeilen überspringen. + + + Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + + + + + $ git reset --hard 1b6d + + + $ git reset --hard 1b6d + + + + + - Entferne 'Commits' durch das Löschen von Zeilen. + + + - usuń 'commits' poprzez skasowanie lini. + + + + + pick 5c6eb73 Link repo.or.cz hinzugefügt pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert pick 100834f Push-Ziel zum Makefile hinzugefügt + + + pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + + + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + + + Durch das Herauspicken der Rosinen kannst du einen 'Branch' konstruieren, der nur endgültigen Code enthält und zusammengehörige 'Commits' gruppiert hat. + + + Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + + + + + Fortgeschrittenes Rückgängig machen/Wiederherstellen + + + Zaawansowane usuwanie/przywracanie + + + + + Gewagte Kunststücke + + + Śmiałe wyczyny + + + + + Erinnere Dich an das erste Kapitel: + + + Przypomnij sobie pierwszy rozdział: + + + + + Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf irgendeine Weise für die Bearbeitung zu kennzeichnen. + + + Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. + + + + + Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen hinauswachsen. + + + Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. + + + + + Nicht nur des aktuellen Stand, sondern der gesamten Geschichte. + + + Nie tylko jedo aktualny stan, lecz również jego całą historię. + + + + + Git hat mir bewundernswert gedient und hat mich bis jetzt noch nie im Stich gelassen. + + + Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. + + + + + Oder seit Gestern: + + + Albo od wczoraj + + + + + SHA1 Schwäche + + + Słabości SHA1 + + + + + Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer bestimmten Nachricht enthält. + + + Utworzylismy REPOSITORY, ktora posiada dana z ta zawartoscia + + + + + Musst Du während eines Notfalls improvisieren? + + + Musisz improwizować w nagłym wypadku? + + + + + In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. + + + W sali sądowej można pewne zdarzenia wykreślić z akt. + + + + + Ich hatte noch keinen Grund zu wechseln. + + + Nie miałem jeszcze powodu do zmiany. + + + + + Eines Tages brauchst du vielleicht dringend einen Schraubendreher, dann bist du froh mehr als nur einen einfachen Flaschenöffner bei dir zu haben. + + + Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + + + + + Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* benannt und gesichert werden kann. + + + Innymi slowami, po przywolaniu starego stanu GIT automatychnie zamienia sie w nowy, nienazwany BRANCH, ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + + + + + Eine gute erste Annäherung ist, dass alles was eine zentralisierte Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. + + + Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. + + + + + Warum ich Git benutze + + + Dlaczego korzystam z GIT + + + + + Wenn alle 'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu lassen, da jegliche Kommunikation über SSH läuft. + + + Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + + + + + - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. + + + - *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. + + + + + Versuche + + + Wypróbuj polecenie: + + + + + Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das bekannteste freie verteilte Versionsverwaltungssystem ist. + + + Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + + + + + $ git am < email.txt + + + $ git am < email.txt + + + + + Oder noch schlimmer, deine aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz vorne beginnen. + + + Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + + + + + $ git pull einedatei + + + +$ git pull plik + + + + + Anhang A: Git's Mängel + + + Załącznik A: Wady GIT + + + + + Leider gibt es noch ein paar Problemfälle. + + + Niestety występuje jeszcze kilka innych problemów. + + + + + Mit Git ist 'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + + + Z GIT MERGE jest tak prostem, ze czasami nawet nie zauwazysz, gdy to nastepuje + + + + + *Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. + + + *clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. + + + + + Der Index: Git's Bereitstellungsraum + + + Index: ruszkowanie gita + + + + + Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten Version, falls du später mit ihnen interagieren möchtest. + + + Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + + + + + Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + + Akurat gdy strasznie zajety biezacymi zadaniami w projekcie otrzymujesz polecenie zajecie sie bledem w COMMIT 1b6d... + + + + + Am schrecklichsten sind fehlende Dateien wegen eines vergessenen *git add*. + + + Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. + + + + + Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten. + + + Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + + + + + Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung gekommen, als wir das Laden alter Stände besprochen haben. + + + Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow + + + + + Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? + + + Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? + + + + + Führe die Anweisungen des anderen Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale 'Repository' zu übertragen. + + + Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + + + + + Lasse den -global Schalter weg um diese Einstellungen für das aktuelle 'Repository' zu setzen. + + + Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + + + + + Das Beispiel 'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation über 'Git-agnostic transports' wie z.B. HTTP benötigt. + + + Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. + + + + + Ebenso, wenn Git Dateien vergessen soll: + + + To samo, gdy chcesz by GIT zapomnial o plikach: + + + + + Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung eingegeben? + + + Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? + + + + + In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation um Dateien zu bekommen. + + + W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. + + + + + Und wenn der Chef in diesem Verzeichnis herumschnüffelt, tippe: + + + A gdy szef grzebie w twoim katalogu, wpisz: + + + + + Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel. + + + Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. + + + + + Ein Liste aller 'Branches' bekommst du mit: + + + Listę wszystkich BRANCHES otrzymasz poprzez: + + + + + Du magst Kopieren und Einfügen von Hashes nicht? + + + Nie lubisz kopiować i wklejać hash-ów? + + + + + Irgendwann wirst du dann mit den anderen synchronisieren wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen Versionsverwaltungssystem und gib ein: + + + Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + + + + + Globaler Zähler + + + Licznik globalny + + + + + Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' werden: + + + Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + + + + + Dieser Zyklus wiederholt sich ein paar Mal bevor du zum 'Pushen' in den zentralen Zweig bereit bist. + + + Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + + + + + Unbeständige Projekte + + + Niestałe projekty + + + + + $ git push web.server:/pfad/zu/proj.git master + + + $ git push web.server:/sciezka/do/proj.git master + + + + + Vielleicht können Dateiformate geändert werden. + + + Ewentualnie można czasami zmienić format danych. + + + + + Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von Mitstreitern einbinden. + + + Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów + + + + + Viele Git Befehle funktionieren nicht in 'bare Repositories'. + + + Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH + + + + + Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange Geschichte existiert, aber auf Dauer wird es sich lohnen. + + + Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. + + + + + Der Absender erstellt ein 'Bundle': + + + Nadawca tworzy 'bundle': + + + + + Aber deshalb ein einfacheres, schlecht erweiterbares System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen zu verwenden. + + + Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + + + + + Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. + + + Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. + + + + + [[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum auch immer, drei Versionen zurückgehen um ein paar print Anweisungen einzufügen, damit du siehst, wie etwas funktioniert. + + + [[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzaialanie. + + + + + Für eine vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur Versionsverwaltung]. + + + Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + + + + + Wenn du deine Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + + Po skończeniu dochodzenia przejdź do orginalnego stanu: + + + + + Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten zukünftigen Operationen dann schnell und offline erfolgen. + + + Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. + + + + + Git von Anfang an zu benutzen, ist wie ein Schweizer Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen geöffnet werden. + + + Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. + + + + + Der Empfänger kann das sogar mit einem leeren 'Repository' tun. + + + Odbiorca może to zrobić z pustym repozytorium. + + + + + Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. + + + Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. + + + + + exit 1 fi + + + exit 1 fi + + + + + Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. + + + Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. + + + + + Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. + + + Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. + + + + + Das war eine Schande, denn vielleicht war deine vorherige Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du später gerne noch einmal zurückkehren möchtest. + + + To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. + + + + + [[makinghistory]] Du möchtest ein Projekt zu Git umziehen? + + + [[makinghistory]] Masz zamiar przenieść projekt do git? + + + + + - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene. + + + - *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + + + + + Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab: + + + Nie ma sprawy, jednak najpierw zabezpiecz dane. + + + + + Jeder 'Commit' ab jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen Namen geben können. + + + Kazdy COMMIT od teraz prowadzi woje dane inna droga, ktorej mozemy rowniez nadac nazwe. + + + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + + + Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die so ein System bietet. + + + Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. + + + + + Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht. + + + Bedac szczery, przez pierwsze miesiace pracy z GIT nie potrzebowalem zadnych innych, niz opisanych w tym rozdziale + + + + + Die zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird oder die ganze Zeile überarbeiten. + + + Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + + + + + Hättest du nur die Funktion während der Entwicklung getestet. + + + A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + + + + + Mit zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server herunterladen. + + + Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. + + + + + Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + + Zamiast kopiować i wklejać klucze z 'reflog', możesz: + + + + + Ein Auto, das repariert werden soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. + + + Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. + + + + + Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + + + Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + + + + + Der Unterschied zwischen A und B sind die gelöschten Dateien. + + + Roznica miedzy A i B, to skasowane pliki. + + + + + Die *pull* Anweisung holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese dann mit dem aktuellen 'Branch'. + + + Polecenie *pull* za pomoca ('fetch') laduje COMMITS i je zespala ('merged'), wtedy z aktualnym BRANCH. + + + + + Übertrage ('push') dein Projekt auf den zentralen Server mit: + + + Przenieś (PUSH) twój projekt teraz na centralny serwer: + + + + + Sogar einige Git Anweisungen selbst sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. + + + Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. + + + + + Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon 'pullen'. + + + W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + + + + + Du kannst den Zustand des Ordners sichern so oft du willst und du kannst später jeden Sicherungspunkt wieder herstellen. + + + Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. + + + + + Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + + + GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + + + + + Andere denken, daß Zweige vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit losgelassen werden. + + + Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. + + + + + Außerdem waren sich die Entwickler der Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen bewusst. + + + Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + + + + + Lokale Änderungen zum Schluß + + + Końcowe lokalne zmian + + + + + Versionsverwaltungen sind nicht anders. + + + Systemy kontroli wersji nie różnią się tutaj zbytnio. + + + + + Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien überwacht. + + + Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. + + + + + Git war das erste Versionsverwaltungssystem, das ich benutzt habe. + + + Git był pierwszym systemem kontroli wersji którego używałem. + + + + + Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden: + + + Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + + + + + Natürlich funktioniert der Trick für fast alles, nicht nur Skripts. + + + Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + + + + + Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten 'pull'-Befehl zu bleiben? + + + Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? + + + + + Dann auf dem anderen: + + + Potem na następnym: + + + + + Nach ein paar Durchläufen wird dich diese binäre Suche zu dem 'Commit' führen, der die Probleme verursacht. + + + Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. + + + + + Wenn Anwender langsame Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss unterbrochen wird. + + + Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + + + + + $ git checkout master . + + + $ git checkout master + + + + + In diesem Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. + + + W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. + + + + + Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, gibt es keinen Sicherheitsüberprüfungen mehr. + + + Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. + + + + + Von jetzt an wird + + + Od teraz poleceniem: + + + + + Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für mehr. + + + Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + + + + + Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen jedes nur die in Beziehung stehenden Dateien enthält. + + + Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. + + + + + Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte Anweisungen scheuen, bis sie absolut notwendig sind. + + + Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. + + + + + Du willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und hinter den offiziellen Änderungen sehen. + + + Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + + + + + wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell aufrufst. + + + wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + + + + + Kleinere Verfehlungen sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + + + Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + + + + + Wer bin ich? + + + Kim jestem? + + + + + Wir müssen die Datei aus allen 'Commits' entfernen: + + + Musimy ten plik usunąć ze wszystkich 'commits': + + + + + Im Gegensatz dazu habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu benutzen. + + + W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. + + + + + Der angegebene Pfad wird stillschweigend überschrieben. + + + Podana ścieżka zostanie bez pytania zastąpiona. + + + + + Jetzt lass uns das Problem etwas komplizierter machen. + + + Skomplikujmy teraz trochę cały ten problem. + + + + + Wir können solche Dateien hin und her schicken um Git 'Repositories' über jedes beliebige Medium zu transportieren, aber ein effizienteres Werkzeug ist *git bundle*. + + + W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + + + + + Der erster Klon + + + Pierwszy klon + + + + + bringt dich wieder in die Gegenwart. + + + sprowadzi cie znów do teraźniejszości. + + + + + Mit anderen Worten, es verwaltet die Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner beliebigen Version. + + + Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + + + + + Dann sage deinen Nutzern: + + + Następnie udostępnij link twoim użytkownikom: + + + + + Du kannst auch 'Commits' aufteilen. + + + Możesz również podzielć 'commits'. + + + + + $ git clone http://web.server/proj.git + + + $ git clone http://web.server/proj.git + + + + + Allgemein, *filter-branch* lässt dich große Bereiche der Chronik mit einer einzigen Anweisung verändern. + + + Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + + + + + Oder anders gesagt, du spiegelst den zentralen Server. + + + Lub inaczej mówiąc, odzwierciedlasz zentralny server. + + + + + Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je komplizierter der Kontextwechsel ist, desto größer ist der Verlust. + + + Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty + + + + + Das 'Mergen' mehrerer 'Branches' erzeugt einen 'Commit' mit mindestens zwei Eltern. + + + MERGEN kilku BRANCHES wytwarza COMMIT z minimum 2 rodzicami-COMMIT. + + + + + Wird irgendein 'Clone' beschädigt, wird dies dank des kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit anderen zu kommunizieren. + + + Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + + + + + Andere bestehen auf dem anderen Extrem: mehrere Fenster, ganz ohne Tabs. + + + Inni upierają się przy tym: więcej okien, zupełnie bez tabs. + + + + + Machst Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + + + Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + + + + + Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und überlassen die schwierigen uns Menschen. + + + Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. + + + + + 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. + + + Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. + + + + + Das wirft die Frage auf: Welchen 'Commit' referenziert `HEAD~10` tatsächlich? + + + To nasuwa pytanie; ktoremu COMMIT referencuje HEAD++10 wlasciwie? + + + + + Wenn nicht, ersetzte "bad" mit "good". + + + Jeśli nie, zamień "bad" na "good". + + + + + Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben: + + + Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + + + + + Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. + + + Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. + + + + + 'Commite' Änderungen + + + Zmiany 'commit' + + + + + Dumme Fehler verschmutzen meine 'Repositories'. + + + Głupie błędy zaśmiecają moje repozytoria. + + + + + In einem Git 'Repository' gib ein: + + + W repozytorium git natomiast podajesz: + + + + + Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. + + + Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 + + + + + Leere Unterverzeichnisse können nicht überwacht werden. + + + Nie ma możliwości wersjonowania pustych katalogów. + + + + + Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + + By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + + + + + Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben Zeile. + + + Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. + + + + + Irren ist menschlich und so kann es vorkommen, dass du zurück zu Teil I willst um einen Fehler zu beheben. + + + Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. + + + + + $ git config gc.pruneexpire "30 days" + + + $ git config gc.pruneexpire "30 days" + + + + + Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + + + I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + + + + + Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, erstelle temporären Code und so weiter und 'commite' deine Änderungen oft. + + + Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. + + + + + Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche Versionsgeschichte die beiden Versionen automatisch synchron bleiben. + + + Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. + + + + + Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung gesucht, nicht ein Versionsverwaltungssystem. + + + Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. + + + + + Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. + + + Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. + + + + + Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen: + + + Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + + + + + Ich vermute, dass ich damit nicht alleine bin und der Vergleich hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + + + Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + + + + + $ git bundle create einedatei HEAD + + + $ git bundle create plik HEAD + + + + + Stattdessen stellen wir uns wieder vor, wir editieren ein Dokument. + + + Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + + + + + Irgendwo speicherte ein Server alle gespeicherten Spiele, sonst niemand. + + + Jeden serwer zapamiętywał wszystkie gry, nikt inny. + + + + + Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das meiste verstanden haben. + + + W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. + + + + + Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + + + Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak czesto zechcesz, niezaleznie od tego w kazdej z tych wersji mozesz COMMITEN + + + + + Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen Anweisung. + + + Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. + + + + + Wenn ich zur ursprünglichen Arbeit zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr Zeit beim Versuch mich zu erinnern was ich getan habe. + + + Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. + + + + + Standardmäßig beginnst du in einem 'Branch' namens ``master''. + + + Standardowo zaczynasz w BRANCH zwanym MASTER. + + + + + Doch anstelle ein paar Knöpfe zu drücken, machst du 'create', 'check out', 'merge' und 'delete' von temporären 'Branches'. + + + Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. + + + + + Warum mehrere Tabs unterstützen und mehrere Fenster? + + + Dlaczego pozwalają używać tabs albo okien? + + + + + Das heißt, nachdem Du ein 'Bundle' gesendet hast, gib ein: + + + To znaczy, po wysłaniu 'bundle', podaj: + + + + + Das Neueste vom Neuen + + + Najnowsze z nowych + + + + + Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können Verwirrungen entstehen. + + + Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + + + + + Aber, wenn du an der Vergangenheit manipulierst, sei vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. + + + Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. + + + + + bewegt den HEAD Bezeichner drei 'Commits' zurück. + + + przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. + + + + + Vielleicht habe ich meine Kreditkartennummer in einer Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. + + + Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? + + + + + Changelog erstellen + + + Utwożenie historii + + + + + Jeder 'Clone' deines Codes ist eine vollwertige Datensicherung. + + + Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa + + + + + Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. + + + Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. + + + + + Einfach: + + + Proste; + + + + + 'Mergen' + + + MERGEN + + + + + Oder zwischen irgendeiner Version und der vorvorletzten: + + + Albo miedzy jakakolwiek wersja a przedostatnia: + + + + + Einige lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. + + + Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. + + + + + Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' einfach, aber das Zusammenfügen ('Mergen') ist schwierig. + + + Za pomoca niektorych systemow kontroli wersji utworzenie nowegoi BRANCH moze i jest prostem, jednak pozniejsze MERGE trudne. + + + + + Speichere und Beende. + + + Zapamietaj i zakończ. + + + + + 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'. + + + Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + + + + + Glücklicherweise ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + + + Na szczęście jest to silną stroną git i chyba jego racją bytu. + + + + + Zuerst, 'pull' funktioniert nicht mit 'bare Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später behandeln. + + + Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. + + + + + Zum Beispiel, nehmen wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien haben: + + + Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + + + + $ git format-patch 1b6d..HEAD^^ + + + $ git format-patch 1b6d..HEAD^^ + + + + + Die aktuelle Implementierung von Git, weniger sein Design, ist verantwortlich für diesen Pferdefuß. + + + To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. + + + + + Immerhin sind 'Clone' fast genauso schnell und du kannst mit *cd* anstelle von esoterischen Git Befehlen zwischen ihnen wechseln. + + + Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + + + + + und fahre mit deiner ursprünglichen Arbeit fort. + + + i kontynnuj przerwany prace + + + + + Hätte ich mein Projekt fertig gestellt, wäre ich trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + + + Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + + + + + Ein beliebter Vertreter ist +workdir/git-new-workdir+. + + + Ulubionym przedstawicielem jest +workdir/git-new-workdir+. + + + + + Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + + Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + + + + Das funktioniert wahrscheinlich ganz gut, wenn auch unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen Dateien braucht. + + + Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + + + + + Aber, das überschreibt die vorherige Version. + + + Jednak, przepisze to poprzednią wersję. + + + + + Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. + + + Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom + + + + + Mit ein bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen entspricht. + + + Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + + + + + Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in Versionsverwaltungssystemen die einzelne Dateien überwachen. + + + Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + + + + + Wer ist verantwortlich? + + + Kto ponosi odpowiedzialność? + + + + + Da war auch ein interessanter http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige Engpässe zu vermeiden. + + + Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. + + + + + Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, bezogen auf 'Commits', hält sich Git nicht an diese Konvention. + + + Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. + + + + + Du kannst die Nummer für den ersten Elternteil weglassen. + + + Mozesz pominac numer pierwszego rodzica + + + + + Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. + + + Możesz pracować nad dwoma funkcjami jednocześnie + + + + + Um das Leben zu vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die Firmware. + + + By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + + + + + Zum Beispiel ist `git checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu komprimieren als eine Sammlung von Änderungen auf Dateibasis. + + + Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + + + + + um dein Skript herunterzuladen. + + + by mogli zładować skrypt. + + + + + Hast Du so versessen programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? + + + Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? + + + + + 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. + + + Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. + + + + + Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto und erstellen ein 'Repository' in Deinem Webverzeichnis: + + + Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + + + + + Versionsverwaltung im Untergrund + + + Zarządzanie wersją w poddziemiu + + + + + Chronik umschreiben + + + Przepisanie historii + + + + + Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + + Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + + + + + Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, wird von unzähligen Projekten benutzt. + + + Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. + + + + + Dann mache diese Änderungen und gib ein: + + + Wykonaj je i wpisz: + + + + + Dann erstelle ein Git 'Repository' in deinem Arbeitsverzeichnis: + + + Utwórz GIT REPOSITORY w katalogu roboczym + + + + + Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel ein Spieler geleistet hat. + + + Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + + + + + 'Merge' Konflikte + + + Konflikty z 'merge' + + + + + Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der ganze Verlauf geklont wird. + + + Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + + + + + Einfaches Veröffentlichen + + + Uproszczone publikowanie + + + + + *Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. + + + *Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. + + + + + Er muss sicher sein, aber nicht privat. + + + Musi być bezpieczne, jednak nie musi być prywatne + + + + + Dateihistorie + + + Historia pliku + + + + + Bei einem Mercurial Projekt gibt es gewöhnlich immer einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt automatisch die Benutzer von Mercurial mit einbezieht. + + + W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + + + + + Sei vorsichtig, wenn Du 'checkout' auf diese Weise benutzt. + + + Bądź ostrożny stosując 'checkout' w ten sposób. + + + + + Du kannst noch viel mehr machen: die Hilfe erklärt, wie man 'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu beschleunigen. + + + Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + + + + + Wenn nötig, starte den Git-Dämon: + + + Jeśli konieczne, wystartuj GIT-DAEMON + + + + + Du bekommst einen Haufen Dateien eines bestimmten Sicherungsstands. + + + Otrzymasz całą masę plików konkretnego stanu + + + + + Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten Elternteil während eines 'Merge'; häufig bist du nur von Änderungen betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen die von anderen 'Branches' eingebracht wurden. + + + To jest erstrebenswert, poniewaz aktualny BRANCH staje sie pierwszym rodzicem podczas MERGE; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym BRANCH bardziej, niz ze zmianami z innych BRANCHES. + + + + + Ein 'Commit' ohne die *-a* Option führt nur den zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + + + Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + + + + + Vielleicht hast Du gerade bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + + + Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + + + + + Nun kannst du Fehler beheben, Änderungen vom zentralen 'Repository' holen ('pull') und so weiter. + + + Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. + + + + + Zum Beispiel wäre es sicher, ihn in einer Zeitung zu veröffentlichen, denn es ist schwer für einen Angreifer jede Zeitungskopie zu manipulieren. + + + Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + + + + + Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + + By na przyklad logi drugiego rodzica pokazac + + + + + zeigt den Namen des aktuellen 'Branch'. + + + pokaże nazwę aktualnego 'branch'. + + + + + das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie zuletzt geändert hat und wann. + + + które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. + + + + + Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen werden; nur diejenigen mit SSH Zugriff können es einsehen. + + + To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. + + + + + Hast du es satt, wie sich ein Projekt entwickelt? + + + Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt + + + + + Solltest du kürzlich konkurrierende Änderungen an der selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut 'commiten' nachdem du die Konflikte aufgelöst hast. + + + Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + + + + + Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + + Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + + + + + Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' gewechselt, wie in: + + + Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + + + + + Hinzufügen, Löschen, Umbenennen + + + Dodac, skasowac, zmienic nazwe + + + + + 'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das Öffnen eines neuen Browserfenster. + + + BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. + + + + + So schwierig zu lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das Spiel zu beenden. + + + Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. + + + + + Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger Schaden zugefügt. + + + Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. + + + + + Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. + + + Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales + + + + + Git über alles + + + Git ponad wszystko + + + + + Temporäre 'Branches' + + + Tymczasowe BRANCHES + + + + + Kontinuierlicher Arbeitsfluss + + + Nie przerywany przebieg pracy + + + + + Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin um die alte Version zu erhalten. + + + Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. + + + + + Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik ein, mit allen Fehlern, Nachteilen und Mängeln. + + + Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. + + + + + $ git blame bug.c + + + $ git blame bug.c + + + + + Um diese Angaben explizit zu setzen, gib ein: + + + Aby wprowadzić te dane bezpośrednio, podaj: + + + + + Ein unmittelbarer Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist keine Kommunikation mit dem Hauptserver notwendig. + + + Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + + + + + Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. + + + powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. + + + + + M 100644 inline hello.c data <<EOT #include <unistd.h> + + + +M 100644 inline hello.c data <<EOT #include <unistd.h> + + + + + Aber es ist eine Illusion. + + + Ale to iluzja. + + + + + um den 'Patch' anzuwenden. + + + By zastosować patch. + + + + + oder Mercurial: + + + albo Mercurial: + + + + + Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + + Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + + + + + Ebenso grundlegende Funktionen wie das Durchsuchen der Chronik oder das 'comitten' einer Änderung. + + + Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. + + + + + Nun gib ein: + + + Podajemy teraz; + + + + + Verteilte Kontrolle + + + Rozproszona kontrola + + + + + Je mehr gespeicherte Spiele benötigt werden, desto mehr Kommunikation ist erforderlich. + + + Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + + + + + Wer macht was? + + + Kto robi co? + + + + + Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst leeren Git 'Repository'. + + + Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY + + + + + Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein Computerspiel vor. + + + Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. + + + + + Obwohl es extrem lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, so hat es doch zwei Vorteile: + + + Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + + + + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + + + $ git-new-workdir ein/istniejacy/repo nowy/katalog + + + + + Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. + + + W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. + + + + + Du kannst auch nach dem 5. letzten 'Commit' fragen: + + + Możesz również udać się do 5 z ostatnich COMMIT: + + + + + untersuchen wes you can study for writing exporters, and also to transport repositories in a human-readable format. + + + + + + + + Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler steigt. + + + Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. + + + + + Um es zu erzwingen, verwende: + + + By zmusić dgo do tego, możesz użyć: + + + + + Es gibt mindestens 3 Lösungen. + + + Istnieja przynajmniej 3 rozwiazania. + + + + + Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem Ordner: + + + Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + + + + + Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. + + + Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. + + + + + Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + + Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + + + + + Diese Operationen sind schnell und lokal, also warum nicht damit experimentieren um die beste Kombination für sich selbst zu finden? + + + Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. + + + + + Jeder Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. + + + Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. + + + + + Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann. + + + To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + + + + + Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + + + Standardowo dane te pozostają jeszcze przez 2 tygodnie. + + + + + Sagen wir du bist im `master` 'Branch'. + + + Powiedzmy też, że znajdujesz sie w MASTER BRANCH. + + + + + Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze: + + + By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + + + + + Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + + Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + + + + + Firewalls könnten uns stören und was, wenn wir gar keine Berechtigung für eine Serverkonsole haben. + + + Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + + + + + Dann nutze: + + + Możesz w tym wypadku skorzystać z: + + + + + Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. + + + Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, + + + + + Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + + Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + + + + + In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die Standardaktion. + + + W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. + + + + + Git referenziert Änderungen anhand ihres SHA1-Hash, was in vielen Fällen besser ist. + + + Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + + + + + Dateien herunterladen + + + Zładowanie danych + + + + + Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu zerstören. + + + Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. + + + + + Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am Dateiende. + + + Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. + + + + + Git versetzt dich wieder auf einen Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert so die Möglichkeiten. + + + Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. + + + + + Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen und am Teil II arbeiten, bevor Teil I offiziell freigegeben wurde. + + + Dzieki bezbolowemu BANCHEN i MERGEN kozemy te regoly naciagnac i praccowac nad druga czescia juz zanim pierwsza zostanie oficjalnie zatwierdzona + + + + + Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus. + + + Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + + + + + Zum Glück ist es einfach, Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' einen Zähler erhöht. + + + Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. + + + + + Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen: + + + Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + + + + + Genauso wenig setzt das 'Clonen' des zentralen 'Repository' dessen Bedeutung herab. + + + Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + + + + + Ein Versionsverwaltungssystem zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die periodisch von einer Webcam gemacht werden. + + + Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + + + + + Es sei denn die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, oder die `--bare` Option wird übergeben. + + + Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + + + + + Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. + + + Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. + + + + + In der Praxis möchtest Du aber das "refs/heads/" entfernen und Fehler ignorieren: + + + W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + + + + + Wir haben gesehen, dass man mit <<makinghistory, *git fast-export* und *git fast-import* 'Repositories' in eine einzige Datei konvertieren kann und zurück>>. + + + Widzieliśmym, że poleceniami <<makinghistory, *git fast-export* i *git fast-import* możemy konwertować całe repozytoria w jeden jedyny plik i spowrotem>>. + + + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + + + In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach einem bestimmten Punkt durch Eingabe von: + + + W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + + + + + Wenn du keine lokalen Änderungen hast, dann ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. + + + Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu zarzadzania wersja. + + + + + Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die Sicherungen der anderen bekommt? + + + W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? + + + + + Die, welche dir am besten gefällt. + + + To, ktore najbardziej tobie odpowiada. + + + + + Wenn Spieler vom Hauptserver herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt gespeicherte. + + + Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany + + + + + Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das Ergebnis ist das selbe. + + + Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. + + + + + Dann: + + + Wtedy: + + + + + Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein Verlauf um die Größe des gesamten Projekts wachsen. + + + Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + + + + + Alternativ kannst Du *git commit \--interactive* verwenden, was dann automatisch die ausgewählten Änderungen 'commited' nachdem Du fertig bist. + + + Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + + + + + Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur als akademische Übungen. + + + Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. + + + + + Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit: + + + Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + + + + + Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen wäre. + + + Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 COMMITS wcześniej utworzyć branch- + + + + + Git für Fortgeschrittene + + + Git dla zaawansowanych + + + + + Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes angezeigt hat? + + + Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? + + + + + Rund ums 'Clonen' + + + Polecenie CLONEN + + + + + um die letzte Beschreibung zu ändern. + + + by zmienić ostatni opis. + + + + + Multitasking mit Lichtgeschwindigkeit + + + Multitasking z prędkością światła + + + + + Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die ignoriert werden sollen. + + + Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + + + + + - Organisiere 'Commits' durch verschieben von Zeilen. + + + - przeorganizuj 'commits' przesuwając linie. + + + + + Klassische Quellcodeverwaltung + + + Klasyczne zarządzanie kodem źródłowym + + + + + Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes: + + + Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + + + + + Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' umwandeln, indem man in ein leeres 'Repository' 'pushed'. + + + To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT + + + + + Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + + Po stronie odbiorcy zapamiętaj email jako daną i podaj: + + + + + Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) und stellt den vorherigen Stand wieder her. + + + Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. + + + + + Git ruft eine Stand ab, der genau dazwischen liegt. + + + Git przywoła stan, który leży dokładnie pośrodku. + + + + + Du kannst auch eine Gruppe von 'Commits' angeben: + + + Możesz podać grupę 'commits' + + + + + Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe von: + + + Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + + + + + Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden um die am häufigsten benutzten Anweisungen zu verkürzen: + + + Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + + + + + Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' konfigurieren. + + + Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. + + + + + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + + + * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + + + + + <<branch,Dazu kommen wir später>>. + + + <<branch, wrócimy do tego później>> + + + + + Viele Kommandos sind mürrisch vor dem intialen 'Commit'. + + + Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. + + + + + Die Chef-Taste + + + Przycisk SZEF + + + + + EOT + + + EOT + + + + + Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige 'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder irgendetwas anderes. + + + Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + + + + + Bei Softwareprojekten kann das ähnlich sein. + + + W projektach software moze to wygladac podobnie. + + + + + In ein paar Jahren hat vielleicht schon ein ganz normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' unbemerkt zu korrumpieren. + + + Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + + + + + Über die Zeit haben sich einige lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' mit dem offiziellen Zweig. + + + Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. + + + + + Siehe *git help branch*. + + + Zobacz: *git help branch*. + + + + + Computer synchronisieren + + + Synchronizacja komputera + + + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + + + Die Datei zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden könnte. + + + Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. + + + + + Ein Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die Konstruktion fortgesetzt werden kann. + + + Prototyp musi czekac na wyprodukowanie baustein zanim mozna podjac dalsza konstrukcje. + + + + + und die letzten zehn 'Commits' erscheinen in deinem bevorzugten $EDITOR. Auszug aus einem Beispiel: + + + i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + + + + + * `reword` um die Log-Beschreibung zu ändern. + + + * `reword`, by zmienić opisy logu. + + + + + Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus der Geschichte zu löschen. + + + Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. + + + + + Meistens befindet es sich auf einem Server, der nicht viel tut außer Daten zu verbreiten. + + + Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. + + + + + Standardmäßig nutzt Git Systemeinstellungen um diese Felder auszufüllen. + + + Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. + + + + + Die Hilfeseiten schlagen vor 'Tags' zu benutzen um dieses Problem zu lösen. + + + Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. + + + + + Git tauscht selten Daten direkt zwischen Deinem Projekt und seiner Versionsgeschichte aus. + + + Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. + + + + + Du kannst einen 'Patch' Entwicklern schicken, ganz egal, was für ein Versionsverwaltungssystem sie benutzen. + + + Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. + + + + + Gib ein: + + + Za pomoc + + + + + int main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + + + Versionsverwaltung + + + Kontrola wersji + + + + + und deine Nutzer können ihr Skript aktualisieren mit: + + + a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + + + + + Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen Logdateien. + + + Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. + + + + + Wir haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. + + + We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. + + + + + Das neue Verzeichnis enthält die Dateien mit deinen Änderungen. + + + Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami + + + + + Normalerweise wird ein Skript, das diese Anweisung benutzt, hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem einzigen Lauf zu migrieren. + + + Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + + + + + um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. + + + by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, + + + + + Siehe auf der Git Hilfeseite für einige Anwendungsbeispiele. + + + Na stronach pomocy git znajdziesz więcej zasosowań. + + + + + Die vergangenen 'Commits' wissen nichts von der Zukunft. + + + Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + + + + + Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der häufigsten Anweisungen umgehen. + + + Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + + + + + Aber wie kannst Du zurück in die Zukunft? + + + Ale jak teraz wrócić znów do przyszłości? + + + + + $ git branch -D dead_branch # instead of -d + + + $ git branch -D dead_branch # zamiast -d + + + + + ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" Änderungen). + + + by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) + + + + + Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'. + + + Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + + + + + Andere können davon ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und dass er die offizielle Version enthält. + + + Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję + + + + + Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert hat. + + + Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + + + + + Wirklich, diese Anweisung kann Klartext-'Repositories' über reine Textkanäle übertragen. + + + Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + + + + + Welche Lösung ist die beste? + + + Ktore rozwiazanie jest najlepsze? + + + + + *Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + + + *Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie: *git branch*. + + + + + Dann mache folgendes auf deinem Server: + + + To po prostu zwób coś takiego na twoim serwerze: + + + + + Antworte mit "y" für Ja oder "n" für Nein. + + + Odpowiedz po prostu "y" dla tak, albo "n" dla nie. + + + + + Jede Datei einzeln nachzuprüfen ist frustrierend und ermüdend. + + + Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. + + + + + Ich spiele Computerspiele schon fast mein ganzes Leben. + + + Gram w gry komputerowe przez całe moje życie. + + + + + Während dem Warten auf das Ende der Serverkommunikation tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails lesen oder Dokumentation schreiben. + + + Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. + + + + + Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen. + + + Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + + + + + Das ist eine primitive und mühselige Form der Versionsverwaltung. + + + Jest to prymitywna i pracochłonna forma kontroli wersji. + + + + + Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen: + + + Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + + + + + Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu schreiben und außerdem um 'Repositories' in Klartext zu übertragen. + + + Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. + + + + + Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash des letzten 'Commit' verknüpft ist. + + + Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + + + + + Die Textdatei ist wiederhergestellt. + + + Poprzedni plik jest przywrocony do stanu pierwotnego + + + + + Wenn du gut voran gekommen bist, willst du das Erreichte sichern. + + + Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. + + + + + Wenn du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir Konflikte melden. + + + Jesli jednak wprowadziles zmiany, GIT bedzie je automatycznie MERGEN i powiadomi cie o eventualnych konfliktach. + + + + + Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne Netzwerkverbindung? + + + Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? + + + + + In irgendeinem Verzeichnis: + + + W pewnym katalogu: + + + + + Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. + + + Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. + + + + + wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den ``bereinigt'' 'Branch' an. + + + zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. + + + + + *Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. + + + *Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. + + + + + $ git clean -f -d + + + $ git clean -f -d + + + + + Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem Ordner voller Dateien. + + + Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. + + + + + Möglicherweise reicht ORIG_HEAD nicht aus. + + + Może się zdarzyć, że ORIG_HEAD nie wystarczy. + + + + + Das geht wesentlich schneller, aber der resultierende Klon hat nur eingeschränkte Funktionalität. + + + Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + + + + + gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt werden kann. + + + produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. + + + + + 'Branches' verwalten + + + Organizacja BRANCHES + + + + + Mit etwas Glück, wenn Git's Verbreitung zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie vielleicht implementiert. + + + Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + + + + + Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten offiziellen Änderungen dort hin. + + + Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. + + + + + Dann gehe wieder ins neue Verzeichnis und gib ein: + + + Następnie przejdź do dowego katalogu i podaj: + + + + + Der Index ist ein temporärer Bereitstellungsraum. + + + Index jest tymczasowym rusztowaniem + + + + + $ git symbolic-ref HEAD + + + $ git symbolic-ref HEAD + + + + + Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese Bezeichnung hatten. + + + Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. + + + + + Die Ursachen für die großen Unterschiede sollten ermittelt werden. + + + Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. + + + + + $ git apply < mein.patch + + + $ git apply < moj.patch + + + + + Dass, wenn der Chef ins Büro spaziert, während du das Spiel spielst, du es schnell verstecken kannst? + + + By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + + + + + Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + + Podobnie możesze celowo wykasować wybrane COMMITS. + + + + + Zusätzlich müssen verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines 'Branch' mit einem abweichenden initialen 'Commit'. + + + Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + + + + + $ git bundle create einedatei HEAD ^1b6d + + + +$ git bundle create plik HEAD ^1b6d + + + + + Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen Rechner. + + + Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. + + + + + In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die Fertigstellung des ersten Schritt warten. + + + W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego + + + + + Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen referenzieren. + + + Mozesz tez jakiegos rodzica referowac znaczkiem CARET + + + + + Wie du dir vielleicht schon gedacht hast, verwendet Git 'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + + + Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + + + + + Du merkst, dass du vergessen hast eine Datei hinzuzufügen? + + + Zauważasu, że zapomniałeś dodać jakiegoś pliku? + + + + + Beginne ein paar 'Branches': + + + Wystartuj kilka BRANCHES: + + + + + und noch viel mehr + + + i tak dalej. + + + + + Verhindere schlechte 'Commits' + + + Zapobiegaj złym 'commits' + + + + + Ein einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und so weiter. + + + Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. + + + + + Die resultierenden Dateien können an *git-send-email* übergeben werden oder von Hand verschickt werden. + + + Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. + + + + + In extremen Fällen trifft das auch auf die grundlegenden Anweisungen zu. + + + W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. + + + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + + + Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen das Zerstören der Daten. + + + Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. + + + + + Ansonsten: + + + W przeciwnym razie: + + + + + Einleitung + + + Wprowadzenie + + + + + Der Verlauf der Firmware interessiert den Anwender nicht und Änderungen lassen sich schlecht komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' unnötig auf. + + + Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + + + + + Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut ('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas zwischen 1 und 127 für 'bad'. + + + Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. + + + + + Aber einige Leute sind diesen Zähler gewöhnt. + + + Niektórzy jednak przyzwyczaili się do tego licznika. + + + + + Nun können wir die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten Stand, aber wir müssen den 'Master Branch' verlassen. + + + Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic MASTER BRANCH. + + + + + Das Problem ist, den entsprechenden SHA1-Wert zu finden. + + + Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. + + + + + Kleinere Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie möglich bewirken. + + + Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + + + + + wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. + + + To polecenie skasuje COMMIT o wybranym hash-u. + + + + + Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. + + + Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami + + + + + A, B, C, D sind 4 aufeinander folgende 'Commits'. + + + A, B, C i D sa 4 nastepujacymi po sobie COMMITS. + + + + + Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git 'Repositories' arbeiten. + + + Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git + + + + + Eine unzuverlässige Internetverbindung stört mit Git nicht sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig wie ein lokale Festplatte sein sollte. + + + Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. + + + + + Einige Projekte erfordern, dass dein Code überprüft werden muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + + + Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, zanim bedziesz mogl zaczac z druga czescia + + + + + Bei verteilen Systemen ist das viel besser, da wir die benötigt Version lokal 'clonen' können. + + + Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + + + + + Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch Ausführen von: + + + Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + + + + + Dies verleiht ihnen eine universelle Anziehungskraft. + + + Dodaje im to uniwersalnej mocy przyciągania. + + + + + Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus veröffentlichen. + + + Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + + + + + Dein Arbeitsverzeichnis erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu editieren. + + + Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować + + + + + Es können noch weitaus kompliziertere Situationen entstehen. + + + Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. + + + + + Wir müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen 'pullen', also abholen wollen. + + + Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. + + + + + Einige plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für seine Arbeit einen neuen 'Branch' anzulegen. + + + Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + + + + + *Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. + + + *Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. + + + + + $ git rebase --continue + + + $ git rebase --continue + + + + + Nun kannst du überall wild temporären Code hinzufügen. + + + Teraz mozesz temporarnie wszedze wprowadzac na dziko kod + + + + + $ git bundle create neuesbundle HEAD ^letztesbundle + + + $ git bundle create nowybundle HEAD ^ostatnibundle + + + + + um mehr zu erfahren. + + + by dowiedzieć się więcej. + + + + + Mit diesem Zauberwort verwandeln sich die Dateien in deinem Arbeitsverzeichnis plötzlich von einer Version in eine andere. + + + Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. + + + + + Trotzdem gibt es Situationen, in denen es besser ist einen oberflächlichen Klon mit der `--depth` Option zu erstellen. + + + Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. + + + + + Geschichte machen + + + Tworzyć historię + + + + + Stell dir zum Beispiel vor, du willst ein Projekt veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen privat bleiben muss. + + + Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. + + + + + Wenn ein Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + + + Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + + + + + Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche die Form einer großen Binärdatei annimmt. + + + Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. + + + + + Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen gib ein: + + + Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + + + + + Teste die Funktion und wenn sich immer noch nicht funktioniert: + + + Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + + + + Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? + + + A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? + + + + + Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem nutzt und vermisst du Git? + + + Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? + + + + + Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. + + + Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. + + + + + Die Summe der Bemühungen verschlimmerte die Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu verbrauchen um noch längere Wartezeiten zu verhindern. + + + Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. + + + + + $ git commit --amend + + + $ git commit --amend + + + + + Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, werden verteilte Systeme genannt und können als eine Verallgemeinerung der zentralisierten Systeme verstanden werden. + + + Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. + + + + + Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + + + O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + + + + + Unter den Befehlen im Zusammenhang mit Git's verteilter Art, brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an unterschiedlichen Orten halten. + + + Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + + + + + Viele Versionen auf diese Art zu archivieren ist mühselig und kann sehr schnell teuer werden. + + + Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + + + + + Der erste Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten Datei im Index. + + + Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. + + + + + Um zum Beispiel die Unterschiede zum ersten Elternteil anzuzeigen: + + + By na przyklad pokazac roznice miedzy pierwszym rodzicem + + + + + Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen: + + + Jesli dodales nowe pliki, musisz o tym poinformowac GIT + + + + + Aber es gibt einen viel einfacheren Weg. + + + Istnieje jednak dużo prostszy sposób. + + + + + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + + + * `squash` by połączyć 'commit' z poprzednim ('merge'). + + + + + zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + + + pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + + + + + Betrachten wir Webbrowser. + + + Przyjżyjmy się takiej przeglądarce internetowej. + + + + + $ git config gc.auto 0 + + + $ git config gc.auto 0 + + + + + Wenn du fertig bist, + + + JAk juz jestes gotowy + + + + + Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu erweitern. + + + Dość łatwo zastosować ten sam trik na dowolną ilość części. + + + + + Um das Verschieben zu erzwingen, gib ein: + + + By wymusić przesunięcie, podaj: + + + + + Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. + + + By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. + + + + + Üblicherweise ist deren Verhalten einstellbar. + + + Zazwyczaj ich zachowanie daje się ustawić. + + + + + Git über SSH, HTTP + + + Git przez SSH, HTTP + + + + + Nun stell dir ein ganz kompliziertes Computerspiel vor. + + + Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. + + + + + Wenn Du zufrieden bist, gib + + + Jeśli jesteś zadowolony z wyniku, wpisz: + + + + + Das `tailor` Programm konvertiert Bazaar 'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während `bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + + + Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + + + + + Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von 20 Null-Bytes gesetzt. + + + Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash + + + + + Eine Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + + + Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + + + + + Folglich ist standardmäßig das 'Pushen' per Git-Protokoll verboten. + + + Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + + + + + Und eigene Sicherungen bereitstellt? + + + Natomiast własne innym udostępni? + + + + + Anstelle des zweiten Befehl kann man auch `git commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. + + + Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. + + + + + Versuche auch: + + + Sprobuj rowniez: + + + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + + + Du kannst Dir alle SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten 'Commit' findest. + + + Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' + + + + + Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu überschreiben, wenn das einen Datenverlust zur Folge hat. + + + Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. + + + + + Du willst deine laufenden Arbeiten für dich behalten und andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert hast. + + + Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. + + + + + $ git tag -f letztesbundle HEAD + + + $ git tag -f ostatnibundle HEAD + + + + + Du denkst, du kannst das besser? + + + Uważasz, że potrafisz to lepiej + + + + + Eigenarten der Anwendung + + + Charakterystyka zastosowania + + + + + Netzwerkressourcen sind einfach teurer als lokale Ressourcen. + + + Zasoby sieciowe są po prostu droższe niż zasoby lokalne. + + + + + In diesem Fall verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber sehr flexibel. + + + W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. + + + + + Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch Dateinamen mit ungewöhnlichen Zeichen. + + + Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików + + + + + Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. + + + Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. + + + + + Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses Null-'Commits'. + + + Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + + + + + Leider kenne ich keine solche Erweiterung für Git. + + + Niestety nie są mi znane takie rozszerzenia dla GIT. + + + + + Mit ein paar Tastendrücken kannst Du mehrere geänderte Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') oder Änderungen einzelner Dateien nachprüfen und hinzufügen. + + + Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. + + + + + Beachte, dass alle Änderungen, die nicht 'commitet' sind übernommen werden. + + + Oauwaz, ze wszystkie zmiany, ktorre nie zostaly COMMITTED, zostaly przejete + + + + + Siehe *git help diff* und *git help rev-parse*. + + + Sprawdź *git help diff* i *git help rev-parse*. + + + + + Wann immer du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + + Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + + + + + Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom anderen Versionsverwaltungssystem ab. + + + Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. + + + + + Wie auch immer, vorausgesetzt du hast oft 'comittet', kann Git dir sagen, wo das Problem liegt: + + + Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + + + + + Auch auf Deiner Seite ist alles was Du brauchst ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' aufzusetzen. + + + Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + + + +
diff --git a/pl/omegat-tmp/pl-level2.tmx b/pl/omegat-tmp/pl-level2.tmx new file mode 100644 index 0000000..5d1231f --- /dev/null +++ b/pl/omegat-tmp/pl-level2.tmx @@ -0,0 +1,6541 @@ + + + +
+
+ + + + Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' Anweisungen. + + + Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. + + + + + Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + + + A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + + + + + Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht installiert. + + + Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. + + + + + Erstelle ein Git 'Repository' für deine Dateien: + + + Utwóż GIT REPOSITORY dla twoich danych + + + + + Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. + + + Wyglada jakbysmy ta dana zmienili i COMMITED + + + + + Die Änderungen bleiben im .git Unterverzeichnis gespeichert und können wieder hergestellt werden, wenn der entsprechende SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" oben). + + + Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). + + + + + Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch Eingabe von: + + + Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + + + + + Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + + + $ git bisect reset + + + $ git bisect reset + + + + + Angenommen, wir sind bei D: + + + Zalozmym ze jestesmy w D: + + + + + Es stellt sich heraus, dass diese Notation immer den ersten Elternteil wählt. + + + Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. + + + + + Die Anweisung + + + Polecenie: + + + + + Um ein tarball-Archiv des Quellcodes zu erzeugen, verwende ich den Befehl: + + + Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + + + + + Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da andere Operationen dafür unglaublich effizient sind. + + + Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. + + + + + Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die Forschung SHA1 komplett unnütz macht. + + + Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + + + + + ... + + + ... + + + + + Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. + + + Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany + + + + + Computerspiele machten das lange Zeit so, viele von ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + + + Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + + + + + Außerdem kannst du sie komprimieren um Speicherplatz zu sparen. + + + Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. + + + + + In manchen Systemen benötigt der Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu sehen oder um eine Datei zum Bearbeiten zu öffnen. + + + W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + + + + + Git unter Microsoft Windows kann frustrierend sein: + + + Korzystanie z GIT pod Microsoft Windows może być frustrujące: + + + + + und erstelle neue Aktualisierungsbundles mit: + + + a nowy 'bundle' tworzymy następnie poprzez: + + + + + $ git bisect run mein_skript + + + $ git bisect run moj_skrypt + + + + + Stand sichern + + + Backup + + + + + Man kann das aber auch in einem einzigen Schritt ausführen mit: + + + Można to także wykonać za jednyym zamachem: + + + + + Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das? + + + Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + + + + + Dann gib ein: + + + Wpisujesz: + + + + + Wie auch immer, mit Git kannst du nicht viel falsch machen. + + + Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. + + + + + Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des 'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. + + + Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu + + + + + Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden Eigenschaften von Git. + + + niezwloczne BRANCHEN i MERGEN sa uderzajacymi wlasciwosciami GIT + + + + + Du kannst diese Änderungen sogar 'commiten'. + + + Mozesz te zmiany nawet COMMITEN. + + + + + Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. + + + GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* + + + + + Natürlich sind dann viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' übermittelt werden. + + + Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. + + + + + Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git log* angezeigt werden. + + + Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. + + + + + In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' gehalten werden und die Binärdatei außerhalb des Projekts. + + + W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. + + + + + Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. + + + na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. + + + + + Um das Löschen zu erzwingen, gib ein: + + + By wymusić skasowanie, podaj: + + + + + Schnelle Fehlerbehebung + + + Szybkie koregowanie bledow. + + + + + Aktualisiere das lokale 'Repository' erneut mit 'pull', löse eventuell aufgetretene 'Merge'-Konflikte und versuche es nochmal. + + + Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + + + + + $ git format-patch 1b6d + + + git format-patch 1b6d + + + + + Persönliche Erfahrungen + + + Osobiste doświadczenia + + + + + Wieder andere bevorzugen irgendetwas dazwischen. + + + Inni znowu wolą coś pomiędzy. + + + + + Du kannst sogar 'Branches' in einem 'Repository' umorganisieren. + + + Możesz nawet przeorganizować 'branches' w repozytorium. + + + + + Auch wenn Git die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + + + Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + + + + + Ich bin schnell in die Anwendung hineingewachsen und betrachtete viele Funktionen als selbstverständlich. + + + Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. + + + + + Im Gegensatz zu vielen anderen Versionsverwaltungssystemen funktioniert diese Operation offline, es wird nur von der lokalen Festplatte gelesen. + + + W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + + + + + Du willst zahlreiche, vor Manipulation geschützte, redundante Datensicherungen an unterschiedlichen Orten? + + + Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach + + + + + In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen 'bundlest', die in den anderen 'Repositories' fehlen. + + + W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. + + + + + Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und "A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen Bereich. + + + Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. + + + + + ---------------------------------- + + + ---------------------------------- + + + + + Ich habe diese Phänomen aus erster Hand erfahren. + + + Dowiedziałem się o tym fenomenie z pierwszej ręki. + + + + + Um wieder die Computerspielanalogie anzuwenden: + + + Jeśli znów skorzystamy z analogii do gier komputerkowych: + + + + + *Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. + + + *reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. + + + + + Erste Schritte + + + Pierwsze kroki + + + + + $ git config --global user.name "Max Mustermann" $ git config --global user.email maxmustermann@beispiel.de + + + $ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + + + + + um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen. + + + możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + + + + + Geschichtsstunde + + + Lekcja historii + + + + + Das gilt stellvertretenden für andere Anweisungen. + + + Reprezentuje to również wszystkie inne polecenia. + + + + + http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine herkömmliche Datensicherung. + + + Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + + + + + Du arbeitest an einem aktiven Projekt. + + + Pracujesz nad aktywnym projektem. + + + + + Einige Git Anweisungen lassen Dich ihn manipulieren. + + + Niektóre komendy git pozwolą ci nim manipulować. + + + + + Einige Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für unterschiedliche Webseiten. + + + Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron + + + + + Arbeite wie du willst + + + Pracuj jak chcesz + + + + + Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für alle relevant. + + + Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + + + + + Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach Herzenslust. + + + Przejdź teraz do nowego katalogu i pracuj według upodobania. + + + + + den Zustand der Dateien des anderen Computer auf den übertragen, an dem du gerade arbeitest. + + + przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz + + + + + Wenn du wieder zurück zu deinen Änderungen willst, tippe: + + + Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + + + + + Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + + + Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + + + + + Oder rufe den fünftletzten 'Commit' ab, mit: + + + Albo przywołaj 5 ostatnich 'commits' za pomocą: + + + + + Zum Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert wird. + + + Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany + + + + + Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + + Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + + + + + Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar ist. + + + Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. + + + + + Nichts könnte weiter von der Wahrheit entfernt sein. + + + Nic nie jest bardziej oddalone od rzeczywistości. + + + + + Übung + + + Cwiczenie + + + + + Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + + Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + + + + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + + + $ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + + + + + Man muss vom Hauptserver das alte gespeicherte Spiel anfordern. + + + Za każdym razem trzeba ściągnąć wszystkie dane z serwera. + + + + + bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + + + znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + + + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + + + Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. + + + Termin opublikowania pewnej wlasciwosci zbliza sie. + + + + + Ein dummer Aberglaube + + + Głupi przesąd + + + + + Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin süchtig nach schellen Ausführungszeiten. + + + Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + + + + + Die Entwicklung findet in den 'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis auskommen. + + + Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + + + + + Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir uns mit ihm auseinandersetzen um das bisherige zu erklären. + + + Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. + + + + + Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. + + + Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali + + + + + Alles, was man mit dem zentralen 'Repository' tun kann, kannst du auch mit deinem 'Clone' tun. + + + Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + + + + + Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + + Lokalne zmiany przekazujemy do serwera poleceniem: + + + + + Was habe ich getan? + + + Co ostatnio robilem? + + + + + Für jetzt, merke dir + + + zapamietaj jednak na razie, że: + + + + + In diesem Fall, gib folgendes ein: + + + W tym wypadku użyj komendy: + + + + + Menschen sind nicht gut im Kontextwechsel. + + + Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + + + + + Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. + + + Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. + + + + + Wo ging alles schief? + + + Gdzie wszystko poszło źle? + + + + + Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. + + + Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. + + + + + Auch wenn du den ``master'' 'Branch' umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch respektieren. + + + Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + + + + + Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der Änderungen. + + + Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. + + + + + Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' zuletzt gesendet wurde. + + + Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. + + + + + Deine Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so weiter. + + + Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi u tak dalej. + + + + + Zum Beispiel: + + + Na przyklad: + + + + + Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine Authentifizierung, also kann jeder das Projekt abrufen. + + + Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. + + + + + Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine historische Unwegbarkeiten umgehen. + + + Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. + + + + + Vielmehr schreibt Git die Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an ihren eigentlichen Bestimmungsort. + + + Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + + + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + + + Sagen wir, du hast einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt oder Dateien einer Website. + + + Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. + + + + + Ich musste lernen, wie man Projekte verwaltet, an denen mehrere Entwickler aus aller Welt beteiligt waren. + + + Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. + + + + + Du hast auch noch andere Optionen, z.B. den Aufschub der Entscheidung; drücke "?" + + + Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" + + + + + Schmutzarbeit + + + Brudna robota + + + + + $ git commit --amend -a + + + $ git commit --amend -a + + + + + Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst um dort einen 'Clone' zu platzieren. + + + Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + + + + + Keine Sorge, gib ein: + + + Nie ma sprawy, wpisz polecenie: + + + + + Rückgängig machen + + + Przywracanie + + + + + Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. + + + Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. + + + + + Mischmasch Reorganisieren + + + Reorganizacja chaosu + + + + + Auf Debian und Ubuntu, findet man dieses Verzeichnis unter +/usr/share/doc/git-core/contrib+. + + + W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + + + + + Wenn auch nicht so effizient wie mit dem systemeigenen Protokoll, kann Git über HTTP kommunizieren. + + + Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + + + + + Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter Form zu verwenden. + + + Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. + + + + + Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. + + + Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. + + + + + Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit Git zusammenarbeiten kann. + + + Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT + + + + + Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. + + + Niektóre projekty wymagają pliku historii zmian + + + + + Jeder kann oberflächliche Klone erstellen, die nur wenig oder gar nichts vom Verlauf des Projekts enthalten. + + + Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. + + + + + Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige Entwickler war. + + + Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. + + + + + Git überwacht immer das ganze Projekt, was normalerweise schon von Vorteil ist. + + + GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + + + + + Aber du bist mit der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas umformuliert werden. + + + Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. + + + + + Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. + + + Ta inna rzeczywistość, to tzw. branch <<branch, zajmiemy się tym w późniejszym czasie>>. + + + + + In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der Chronik eine schwierige Angelegenheit und den Administratoren vorbehalten. + + + W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. + + + + + Dieser spezielle 'Commit' repräsentiert einen leeren 'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git 'Repositories'. + + + Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + + + + + Der zweite Teil eines Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und getestet wurde. + + + Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. + + + + + Leere Unterverzeichnisse + + + Puste katalogi + + + + + Diese Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. + + + Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. + + + + + Ein 'Commit' kann mehrere Eltern haben, welchem folgen wir also? + + + COMMIT moze posiadac wiecej rodzicow, ktoremu wlasciwie nastepowac? + + + + + Da ich in erster Linie unter Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + + + Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + + + + + Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit 'tarball' Archiven oder *rsync* zu arbeiten. + + + Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. + + + + + Git lässt dich genauso arbeiten, wie du es willst. + + + GIT pozwoli ci pracować dokładnie tak jak chcesz. + + + + + Wie 'Clonen', 'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine weitere Stärke, die Git dir bietet. + + + Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. + + + + + Das ist unüblich. + + + Znajduje to dość szerokie zastosowanie + + + + + Da diese Anweisung aber auch zu ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option hinzufügen. + + + Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + + + + + Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. + + + Momo ich prostoty, wszystkie sa wazne i pozyteczne. + + + + + und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich die 'Commits' aus dem 'Bundle' durch Eingabe von: + + + i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + + + + und Simsalabim! + + + i Simsalabim! + + + + + Tatsächlich sind wir dem 'Mergen' schon lange begegnet. + + + W gruncie rzeczy spotkalismy sie juz wczesniej z MERGE. + + + + + Einfacher geht das mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + + Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + + + + + Im Gegensatz zu den meisten Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem Speicherplatz umzugehen. + + + W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. + + + + + Durch cleveres verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine Versionsgeschichte mit dem original 'Repository' teilt: + + + Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + + + + + Nach einer längeren Sitzung hast du einen Haufen 'Commits' gemacht. + + + Po dłuższej sesji zrobiłeś całą masę 'commits'. + + + + + Untracked .txt files. + + + untracket.txt files. + + + + + Argh! + + + Och! + + + + + Die Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer Kopie der ganzen Datei. + + + Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + + + + + $ git bisect bad + + + +$ git bisect bad + + + + + In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und Konvertierungswerkzeugen und so weiter. + + + W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. + + + + + Dadurch agieren nun alle Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, während deine Dateien unverändert erhalten bleiben. + + + Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. + + + + + Keine Sorge: Für solche Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + + Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + + + + + Zusätzlich habe ich mich dabei ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten meinem gewohnten Arbeitsablauf zu folgen. + + + Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + + + + + Quellcode veröffentlichen + + + +Publikowanie kodu źródłowego + + + + + Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts 'mergen' mit: + + + W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + + + + + Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver eingegangen sind, schlägt dein 'push' fehl. + + + Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. + + + + + Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein Arbeitsverzeichnis hat. + + + Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego + + + + + Du arbeitest also an Teil II und 'commitest' deine Änderungen regelmäßig. + + + Pracujesz w cześci 2 i regularnie wykonujesz COMMIT. + + + + + Ich war geschockt, als ich später gezwungen war ein zentralisiertes System zu benutzen. + + + Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. + + + + + Ein negativer Rückgabewert beendet die 'bisect'-Operation sofort. + + + Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + + + + + Jemanden zu fotografieren stiehlt nicht dessen Seele. + + + Fotografując kogoś nie kradziemy jego duszy. + + + + + Zum Konvertieren gib in einem leeren Verzeichnis ein: + + + Aby przekonwertować wejść do pustego katalogu: + + + + + dann 'Clone' es: + + + następnie sklonuj go: + + + + + Dann 'branche' zu Teil II: + + + Najpierw zmień BRANCH do części drugiej + + + + + Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen Format einliest um eine Git Chronik von Anfang an zu erstellen. + + + W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. + + + + + Beide laden ihre Änderungen hoch. + + + Obydwoje ładują swoje zmiany na serwer. + + + + + Normalerweise füllt man ein Formular auf einer Website aus. + + + Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + + + + + Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie auch die ganze Geschichte bis zum angegebenen Punkt mit sich. + + + Jednak CLONEN niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. + + + + + Glücklicherweise hat Git eine Abkürzung dafür, die genauso komfortabel ist wie eine Fernbedienung: + + + Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + + + + + Initialer 'Commit' + + + Pierwszy 'commit' + + + + + Siehe *git help stash*. + + + Zobacz *git help stash*. + + + + + Hast Du es zu lange versäumt zu 'comitten'? + + + Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? + + + + + und 'commite' bevor du auf den 'Master Branch' zurückschaltest. + + + i tylko jeszcze COMMIT zanim wrocisz do MASTER BRANCH. + + + + + Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. + + + Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* + + + + + Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. + + + Może pytasz się, czy BRANCHES są warte tego zachodu. + + + + + Das erfordert aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch aufrufen, wenn sie eine Datei bearbeiten. + + + Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + + + + + Hast du gravierende Änderungen vor? + + + Masz zamiar dokonania wielu zmian? + + + + + Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den vorhergehenden 'Commit'. + + + Zwyczajnie kazdy COMMIT posiada rodzica-COMMIT, a mianowicie poprzedni COMMIT. + + + + + Trotz seiner Größe, +einedatei+ enthält das komplette original Git 'Repository'. + + + Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + + + + + Es enthält nur Dateien, die normalerweise im '.git' Unterverzeichnis versteckt sind. + + + Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. + + + + + - Ersetze `pick` mit: * `edit` um einen 'Commit' für 'amends' zu markieren. + + + - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. + + + + + Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. + + + Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. + + + + + Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + + Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + + + + + beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen Hashwert mit 1b6d beginnt. + + + rozpoczyna z nowym BRANCH o nazwie '``stare', ktory posiada stan 10 COMMIT spoowrotem od drugiego rodzica COMMIT, ktorego hash rozpoczyna sie na 1b6d. + + + + + Finde heraus was du seit dem letzten 'Commit' getan hast: + + + Znajdz co zrobiles od ostatniego COMMIT: + + + + + Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. + + + O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. + + + + + nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + + + po uprzednim dodaniu skryptu do `$ PATH`. + + + + + Einen Klon zu erstellen ist aufwendiger als in anderen Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + + + Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + + + + + So wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' mit abweichender Chronik hat und die Zweige sich austauschen sollen. + + + Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + + + + + Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch ging. + + + Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. + + + + + 'Nackte Repositories' + + + Gołe REPOSITORIES + + + + + Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + + + No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + + + + + um zur ursprünglichen Arbeit zurückzukehren. + + + by wrocic do poprzedniej pracy + + + + + Wo kommt dieser Fehler her? + + + Skąd wziął się ten błąd? + + + + + Du kannst diese Notation mit anderen Typen kombinieren. + + + mozesz ta notacje kombinowac takze z innymi typami + + + + + Leute machen kleine Änderungen von Version zu Version. + + + Ludzie robią jednak pomniejsze zmiany z wersji na wersję. + + + + + Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor der Operation. + + + Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. + + + + + Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren und für andere Benutzer veröffentlichen will. + + + Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. + + + + + KOPF-Jagd + + + Łowcy głów + + + + + Das ist wie bei den Spielen der alten Schule, die nur Speicherplatz für eine Sicherung hatten: sicherlich konntest du speichern, aber du konntest nie zu einem älteren Stand zurück. + + + To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. + + + + + Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem zentralisierten Versionsverwaltungssystem: Das Zuhause deines Projekts. + + + BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu + + + + + Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. + + + Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. + + + + + Was, wenn du am Ende die temporären Änderungen sichern willst? + + + A co jesli chcesz zapamietac wprowadzone zmiany? + + + + + 'Branch'-Magie + + + Magia BRANCH + + + + + 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne Netzwerkverbindung. + + + Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. + + + + + Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und vielleicht bist du mit einem anderen System besser dran. + + + Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. + + + + + Aus diesem Grund plädiere ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man Mercurial bevorzugt. + + + Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial + + + + + Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + + Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + + + + + B ist identisch mit A, außer dass einige Dateien gelöscht wurden. + + + B rozni sie od A, jedynie tym, ze usunieto kilka plikow. + + + + + Wenn dein Projekt viele Entwickler hat, musst du nichts tun! + + + Jeśli projekt posiada wielu programistów, nie musisz niczego robić + + + + + Um auf die aktuelle Server-Version zu aktualisieren: + + + Aby zaktualizować do wersji na serwerze: + + + + + Wir erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß permanent. + + + Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + + + + + Trotzdem kann es langwierig sein, den exakten Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. + + + Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. + + + + + Um das zu tun, klickst du auf auf Speichern in deinem vertrauten Editor. + + + W tym celu klikasz na 'zapisz' w wybranym edytorze. + + + + + $ git diff 1b6d > mein.patch + + + $ git diff 1b6d > moj.patch + + + + + Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. + + + Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` + + + + + Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die Details selbst erarbeiten. + + + Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. + + + + + um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. + + + by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. + + + + + Du kannst sogar die frisch gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + + Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + + + + + $ chmod a+x hooks/post-update + + + chmod a+x hooks/post-update + + + + + Ich nehme alles zurück + + + Wycofuję wszystko co na ten temat powiedziałem. + + + + + Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. + + + Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. + + + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + + + Wenn es mit einem der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon jemand ein Skript geschrieben hat, das die gesamte Chronik für Git exportiert. + + + Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + + + + + Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? + + + A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? + + + + + $ git checkout -f HEAD^ + + + $ git checkout -f HEAD^ + + + + + Um Dateien zu bekommen, erstellst du einen 'Clone' des gesamten 'Repository'. + + + By pozyskać dane, tworzysz klon całej REPOSITORY. + + + + + 'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern und Menschen gleichermaßen einfach verstanden werden. + + + 'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. + + + + + Normalerweise können wir den Index ignorieren und so tun als würden wir direkt aus der Versionsgeschichte lesen oder in sie schreiben. + + + Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. + + + + + Um den neuen Stand zu sichern: + + + Aby zapisac nowy stan: + + + + + $ git rebase -i HEAD~10 + + + $ git rebase -i HEAD~10 + + + + + Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein 'bare Repository' ist; andernfalls benutze 'pull'. + + + Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + + + + + Beschaffe dir die `hg-git`-Erweiterung mit Git: + + + Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + + + + + Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach verändert werden kann. + + + Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. + + + + + Angenommen du hast Teil I 'commitet' und zur Prüfung eingereicht. + + + Przyjmijmy, że wykonałeś COMMIT pierwszej części i przekazałeś do sprwadzenia. + + + + + Mit der Zeit können einige davon zu offiziellen Anweisungen befördert werden. + + + Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. + + + + + 'Push' oder 'Pull' + + + PUSH albo PULL + + + + + Tippe: + + + Wpisz: + + + + + Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu sehen was auf dem anderen Kanal los ist. + + + Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. + + + + + Unterschiede sind schnell gefunden, weil nur die markierten Dateien untersucht werden müssen. + + + Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + + + + + Solange Deine Mitstreiter ihre eMails lesen können, können sie auch Deine Änderungen sehen. + + + Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. + + + + + Mein 'Commit' ist zu groß! + + + Mój 'commit' jest za duży! + + + + + Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + + Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + + + + + Patches: Das globale Zahlungsmittel + + + Patches: globalny środek płatniczy + + + + + Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt wird. + + + Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok + + + + + Dann, wenn du den Fehler behoben hast: + + + Jak juz uporasz sie z bledem: + + + + + Dafür ist es nun zu spät. + + + Na to jest już za późno. + + + + + Der zweite Schritt speichert dauerhaft den Schnappschuß, der sich nun im Index befindet. + + + Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. + + + + + Diese Spiele versteckten die Details vor dem Spieler und präsentierten eine bequeme Oberfläche um verschiedene Versionen des Ordners zu verwalten. + + + Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + + + + + 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + + + 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + + + + + Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon heute wäre es technisch machbar für finanzkräftige Unternehmen Hash-Kollisionen zu finden. + + + Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach + + + + + Der ``master'' 'Branch' ist ein nützlicher Brauch. + + + MASTER BRANCH jest bardzo użytecznym + + + + + Prüfe, ob die 'filter-branch' Anweisung getan hat was du wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' Operationen durchführst. + + + Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + + + + + 'Fork' eines Projekts + + + FORK projektu + + + + + Geheime Quellen + + + Utajnione Zródła + + + + + Git versteht beide Gesichtspunkte. + + + Git jest wyrozumiały dla oby dwuch stron. + + + + + Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' abzuarbeiten. + + + Może lubisz odpracować wszystkie aspekty projektu w + + + + + Das kannst du mit folgendem Befehl erstellen: + + + Możesz go utwoszyć korzystając z polecenia: + + + + + Es liegt an dir diese weise zu nutzen. + + + Stosowanie tej możliwości zależy od ciebie + + + + + Aber auch wenn wir ein normales 'Repository' auf dem zentralen Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. + + + Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. + + + + + $ git branch -M source target # instead of -m + + + git branch -M zrodlo cel # zamiast -m + + + + + Arbeit ist Spiel + + + Praca jest zabawą + + + + + Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf Git aufbauen. + + + Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. + + + + + Ich habe einfach vorausgesetzt, dass andere Systeme ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht anders sein als die Auswahl eines Texteditors oder Internetbrowser. + + + Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + + + + + Wenn du einen 'Commit' mit 'edit' markiert hast, gib ein: + + + Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + + + + + $ git init $ git add . + + + + + + + + Führe *git add* aus um sie hinzuzufügen und dann die vorhergehende Anweisung. + + + Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + + + + + Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. + + + Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. + + + + + Es ist als ob der Hauptserver gespiegelt wird. + + + Wygląda to jak klonowanie serwera. + + + + + Mit der `hg-git`-Erweiterung kann ein Benutzer von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus 'pullen'. + + + Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + + + + + Wenn du nun eine alte Version erhalten willst, musst du den ganzen Ordner archivieren. + + + Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. + + + + + Benutze *git submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten willst. + + + Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + + + + + Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine schnellere Methode vorstellt wird. + + + Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. + + + + + Aber manchmal arbeite ich an meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich inzwischen nicht austauschen können. + + + Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + + + + + Dann 'commite' dein Projekt und gib ein: + + + Wtedy COMMIT twój projekt i wykomaj: + + + + + Dann tippe: + + + Wpisz wtedy: + + + + + Aber stell Dir vor, Du hast ihn niemals notiert? + + + Wyobraź jednak sobie, że nigdy go nie notowałeś? + + + + + Sie alle haben bequeme Schnittstellen um Ordner voller Dateien zu verwalten. + + + Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. + + + + + Ultimative Datensicherung + + + Ultymatywny backup danych + + + + + und jedermann kann Dein Projekt abrufen mit: + + + i każdy może teraz sklonować twój projekt przez: + + + + + Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein 'Repository' ab. + + + W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY + + + + + Dateien ohne Bezug + + + Pliki z brakiem odniesienia + + + + + Auch wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser Faustregel weniger anfällig für falsche Vergleiche. + + + Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + + + + + Die letztere kann verwendet werden um SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich gestutzt wurde. + + + Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + + + + + Normalerweise ändern sich immer nur wenige Dateien zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. + + + W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. + + + + + Wenn mehrere 'Branches' mit unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' gemacht wird, ist ein manuelles Eingreifen erforderlich. + + + Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + + + + + Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten 'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. + + + Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. + + + + + Genau deswegen gibt es Releasezyklen. + + + Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. + + + + + Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem fatalen Fehler zu beenden. + + + Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. + + + + + In vielen Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + + + W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + + + + + Auf Git bauen + + + Budować na git + + + + + Die meisten Systeme wählen automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + + + Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + + + + + Oder noch besser, anpacken und mithelfen. + + + Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + + + + + Erstelle eine Dummy-Datei um dieses Problem zu umgehen. + + + Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + + + + + Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst: + + + Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + + + + + Vielleicht kann ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich in der Vergangenheit gebraucht habe. + + + Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + + + + + Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. + + + To zadanie dla *git rebase*, jak wyżej opisane. + + + + + Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls wird Git alle Änderungen 'comitten'. + + + Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + + + + + Das setzt voraus, dass sie einen SSH-Zugang haben. + + + Wymaga to od nich posiadanie klucza SSH do twojego komputera. + + + + + Verliere nicht Deinen KOPF + + + Nie trać głowy + + + + + Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit jedem 'Commit' erhöht wird. + + + Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". + + + + + Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den Rest. + + + Teraz MASTER BRANCH zawiera cześć 1 a BRANCH czesc2 posiada resztę. + + + + + Wenn du Glück hast oder sehr gut bist, kannst du die nächsten Zeilen überspringen. + + + Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + + + + + $ git reset --hard 1b6d + + + $ git reset --hard 1b6d + + + + + - Entferne 'Commits' durch das Löschen von Zeilen. + + + - usuń 'commits' poprzez skasowanie lini. + + + + + pick 5c6eb73 Link repo.or.cz hinzugefügt pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert pick 100834f Push-Ziel zum Makefile hinzugefügt + + + pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + + + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + + + Durch das Herauspicken der Rosinen kannst du einen 'Branch' konstruieren, der nur endgültigen Code enthält und zusammengehörige 'Commits' gruppiert hat. + + + Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + + + + + Fortgeschrittenes Rückgängig machen/Wiederherstellen + + + Zaawansowane usuwanie/przywracanie + + + + + Gewagte Kunststücke + + + Śmiałe wyczyny + + + + + Erinnere Dich an das erste Kapitel: + + + Przypomnij sobie pierwszy rozdział: + + + + + Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf irgendeine Weise für die Bearbeitung zu kennzeichnen. + + + Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. + + + + + Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen hinauswachsen. + + + Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. + + + + + Nicht nur des aktuellen Stand, sondern der gesamten Geschichte. + + + Nie tylko jedo aktualny stan, lecz również jego całą historię. + + + + + Git hat mir bewundernswert gedient und hat mich bis jetzt noch nie im Stich gelassen. + + + Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. + + + + + Oder seit Gestern: + + + Albo od wczoraj + + + + + SHA1 Schwäche + + + Słabości SHA1 + + + + + Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer bestimmten Nachricht enthält. + + + Utworzylismy REPOSITORY, ktora posiada dana z ta zawartoscia + + + + + Musst Du während eines Notfalls improvisieren? + + + Musisz improwizować w nagłym wypadku? + + + + + In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. + + + W sali sądowej można pewne zdarzenia wykreślić z akt. + + + + + Ich hatte noch keinen Grund zu wechseln. + + + Nie miałem jeszcze powodu do zmiany. + + + + + Eines Tages brauchst du vielleicht dringend einen Schraubendreher, dann bist du froh mehr als nur einen einfachen Flaschenöffner bei dir zu haben. + + + Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + + + + + Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* benannt und gesichert werden kann. + + + Innymi slowami, po przywolaniu starego stanu GIT automatychnie zamienia sie w nowy, nienazwany BRANCH, ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + + + + + Eine gute erste Annäherung ist, dass alles was eine zentralisierte Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. + + + Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. + + + + + Warum ich Git benutze + + + Dlaczego korzystam z GIT + + + + + Wenn alle 'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu lassen, da jegliche Kommunikation über SSH läuft. + + + Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + + + + + - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. + + + - *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. + + + + + Versuche + + + Wypróbuj polecenie: + + + + + Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das bekannteste freie verteilte Versionsverwaltungssystem ist. + + + Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + + + + + $ git am < email.txt + + + $ git am < email.txt + + + + + Oder noch schlimmer, deine aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz vorne beginnen. + + + Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + + + + + $ git pull einedatei + + + +$ git pull plik + + + + + Anhang A: Git's Mängel + + + Załącznik A: Wady GIT + + + + + Leider gibt es noch ein paar Problemfälle. + + + Niestety występuje jeszcze kilka innych problemów. + + + + + Mit Git ist 'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + + + Z GIT MERGE jest tak prostem, ze czasami nawet nie zauwazysz, gdy to nastepuje + + + + + *Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. + + + *clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. + + + + + Der Index: Git's Bereitstellungsraum + + + Index: ruszkowanie gita + + + + + Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten Version, falls du später mit ihnen interagieren möchtest. + + + Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + + + + + Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + + Akurat gdy strasznie zajety biezacymi zadaniami w projekcie otrzymujesz polecenie zajecie sie bledem w COMMIT 1b6d... + + + + + Am schrecklichsten sind fehlende Dateien wegen eines vergessenen *git add*. + + + Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. + + + + + Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten. + + + Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + + + + + Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung gekommen, als wir das Laden alter Stände besprochen haben. + + + Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow + + + + + Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? + + + Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? + + + + + Führe die Anweisungen des anderen Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale 'Repository' zu übertragen. + + + Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + + + + + Lasse den -global Schalter weg um diese Einstellungen für das aktuelle 'Repository' zu setzen. + + + Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + + + + + Das Beispiel 'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation über 'Git-agnostic transports' wie z.B. HTTP benötigt. + + + Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. + + + + + Ebenso, wenn Git Dateien vergessen soll: + + + To samo, gdy chcesz by GIT zapomnial o plikach: + + + + + Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung eingegeben? + + + Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? + + + + + In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation um Dateien zu bekommen. + + + W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. + + + + + Und wenn der Chef in diesem Verzeichnis herumschnüffelt, tippe: + + + A gdy szef grzebie w twoim katalogu, wpisz: + + + + + Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel. + + + Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. + + + + + Ein Liste aller 'Branches' bekommst du mit: + + + Listę wszystkich BRANCHES otrzymasz poprzez: + + + + + Du magst Kopieren und Einfügen von Hashes nicht? + + + Nie lubisz kopiować i wklejać hash-ów? + + + + + Irgendwann wirst du dann mit den anderen synchronisieren wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen Versionsverwaltungssystem und gib ein: + + + Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + + + + + Globaler Zähler + + + Licznik globalny + + + + + Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' werden: + + + Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + + + + + Dieser Zyklus wiederholt sich ein paar Mal bevor du zum 'Pushen' in den zentralen Zweig bereit bist. + + + Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + + + + + Unbeständige Projekte + + + Niestałe projekty + + + + + $ git push web.server:/pfad/zu/proj.git master + + + $ git push web.server:/sciezka/do/proj.git master + + + + + Vielleicht können Dateiformate geändert werden. + + + Ewentualnie można czasami zmienić format danych. + + + + + Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von Mitstreitern einbinden. + + + Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów + + + + + Viele Git Befehle funktionieren nicht in 'bare Repositories'. + + + Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH + + + + + Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange Geschichte existiert, aber auf Dauer wird es sich lohnen. + + + Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. + + + + + Der Absender erstellt ein 'Bundle': + + + Nadawca tworzy 'bundle': + + + + + Aber deshalb ein einfacheres, schlecht erweiterbares System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen zu verwenden. + + + Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + + + + + Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. + + + Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. + + + + + [[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum auch immer, drei Versionen zurückgehen um ein paar print Anweisungen einzufügen, damit du siehst, wie etwas funktioniert. + + + [[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzaialanie. + + + + + Für eine vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur Versionsverwaltung]. + + + Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + + + + + Wenn du deine Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + + Po skończeniu dochodzenia przejdź do orginalnego stanu: + + + + + Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten zukünftigen Operationen dann schnell und offline erfolgen. + + + Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. + + + + + Git von Anfang an zu benutzen, ist wie ein Schweizer Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen geöffnet werden. + + + Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. + + + + + Der Empfänger kann das sogar mit einem leeren 'Repository' tun. + + + Odbiorca może to zrobić z pustym repozytorium. + + + + + Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. + + + Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. + + + + + exit 1 fi + + + exit 1 fi + + + + + Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. + + + Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. + + + + + Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. + + + Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. + + + + + Das war eine Schande, denn vielleicht war deine vorherige Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du später gerne noch einmal zurückkehren möchtest. + + + To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. + + + + + [[makinghistory]] Du möchtest ein Projekt zu Git umziehen? + + + [[makinghistory]] Masz zamiar przenieść projekt do git? + + + + + - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene. + + + - *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + + + + + Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab: + + + Nie ma sprawy, jednak najpierw zabezpiecz dane. + + + + + Jeder 'Commit' ab jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen Namen geben können. + + + Kazdy COMMIT od teraz prowadzi woje dane inna droga, ktorej mozemy rowniez nadac nazwe. + + + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + + + Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die so ein System bietet. + + + Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. + + + + + Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht. + + + Bedac szczery, przez pierwsze miesiace pracy z GIT nie potrzebowalem zadnych innych, niz opisanych w tym rozdziale + + + + + Die zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird oder die ganze Zeile überarbeiten. + + + Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + + + + + Hättest du nur die Funktion während der Entwicklung getestet. + + + A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + + + + + Mit zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server herunterladen. + + + Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. + + + + + Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + + Zamiast kopiować i wklejać klucze z 'reflog', możesz: + + + + + Ein Auto, das repariert werden soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. + + + Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. + + + + + Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + + + Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + + + + + Der Unterschied zwischen A und B sind die gelöschten Dateien. + + + Roznica miedzy A i B, to skasowane pliki. + + + + + Die *pull* Anweisung holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese dann mit dem aktuellen 'Branch'. + + + Polecenie *pull* za pomoca ('fetch') laduje COMMITS i je zespala ('merged'), wtedy z aktualnym BRANCH. + + + + + Übertrage ('push') dein Projekt auf den zentralen Server mit: + + + Przenieś (PUSH) twój projekt teraz na centralny serwer: + + + + + Sogar einige Git Anweisungen selbst sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. + + + Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. + + + + + Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon 'pullen'. + + + W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + + + + + Du kannst den Zustand des Ordners sichern so oft du willst und du kannst später jeden Sicherungspunkt wieder herstellen. + + + Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. + + + + + Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + + + GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + + + + + Andere denken, daß Zweige vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit losgelassen werden. + + + Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. + + + + + Außerdem waren sich die Entwickler der Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen bewusst. + + + Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + + + + + Lokale Änderungen zum Schluß + + + Końcowe lokalne zmian + + + + + Versionsverwaltungen sind nicht anders. + + + Systemy kontroli wersji nie różnią się tutaj zbytnio. + + + + + Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien überwacht. + + + Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. + + + + + Git war das erste Versionsverwaltungssystem, das ich benutzt habe. + + + Git był pierwszym systemem kontroli wersji którego używałem. + + + + + Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden: + + + Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + + + + + Natürlich funktioniert der Trick für fast alles, nicht nur Skripts. + + + Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + + + + + Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten 'pull'-Befehl zu bleiben? + + + Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? + + + + + Dann auf dem anderen: + + + Potem na następnym: + + + + + Nach ein paar Durchläufen wird dich diese binäre Suche zu dem 'Commit' führen, der die Probleme verursacht. + + + Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. + + + + + Wenn Anwender langsame Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss unterbrochen wird. + + + Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + + + + + $ git checkout master . + + + $ git checkout master + + + + + In diesem Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. + + + W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. + + + + + Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, gibt es keinen Sicherheitsüberprüfungen mehr. + + + Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. + + + + + Von jetzt an wird + + + Od teraz poleceniem: + + + + + Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für mehr. + + + Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + + + + + Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen jedes nur die in Beziehung stehenden Dateien enthält. + + + Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. + + + + + Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte Anweisungen scheuen, bis sie absolut notwendig sind. + + + Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. + + + + + Du willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und hinter den offiziellen Änderungen sehen. + + + Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + + + + + wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell aufrufst. + + + wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + + + + + Kleinere Verfehlungen sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + + + Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + + + + + Wer bin ich? + + + Kim jestem? + + + + + Wir müssen die Datei aus allen 'Commits' entfernen: + + + Musimy ten plik usunąć ze wszystkich 'commits': + + + + + Im Gegensatz dazu habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu benutzen. + + + W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. + + + + + Der angegebene Pfad wird stillschweigend überschrieben. + + + Podana ścieżka zostanie bez pytania zastąpiona. + + + + + Jetzt lass uns das Problem etwas komplizierter machen. + + + Skomplikujmy teraz trochę cały ten problem. + + + + + Wir können solche Dateien hin und her schicken um Git 'Repositories' über jedes beliebige Medium zu transportieren, aber ein effizienteres Werkzeug ist *git bundle*. + + + W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + + + + + Der erster Klon + + + Pierwszy klon + + + + + bringt dich wieder in die Gegenwart. + + + sprowadzi cie znów do teraźniejszości. + + + + + Mit anderen Worten, es verwaltet die Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner beliebigen Version. + + + Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + + + + + Dann sage deinen Nutzern: + + + Następnie udostępnij link twoim użytkownikom: + + + + + Du kannst auch 'Commits' aufteilen. + + + Możesz również podzielć 'commits'. + + + + + $ git clone http://web.server/proj.git + + + $ git clone http://web.server/proj.git + + + + + Allgemein, *filter-branch* lässt dich große Bereiche der Chronik mit einer einzigen Anweisung verändern. + + + Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + + + + + Oder anders gesagt, du spiegelst den zentralen Server. + + + Lub inaczej mówiąc, odzwierciedlasz zentralny server. + + + + + Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je komplizierter der Kontextwechsel ist, desto größer ist der Verlust. + + + Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty + + + + + Das 'Mergen' mehrerer 'Branches' erzeugt einen 'Commit' mit mindestens zwei Eltern. + + + MERGEN kilku BRANCHES wytwarza COMMIT z minimum 2 rodzicami-COMMIT. + + + + + Wird irgendein 'Clone' beschädigt, wird dies dank des kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit anderen zu kommunizieren. + + + Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + + + + + Andere bestehen auf dem anderen Extrem: mehrere Fenster, ganz ohne Tabs. + + + Inni upierają się przy tym: więcej okien, zupełnie bez tabs. + + + + + Machst Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + + + Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + + + + + Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und überlassen die schwierigen uns Menschen. + + + Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. + + + + + 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. + + + Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. + + + + + Das wirft die Frage auf: Welchen 'Commit' referenziert `HEAD~10` tatsächlich? + + + To nasuwa pytanie; ktoremu COMMIT referencuje HEAD++10 wlasciwie? + + + + + Wenn nicht, ersetzte "bad" mit "good". + + + Jeśli nie, zamień "bad" na "good". + + + + + Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben: + + + Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + + + + + Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. + + + Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. + + + + + 'Commite' Änderungen + + + Zmiany 'commit' + + + + + Dumme Fehler verschmutzen meine 'Repositories'. + + + Głupie błędy zaśmiecają moje repozytoria. + + + + + In einem Git 'Repository' gib ein: + + + W repozytorium git natomiast podajesz: + + + + + Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. + + + Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 + + + + + Leere Unterverzeichnisse können nicht überwacht werden. + + + Nie ma możliwości wersjonowania pustych katalogów. + + + + + Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + + By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + + + + + Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben Zeile. + + + Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. + + + + + Irren ist menschlich und so kann es vorkommen, dass du zurück zu Teil I willst um einen Fehler zu beheben. + + + Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. + + + + + $ git config gc.pruneexpire "30 days" + + + $ git config gc.pruneexpire "30 days" + + + + + Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + + + I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + + + + + Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, erstelle temporären Code und so weiter und 'commite' deine Änderungen oft. + + + Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. + + + + + Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche Versionsgeschichte die beiden Versionen automatisch synchron bleiben. + + + Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. + + + + + Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung gesucht, nicht ein Versionsverwaltungssystem. + + + Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. + + + + + Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. + + + Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. + + + + + Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen: + + + Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + + + + + Ich vermute, dass ich damit nicht alleine bin und der Vergleich hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + + + Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + + + + + $ git bundle create einedatei HEAD + + + $ git bundle create plik HEAD + + + + + Stattdessen stellen wir uns wieder vor, wir editieren ein Dokument. + + + Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + + + + + Irgendwo speicherte ein Server alle gespeicherten Spiele, sonst niemand. + + + Jeden serwer zapamiętywał wszystkie gry, nikt inny. + + + + + Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das meiste verstanden haben. + + + W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. + + + + + Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + + + Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak czesto zechcesz, niezaleznie od tego w kazdej z tych wersji mozesz COMMITEN + + + + + Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen Anweisung. + + + Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. + + + + + Wenn ich zur ursprünglichen Arbeit zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr Zeit beim Versuch mich zu erinnern was ich getan habe. + + + Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. + + + + + Standardmäßig beginnst du in einem 'Branch' namens ``master''. + + + Standardowo zaczynasz w BRANCH zwanym MASTER. + + + + + Doch anstelle ein paar Knöpfe zu drücken, machst du 'create', 'check out', 'merge' und 'delete' von temporären 'Branches'. + + + Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. + + + + + Warum mehrere Tabs unterstützen und mehrere Fenster? + + + Dlaczego pozwalają używać tabs albo okien? + + + + + Das heißt, nachdem Du ein 'Bundle' gesendet hast, gib ein: + + + To znaczy, po wysłaniu 'bundle', podaj: + + + + + Das Neueste vom Neuen + + + Najnowsze z nowych + + + + + Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können Verwirrungen entstehen. + + + Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + + + + + Aber, wenn du an der Vergangenheit manipulierst, sei vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. + + + Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. + + + + + bewegt den HEAD Bezeichner drei 'Commits' zurück. + + + przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. + + + + + Vielleicht habe ich meine Kreditkartennummer in einer Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. + + + Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? + + + + + Changelog erstellen + + + Utwożenie historii + + + + + Jeder 'Clone' deines Codes ist eine vollwertige Datensicherung. + + + Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa + + + + + Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. + + + Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. + + + + + Einfach: + + + Proste; + + + + + 'Mergen' + + + MERGEN + + + + + Oder zwischen irgendeiner Version und der vorvorletzten: + + + Albo miedzy jakakolwiek wersja a przedostatnia: + + + + + Einige lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. + + + Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. + + + + + Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' einfach, aber das Zusammenfügen ('Mergen') ist schwierig. + + + Za pomoca niektorych systemow kontroli wersji utworzenie nowegoi BRANCH moze i jest prostem, jednak pozniejsze MERGE trudne. + + + + + Speichere und Beende. + + + Zapamietaj i zakończ. + + + + + 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'. + + + Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + + + + + Glücklicherweise ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + + + Na szczęście jest to silną stroną git i chyba jego racją bytu. + + + + + Zuerst, 'pull' funktioniert nicht mit 'bare Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später behandeln. + + + Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. + + + + + Zum Beispiel, nehmen wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien haben: + + + Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + + + + $ git format-patch 1b6d..HEAD^^ + + + $ git format-patch 1b6d..HEAD^^ + + + + + Die aktuelle Implementierung von Git, weniger sein Design, ist verantwortlich für diesen Pferdefuß. + + + To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. + + + + + Immerhin sind 'Clone' fast genauso schnell und du kannst mit *cd* anstelle von esoterischen Git Befehlen zwischen ihnen wechseln. + + + Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + + + + + und fahre mit deiner ursprünglichen Arbeit fort. + + + i kontynnuj przerwany prace + + + + + Hätte ich mein Projekt fertig gestellt, wäre ich trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + + + Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + + + + + Ein beliebter Vertreter ist +workdir/git-new-workdir+. + + + Ulubionym przedstawicielem jest +workdir/git-new-workdir+. + + + + + Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + + Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + + + + Das funktioniert wahrscheinlich ganz gut, wenn auch unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen Dateien braucht. + + + Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + + + + + Aber, das überschreibt die vorherige Version. + + + Jednak, przepisze to poprzednią wersję. + + + + + Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. + + + Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom + + + + + Mit ein bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen entspricht. + + + Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + + + + + Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in Versionsverwaltungssystemen die einzelne Dateien überwachen. + + + Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + + + + + Wer ist verantwortlich? + + + Kto ponosi odpowiedzialność? + + + + + Da war auch ein interessanter http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige Engpässe zu vermeiden. + + + Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. + + + + + Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, bezogen auf 'Commits', hält sich Git nicht an diese Konvention. + + + Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. + + + + + Du kannst die Nummer für den ersten Elternteil weglassen. + + + Mozesz pominac numer pierwszego rodzica + + + + + Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. + + + Możesz pracować nad dwoma funkcjami jednocześnie + + + + + Um das Leben zu vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die Firmware. + + + By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + + + + + Zum Beispiel ist `git checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu komprimieren als eine Sammlung von Änderungen auf Dateibasis. + + + Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + + + + + um dein Skript herunterzuladen. + + + by mogli zładować skrypt. + + + + + Hast Du so versessen programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? + + + Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? + + + + + 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. + + + Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. + + + + + Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto und erstellen ein 'Repository' in Deinem Webverzeichnis: + + + Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + + + + + Versionsverwaltung im Untergrund + + + Zarządzanie wersją w poddziemiu + + + + + Chronik umschreiben + + + Przepisanie historii + + + + + Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + + Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + + + + + Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, wird von unzähligen Projekten benutzt. + + + Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. + + + + + Dann mache diese Änderungen und gib ein: + + + Wykonaj je i wpisz: + + + + + Dann erstelle ein Git 'Repository' in deinem Arbeitsverzeichnis: + + + Utwórz GIT REPOSITORY w katalogu roboczym + + + + + Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel ein Spieler geleistet hat. + + + Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + + + + + 'Merge' Konflikte + + + Konflikty z 'merge' + + + + + Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der ganze Verlauf geklont wird. + + + Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + + + + + Einfaches Veröffentlichen + + + Uproszczone publikowanie + + + + + *Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. + + + *Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. + + + + + Er muss sicher sein, aber nicht privat. + + + Musi być bezpieczne, jednak nie musi być prywatne + + + + + Dateihistorie + + + Historia pliku + + + + + Bei einem Mercurial Projekt gibt es gewöhnlich immer einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt automatisch die Benutzer von Mercurial mit einbezieht. + + + W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + + + + + Sei vorsichtig, wenn Du 'checkout' auf diese Weise benutzt. + + + Bądź ostrożny stosując 'checkout' w ten sposób. + + + + + Du kannst noch viel mehr machen: die Hilfe erklärt, wie man 'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu beschleunigen. + + + Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + + + + + Wenn nötig, starte den Git-Dämon: + + + Jeśli konieczne, wystartuj GIT-DAEMON + + + + + Du bekommst einen Haufen Dateien eines bestimmten Sicherungsstands. + + + Otrzymasz całą masę plików konkretnego stanu + + + + + Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten Elternteil während eines 'Merge'; häufig bist du nur von Änderungen betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen die von anderen 'Branches' eingebracht wurden. + + + To jest erstrebenswert, poniewaz aktualny BRANCH staje sie pierwszym rodzicem podczas MERGE; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym BRANCH bardziej, niz ze zmianami z innych BRANCHES. + + + + + Ein 'Commit' ohne die *-a* Option führt nur den zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + + + Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + + + + + Vielleicht hast Du gerade bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + + + Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + + + + + Nun kannst du Fehler beheben, Änderungen vom zentralen 'Repository' holen ('pull') und so weiter. + + + Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. + + + + + Zum Beispiel wäre es sicher, ihn in einer Zeitung zu veröffentlichen, denn es ist schwer für einen Angreifer jede Zeitungskopie zu manipulieren. + + + Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + + + + + Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + + By na przyklad logi drugiego rodzica pokazac + + + + + zeigt den Namen des aktuellen 'Branch'. + + + pokaże nazwę aktualnego 'branch'. + + + + + das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie zuletzt geändert hat und wann. + + + które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. + + + + + Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen werden; nur diejenigen mit SSH Zugriff können es einsehen. + + + To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. + + + + + Hast du es satt, wie sich ein Projekt entwickelt? + + + Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt + + + + + Solltest du kürzlich konkurrierende Änderungen an der selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut 'commiten' nachdem du die Konflikte aufgelöst hast. + + + Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + + + + + Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + + Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + + + + + Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' gewechselt, wie in: + + + Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + + + + + Hinzufügen, Löschen, Umbenennen + + + Dodac, skasowac, zmienic nazwe + + + + + 'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das Öffnen eines neuen Browserfenster. + + + BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. + + + + + So schwierig zu lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das Spiel zu beenden. + + + Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. + + + + + Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger Schaden zugefügt. + + + Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. + + + + + Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. + + + Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales + + + + + Git über alles + + + Git ponad wszystko + + + + + Temporäre 'Branches' + + + Tymczasowe BRANCHES + + + + + Kontinuierlicher Arbeitsfluss + + + Nie przerywany przebieg pracy + + + + + Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin um die alte Version zu erhalten. + + + Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. + + + + + Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik ein, mit allen Fehlern, Nachteilen und Mängeln. + + + Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. + + + + + $ git blame bug.c + + + $ git blame bug.c + + + + + Um diese Angaben explizit zu setzen, gib ein: + + + Aby wprowadzić te dane bezpośrednio, podaj: + + + + + Ein unmittelbarer Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist keine Kommunikation mit dem Hauptserver notwendig. + + + Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + + + + + Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. + + + powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. + + + + + M 100644 inline hello.c data <<EOT #include <unistd.h> + + + +M 100644 inline hello.c data <<EOT #include <unistd.h> + + + + + Aber es ist eine Illusion. + + + Ale to iluzja. + + + + + um den 'Patch' anzuwenden. + + + By zastosować patch. + + + + + oder Mercurial: + + + albo Mercurial: + + + + + Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + + Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + + + + + Ebenso grundlegende Funktionen wie das Durchsuchen der Chronik oder das 'comitten' einer Änderung. + + + Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. + + + + + Nun gib ein: + + + Podajemy teraz; + + + + + Verteilte Kontrolle + + + Rozproszona kontrola + + + + + Je mehr gespeicherte Spiele benötigt werden, desto mehr Kommunikation ist erforderlich. + + + Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + + + + + Wer macht was? + + + Kto robi co? + + + + + Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst leeren Git 'Repository'. + + + Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY + + + + + Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein Computerspiel vor. + + + Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. + + + + + Obwohl es extrem lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, so hat es doch zwei Vorteile: + + + Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + + + + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + + + $ git-new-workdir ein/istniejacy/repo nowy/katalog + + + + + Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. + + + W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. + + + + + Du kannst auch nach dem 5. letzten 'Commit' fragen: + + + Możesz również udać się do 5 z ostatnich COMMIT: + + + + + untersuchen wes you can study for writing exporters, and also to transport repositories in a human-readable format. + + + + + + + + Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler steigt. + + + Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. + + + + + Um es zu erzwingen, verwende: + + + By zmusić dgo do tego, możesz użyć: + + + + + Es gibt mindestens 3 Lösungen. + + + Istnieja przynajmniej 3 rozwiazania. + + + + + Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem Ordner: + + + Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + + + + + Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. + + + Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. + + + + + Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + + Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + + + + + Diese Operationen sind schnell und lokal, also warum nicht damit experimentieren um die beste Kombination für sich selbst zu finden? + + + Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. + + + + + Jeder Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. + + + Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. + + + + + Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann. + + + To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + + + + + Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + + + Standardowo dane te pozostają jeszcze przez 2 tygodnie. + + + + + Sagen wir du bist im `master` 'Branch'. + + + Powiedzmy też, że znajdujesz sie w MASTER BRANCH. + + + + + Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze: + + + By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + + + + + Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + + Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + + + + + Firewalls könnten uns stören und was, wenn wir gar keine Berechtigung für eine Serverkonsole haben. + + + Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + + + + + Dann nutze: + + + Możesz w tym wypadku skorzystać z: + + + + + Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. + + + Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, + + + + + Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + + Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + + + + + In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die Standardaktion. + + + W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. + + + + + Git referenziert Änderungen anhand ihres SHA1-Hash, was in vielen Fällen besser ist. + + + Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + + + + + Dateien herunterladen + + + Zładowanie danych + + + + + Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu zerstören. + + + Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. + + + + + Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am Dateiende. + + + Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. + + + + + Git versetzt dich wieder auf einen Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert so die Möglichkeiten. + + + Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. + + + + + Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen und am Teil II arbeiten, bevor Teil I offiziell freigegeben wurde. + + + Dzieki bezbolowemu BANCHEN i MERGEN kozemy te regoly naciagnac i praccowac nad druga czescia juz zanim pierwsza zostanie oficjalnie zatwierdzona + + + + + Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus. + + + Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + + + + + Zum Glück ist es einfach, Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' einen Zähler erhöht. + + + Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. + + + + + Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen: + + + Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + + + + + Genauso wenig setzt das 'Clonen' des zentralen 'Repository' dessen Bedeutung herab. + + + Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + + + + + Ein Versionsverwaltungssystem zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die periodisch von einer Webcam gemacht werden. + + + Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + + + + + Es sei denn die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, oder die `--bare` Option wird übergeben. + + + Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + + + + + Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. + + + Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. + + + + + In der Praxis möchtest Du aber das "refs/heads/" entfernen und Fehler ignorieren: + + + W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + + + + + Wir haben gesehen, dass man mit <<makinghistory, *git fast-export* und *git fast-import* 'Repositories' in eine einzige Datei konvertieren kann und zurück>>. + + + Widzieliśmym, że poleceniami <<makinghistory, *git fast-export* i *git fast-import* możemy konwertować całe repozytoria w jeden jedyny plik i spowrotem>>. + + + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + + + In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach einem bestimmten Punkt durch Eingabe von: + + + W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + + + + + Wenn du keine lokalen Änderungen hast, dann ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. + + + Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu zarzadzania wersja. + + + + + Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die Sicherungen der anderen bekommt? + + + W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? + + + + + Die, welche dir am besten gefällt. + + + To, ktore najbardziej tobie odpowiada. + + + + + Wenn Spieler vom Hauptserver herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt gespeicherte. + + + Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany + + + + + Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das Ergebnis ist das selbe. + + + Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. + + + + + Dann: + + + Wtedy: + + + + + Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein Verlauf um die Größe des gesamten Projekts wachsen. + + + Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + + + + + Alternativ kannst Du *git commit \--interactive* verwenden, was dann automatisch die ausgewählten Änderungen 'commited' nachdem Du fertig bist. + + + Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + + + + + Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur als akademische Übungen. + + + Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. + + + + + Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit: + + + Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + + + + + Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen wäre. + + + Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 COMMITS wcześniej utworzyć branch- + + + + + Git für Fortgeschrittene + + + Git dla zaawansowanych + + + + + Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes angezeigt hat? + + + Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? + + + + + Rund ums 'Clonen' + + + Polecenie CLONEN + + + + + um die letzte Beschreibung zu ändern. + + + by zmienić ostatni opis. + + + + + Multitasking mit Lichtgeschwindigkeit + + + Multitasking z prędkością światła + + + + + Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die ignoriert werden sollen. + + + Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + + + + + - Organisiere 'Commits' durch verschieben von Zeilen. + + + - przeorganizuj 'commits' przesuwając linie. + + + + + Klassische Quellcodeverwaltung + + + Klasyczne zarządzanie kodem źródłowym + + + + + Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes: + + + Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + + + + + Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' umwandeln, indem man in ein leeres 'Repository' 'pushed'. + + + To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT + + + + + Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + + Po stronie odbiorcy zapamiętaj email jako daną i podaj: + + + + + Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) und stellt den vorherigen Stand wieder her. + + + Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. + + + + + Git ruft eine Stand ab, der genau dazwischen liegt. + + + Git przywoła stan, który leży dokładnie pośrodku. + + + + + Du kannst auch eine Gruppe von 'Commits' angeben: + + + Możesz podać grupę 'commits' + + + + + Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe von: + + + Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + + + + + Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden um die am häufigsten benutzten Anweisungen zu verkürzen: + + + Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + + + + + Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' konfigurieren. + + + Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. + + + + + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + + + * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + + + + + <<branch,Dazu kommen wir später>>. + + + <<branch, wrócimy do tego później>> + + + + + Viele Kommandos sind mürrisch vor dem intialen 'Commit'. + + + Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. + + + + + Die Chef-Taste + + + Przycisk SZEF + + + + + EOT + + + EOT + + + + + Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige 'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder irgendetwas anderes. + + + Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + + + + + Bei Softwareprojekten kann das ähnlich sein. + + + W projektach software moze to wygladac podobnie. + + + + + In ein paar Jahren hat vielleicht schon ein ganz normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' unbemerkt zu korrumpieren. + + + Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + + + + + Über die Zeit haben sich einige lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' mit dem offiziellen Zweig. + + + Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. + + + + + Siehe *git help branch*. + + + Zobacz: *git help branch*. + + + + + Computer synchronisieren + + + Synchronizacja komputera + + + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + + + Die Datei zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden könnte. + + + Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. + + + + + Ein Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die Konstruktion fortgesetzt werden kann. + + + Prototyp musi czekac na wyprodukowanie baustein zanim mozna podjac dalsza konstrukcje. + + + + + und die letzten zehn 'Commits' erscheinen in deinem bevorzugten $EDITOR. Auszug aus einem Beispiel: + + + i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + + + + + * `reword` um die Log-Beschreibung zu ändern. + + + * `reword`, by zmienić opisy logu. + + + + + Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus der Geschichte zu löschen. + + + Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. + + + + + Meistens befindet es sich auf einem Server, der nicht viel tut außer Daten zu verbreiten. + + + Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. + + + + + Standardmäßig nutzt Git Systemeinstellungen um diese Felder auszufüllen. + + + Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. + + + + + Die Hilfeseiten schlagen vor 'Tags' zu benutzen um dieses Problem zu lösen. + + + Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. + + + + + Git tauscht selten Daten direkt zwischen Deinem Projekt und seiner Versionsgeschichte aus. + + + Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. + + + + + Du kannst einen 'Patch' Entwicklern schicken, ganz egal, was für ein Versionsverwaltungssystem sie benutzen. + + + Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. + + + + + Gib ein: + + + Za pomoc + + + + + int main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + + + Versionsverwaltung + + + Kontrola wersji + + + + + und deine Nutzer können ihr Skript aktualisieren mit: + + + a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + + + + + Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen Logdateien. + + + Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. + + + + + Wir haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. + + + We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. + + + + + Das neue Verzeichnis enthält die Dateien mit deinen Änderungen. + + + Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami + + + + + Normalerweise wird ein Skript, das diese Anweisung benutzt, hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem einzigen Lauf zu migrieren. + + + Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + + + + + um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. + + + by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, + + + + + Siehe auf der Git Hilfeseite für einige Anwendungsbeispiele. + + + Na stronach pomocy git znajdziesz więcej zasosowań. + + + + + Die vergangenen 'Commits' wissen nichts von der Zukunft. + + + Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + + + + + Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der häufigsten Anweisungen umgehen. + + + Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + + + + + Aber wie kannst Du zurück in die Zukunft? + + + Ale jak teraz wrócić znów do przyszłości? + + + + + $ git branch -D dead_branch # instead of -d + + + $ git branch -D dead_branch # zamiast -d + + + + + ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" Änderungen). + + + by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) + + + + + Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'. + + + Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + + + + + Andere können davon ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und dass er die offizielle Version enthält. + + + Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję + + + + + Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert hat. + + + Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + + + + + Wirklich, diese Anweisung kann Klartext-'Repositories' über reine Textkanäle übertragen. + + + Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + + + + + Welche Lösung ist die beste? + + + Ktore rozwiazanie jest najlepsze? + + + + + *Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + + + *Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie: *git branch*. + + + + + Dann mache folgendes auf deinem Server: + + + To po prostu zwób coś takiego na twoim serwerze: + + + + + Antworte mit "y" für Ja oder "n" für Nein. + + + Odpowiedz po prostu "y" dla tak, albo "n" dla nie. + + + + + Jede Datei einzeln nachzuprüfen ist frustrierend und ermüdend. + + + Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. + + + + + Ich spiele Computerspiele schon fast mein ganzes Leben. + + + Gram w gry komputerowe przez całe moje życie. + + + + + Während dem Warten auf das Ende der Serverkommunikation tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails lesen oder Dokumentation schreiben. + + + Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. + + + + + Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen. + + + Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + + + + + Das ist eine primitive und mühselige Form der Versionsverwaltung. + + + Jest to prymitywna i pracochłonna forma kontroli wersji. + + + + + Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen: + + + Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + + + + + Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu schreiben und außerdem um 'Repositories' in Klartext zu übertragen. + + + Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. + + + + + Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash des letzten 'Commit' verknüpft ist. + + + Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + + + + + Die Textdatei ist wiederhergestellt. + + + Poprzedni plik jest przywrocony do stanu pierwotnego + + + + + Wenn du gut voran gekommen bist, willst du das Erreichte sichern. + + + Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. + + + + + Wenn du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir Konflikte melden. + + + Jesli jednak wprowadziles zmiany, GIT bedzie je automatycznie MERGEN i powiadomi cie o eventualnych konfliktach. + + + + + Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne Netzwerkverbindung? + + + Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? + + + + + In irgendeinem Verzeichnis: + + + W pewnym katalogu: + + + + + Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. + + + Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. + + + + + wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den ``bereinigt'' 'Branch' an. + + + zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. + + + + + *Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. + + + *Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. + + + + + $ git clean -f -d + + + $ git clean -f -d + + + + + Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem Ordner voller Dateien. + + + Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. + + + + + Möglicherweise reicht ORIG_HEAD nicht aus. + + + Może się zdarzyć, że ORIG_HEAD nie wystarczy. + + + + + Das geht wesentlich schneller, aber der resultierende Klon hat nur eingeschränkte Funktionalität. + + + Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + + + + + gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt werden kann. + + + produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. + + + + + 'Branches' verwalten + + + Organizacja BRANCHES + + + + + Mit etwas Glück, wenn Git's Verbreitung zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie vielleicht implementiert. + + + Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + + + + + Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten offiziellen Änderungen dort hin. + + + Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. + + + + + Dann gehe wieder ins neue Verzeichnis und gib ein: + + + Następnie przejdź do dowego katalogu i podaj: + + + + + Der Index ist ein temporärer Bereitstellungsraum. + + + Index jest tymczasowym rusztowaniem + + + + + $ git symbolic-ref HEAD + + + $ git symbolic-ref HEAD + + + + + Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese Bezeichnung hatten. + + + Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. + + + + + Die Ursachen für die großen Unterschiede sollten ermittelt werden. + + + Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. + + + + + $ git apply < mein.patch + + + $ git apply < moj.patch + + + + + Dass, wenn der Chef ins Büro spaziert, während du das Spiel spielst, du es schnell verstecken kannst? + + + By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + + + + + Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + + Podobnie możesze celowo wykasować wybrane COMMITS. + + + + + Zusätzlich müssen verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines 'Branch' mit einem abweichenden initialen 'Commit'. + + + Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + + + + + $ git bundle create einedatei HEAD ^1b6d + + + +$ git bundle create plik HEAD ^1b6d + + + + + Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen Rechner. + + + Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. + + + + + In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die Fertigstellung des ersten Schritt warten. + + + W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego + + + + + Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen referenzieren. + + + Mozesz tez jakiegos rodzica referowac znaczkiem CARET + + + + + Wie du dir vielleicht schon gedacht hast, verwendet Git 'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + + + Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + + + + + Du merkst, dass du vergessen hast eine Datei hinzuzufügen? + + + Zauważasu, że zapomniałeś dodać jakiegoś pliku? + + + + + Beginne ein paar 'Branches': + + + Wystartuj kilka BRANCHES: + + + + + und noch viel mehr + + + i tak dalej. + + + + + Verhindere schlechte 'Commits' + + + Zapobiegaj złym 'commits' + + + + + Ein einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und so weiter. + + + Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. + + + + + Die resultierenden Dateien können an *git-send-email* übergeben werden oder von Hand verschickt werden. + + + Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. + + + + + In extremen Fällen trifft das auch auf die grundlegenden Anweisungen zu. + + + W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. + + + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + + + Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen das Zerstören der Daten. + + + Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. + + + + + Ansonsten: + + + W przeciwnym razie: + + + + + Einleitung + + + Wprowadzenie + + + + + Der Verlauf der Firmware interessiert den Anwender nicht und Änderungen lassen sich schlecht komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' unnötig auf. + + + Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + + + + + Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut ('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas zwischen 1 und 127 für 'bad'. + + + Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. + + + + + Aber einige Leute sind diesen Zähler gewöhnt. + + + Niektórzy jednak przyzwyczaili się do tego licznika. + + + + + Nun können wir die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten Stand, aber wir müssen den 'Master Branch' verlassen. + + + Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic MASTER BRANCH. + + + + + Das Problem ist, den entsprechenden SHA1-Wert zu finden. + + + Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. + + + + + Kleinere Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie möglich bewirken. + + + Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + + + + + wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. + + + To polecenie skasuje COMMIT o wybranym hash-u. + + + + + Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. + + + Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami + + + + + A, B, C, D sind 4 aufeinander folgende 'Commits'. + + + A, B, C i D sa 4 nastepujacymi po sobie COMMITS. + + + + + Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git 'Repositories' arbeiten. + + + Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git + + + + + Eine unzuverlässige Internetverbindung stört mit Git nicht sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig wie ein lokale Festplatte sein sollte. + + + Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. + + + + + Einige Projekte erfordern, dass dein Code überprüft werden muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + + + Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, zanim bedziesz mogl zaczac z druga czescia + + + + + Bei verteilen Systemen ist das viel besser, da wir die benötigt Version lokal 'clonen' können. + + + Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + + + + + Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch Ausführen von: + + + Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + + + + + Dies verleiht ihnen eine universelle Anziehungskraft. + + + Dodaje im to uniwersalnej mocy przyciągania. + + + + + Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus veröffentlichen. + + + Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + + + + + Dein Arbeitsverzeichnis erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu editieren. + + + Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować + + + + + Es können noch weitaus kompliziertere Situationen entstehen. + + + Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. + + + + + Wir müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen 'pullen', also abholen wollen. + + + Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. + + + + + Einige plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für seine Arbeit einen neuen 'Branch' anzulegen. + + + Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + + + + + *Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. + + + *Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. + + + + + $ git rebase --continue + + + $ git rebase --continue + + + + + Nun kannst du überall wild temporären Code hinzufügen. + + + Teraz mozesz temporarnie wszedze wprowadzac na dziko kod + + + + + $ git bundle create neuesbundle HEAD ^letztesbundle + + + $ git bundle create nowybundle HEAD ^ostatnibundle + + + + + um mehr zu erfahren. + + + by dowiedzieć się więcej. + + + + + Mit diesem Zauberwort verwandeln sich die Dateien in deinem Arbeitsverzeichnis plötzlich von einer Version in eine andere. + + + Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. + + + + + Trotzdem gibt es Situationen, in denen es besser ist einen oberflächlichen Klon mit der `--depth` Option zu erstellen. + + + Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. + + + + + Geschichte machen + + + Tworzyć historię + + + + + Stell dir zum Beispiel vor, du willst ein Projekt veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen privat bleiben muss. + + + Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. + + + + + Wenn ein Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + + + Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + + + + + Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche die Form einer großen Binärdatei annimmt. + + + Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. + + + + + Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen gib ein: + + + Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + + + + + Teste die Funktion und wenn sich immer noch nicht funktioniert: + + + Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + + + + Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? + + + A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? + + + + + Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem nutzt und vermisst du Git? + + + Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? + + + + + Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. + + + Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. + + + + + Die Summe der Bemühungen verschlimmerte die Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu verbrauchen um noch längere Wartezeiten zu verhindern. + + + Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. + + + + + $ git commit --amend + + + $ git commit --amend + + + + + Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, werden verteilte Systeme genannt und können als eine Verallgemeinerung der zentralisierten Systeme verstanden werden. + + + Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. + + + + + Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + + + O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + + + + + Unter den Befehlen im Zusammenhang mit Git's verteilter Art, brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an unterschiedlichen Orten halten. + + + Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + + + + + Viele Versionen auf diese Art zu archivieren ist mühselig und kann sehr schnell teuer werden. + + + Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + + + + + Der erste Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten Datei im Index. + + + Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. + + + + + Um zum Beispiel die Unterschiede zum ersten Elternteil anzuzeigen: + + + By na przyklad pokazac roznice miedzy pierwszym rodzicem + + + + + Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen: + + + Jesli dodales nowe pliki, musisz o tym poinformowac GIT + + + + + Aber es gibt einen viel einfacheren Weg. + + + Istnieje jednak dużo prostszy sposób. + + + + + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + + + * `squash` by połączyć 'commit' z poprzednim ('merge'). + + + + + zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + + + pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + + + + + Betrachten wir Webbrowser. + + + Przyjżyjmy się takiej przeglądarce internetowej. + + + + + $ git config gc.auto 0 + + + $ git config gc.auto 0 + + + + + Wenn du fertig bist, + + + JAk juz jestes gotowy + + + + + Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu erweitern. + + + Dość łatwo zastosować ten sam trik na dowolną ilość części. + + + + + Um das Verschieben zu erzwingen, gib ein: + + + By wymusić przesunięcie, podaj: + + + + + Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. + + + By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. + + + + + Üblicherweise ist deren Verhalten einstellbar. + + + Zazwyczaj ich zachowanie daje się ustawić. + + + + + Git über SSH, HTTP + + + Git przez SSH, HTTP + + + + + Nun stell dir ein ganz kompliziertes Computerspiel vor. + + + Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. + + + + + Wenn Du zufrieden bist, gib + + + Jeśli jesteś zadowolony z wyniku, wpisz: + + + + + Das `tailor` Programm konvertiert Bazaar 'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während `bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + + + Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + + + + + Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von 20 Null-Bytes gesetzt. + + + Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash + + + + + Eine Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + + + Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + + + + + Folglich ist standardmäßig das 'Pushen' per Git-Protokoll verboten. + + + Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + + + + + Und eigene Sicherungen bereitstellt? + + + Natomiast własne innym udostępni? + + + + + Anstelle des zweiten Befehl kann man auch `git commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. + + + Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. + + + + + Versuche auch: + + + Sprobuj rowniez: + + + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + + + Du kannst Dir alle SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten 'Commit' findest. + + + Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' + + + + + Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu überschreiben, wenn das einen Datenverlust zur Folge hat. + + + Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. + + + + + Du willst deine laufenden Arbeiten für dich behalten und andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert hast. + + + Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. + + + + + $ git tag -f letztesbundle HEAD + + + $ git tag -f ostatnibundle HEAD + + + + + Du denkst, du kannst das besser? + + + Uważasz, że potrafisz to lepiej + + + + + Eigenarten der Anwendung + + + Charakterystyka zastosowania + + + + + Netzwerkressourcen sind einfach teurer als lokale Ressourcen. + + + Zasoby sieciowe są po prostu droższe niż zasoby lokalne. + + + + + In diesem Fall verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber sehr flexibel. + + + W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. + + + + + Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch Dateinamen mit ungewöhnlichen Zeichen. + + + Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików + + + + + Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. + + + Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. + + + + + Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses Null-'Commits'. + + + Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + + + + + Leider kenne ich keine solche Erweiterung für Git. + + + Niestety nie są mi znane takie rozszerzenia dla GIT. + + + + + Mit ein paar Tastendrücken kannst Du mehrere geänderte Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') oder Änderungen einzelner Dateien nachprüfen und hinzufügen. + + + Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. + + + + + Beachte, dass alle Änderungen, die nicht 'commitet' sind übernommen werden. + + + Oauwaz, ze wszystkie zmiany, ktorre nie zostaly COMMITTED, zostaly przejete + + + + + Siehe *git help diff* und *git help rev-parse*. + + + Sprawdź *git help diff* i *git help rev-parse*. + + + + + Wann immer du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + + Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + + + + + Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom anderen Versionsverwaltungssystem ab. + + + Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. + + + + + Wie auch immer, vorausgesetzt du hast oft 'comittet', kann Git dir sagen, wo das Problem liegt: + + + Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + + + + + Auch auf Deiner Seite ist alles was Du brauchst ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' aufzusetzen. + + + Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + + + +
diff --git a/pl/omegat-tmp/pl-omegat.tmx b/pl/omegat-tmp/pl-omegat.tmx new file mode 100644 index 0000000..69640bd --- /dev/null +++ b/pl/omegat-tmp/pl-omegat.tmx @@ -0,0 +1,6541 @@ + + + +
+
+ + + + Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' Anweisungen. + + + Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. + + + + + Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + + + A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + + + + + Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht installiert. + + + Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. + + + + + Erstelle ein Git 'Repository' für deine Dateien: + + + Utwóż GIT REPOSITORY dla twoich danych + + + + + Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. + + + Wyglada jakbysmy ta dana zmienili i COMMITED + + + + + Die Änderungen bleiben im .git Unterverzeichnis gespeichert und können wieder hergestellt werden, wenn der entsprechende SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" oben). + + + Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). + + + + + Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch Eingabe von: + + + Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + + + + + Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice <alice@example.com> Thu, 01 Jan 1970 00:00:00 +0000 data <<EOT Initial commit. + + + + + $ git bisect reset + + + $ git bisect reset + + + + + Angenommen, wir sind bei D: + + + Zalozmym ze jestesmy w D: + + + + + Es stellt sich heraus, dass diese Notation immer den ersten Elternteil wählt. + + + Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. + + + + + Die Anweisung + + + Polecenie: + + + + + Um ein tarball-Archiv des Quellcodes zu erzeugen, verwende ich den Befehl: + + + Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + + + + + Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da andere Operationen dafür unglaublich effizient sind. + + + Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. + + + + + Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die Forschung SHA1 komplett unnütz macht. + + + Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + + + + + ... + + + ... + + + + + Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden kann. + + + Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany + + + + + Computerspiele machten das lange Zeit so, viele von ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + + + Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + + + + + Außerdem kannst du sie komprimieren um Speicherplatz zu sparen. + + + Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. + + + + + In manchen Systemen benötigt der Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu sehen oder um eine Datei zum Bearbeiten zu öffnen. + + + W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + + + + + Git unter Microsoft Windows kann frustrierend sein: + + + Korzystanie z GIT pod Microsoft Windows może być frustrujące: + + + + + und erstelle neue Aktualisierungsbundles mit: + + + a nowy 'bundle' tworzymy następnie poprzez: + + + + + $ git bisect run mein_skript + + + $ git bisect run moj_skrypt + + + + + Stand sichern + + + Backup + + + + + Man kann das aber auch in einem einzigen Schritt ausführen mit: + + + Można to także wykonać za jednyym zamachem: + + + + + Wir möchten die Dateien in D wieder hinzufügen, aber nicht in B. Wie machen wir das? + + + Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + + + + + Dann gib ein: + + + Wpisujesz: + + + + + Wie auch immer, mit Git kannst du nicht viel falsch machen. + + + Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. + + + + + Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des 'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. + + + Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu + + + + + Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden Eigenschaften von Git. + + + niezwloczne BRANCHEN i MERGEN sa uderzajacymi wlasciwosciami GIT + + + + + Du kannst diese Änderungen sogar 'commiten'. + + + Mozesz te zmiany nawet COMMITEN. + + + + + Git benutzt hierzu die Abkürzung *git mv*, welche die gleiche Syntax wie *mv* hat. + + + GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* + + + + + Natürlich sind dann viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' übermittelt werden. + + + Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. + + + + + Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git log* angezeigt werden. + + + Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. + + + + + In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' gehalten werden und die Binärdatei außerhalb des Projekts. + + + W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. + + + + + Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. + + + na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. + + + + + Um das Löschen zu erzwingen, gib ein: + + + By wymusić skasowanie, podaj: + + + + + Schnelle Fehlerbehebung + + + Szybkie koregowanie bledow. + + + + + Aktualisiere das lokale 'Repository' erneut mit 'pull', löse eventuell aufgetretene 'Merge'-Konflikte und versuche es nochmal. + + + Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + + + + + $ git format-patch 1b6d + + + git format-patch 1b6d + + + + + Persönliche Erfahrungen + + + Osobiste doświadczenia + + + + + Wieder andere bevorzugen irgendetwas dazwischen. + + + Inni znowu wolą coś pomiędzy. + + + + + Du kannst sogar 'Branches' in einem 'Repository' umorganisieren. + + + Możesz nawet przeorganizować 'branches' w repozytorium. + + + + + Auch wenn Git die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + + + Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + + + + + Ich bin schnell in die Anwendung hineingewachsen und betrachtete viele Funktionen als selbstverständlich. + + + Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. + + + + + Im Gegensatz zu vielen anderen Versionsverwaltungssystemen funktioniert diese Operation offline, es wird nur von der lokalen Festplatte gelesen. + + + W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + + + + + Du willst zahlreiche, vor Manipulation geschützte, redundante Datensicherungen an unterschiedlichen Orten? + + + Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach + + + + + In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen 'bundlest', die in den anderen 'Repositories' fehlen. + + + W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. + + + + + Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und "A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen Bereich. + + + Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. + + + + + ---------------------------------- + + + ---------------------------------- + + + + + Ich habe diese Phänomen aus erster Hand erfahren. + + + Dowiedziałem się o tym fenomenie z pierwszej ręki. + + + + + Um wieder die Computerspielanalogie anzuwenden: + + + Jeśli znów skorzystamy z analogii do gier komputerkowych: + + + + + *Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. + + + *reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. + + + + + Erste Schritte + + + Pierwsze kroki + + + + + $ git config --global user.name "Max Mustermann" $ git config --global user.email maxmustermann@beispiel.de + + + $ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + + + + + um den Stand eines bestimmten 'Commits' wieder herzustellen und alle nachfolgenden Änderungen für immer zu löschen. + + + możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + + + + + Geschichtsstunde + + + Lekcja historii + + + + + Das gilt stellvertretenden für andere Anweisungen. + + + Reprezentuje to również wszystkie inne polecenia. + + + + + http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine herkömmliche Datensicherung. + + + Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + + + + + Du arbeitest an einem aktiven Projekt. + + + Pracujesz nad aktywnym projektem. + + + + + Einige Git Anweisungen lassen Dich ihn manipulieren. + + + Niektóre komendy git pozwolą ci nim manipulować. + + + + + Einige Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für unterschiedliche Webseiten. + + + Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron + + + + + Arbeite wie du willst + + + Pracuj jak chcesz + + + + + Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für alle relevant. + + + Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + + + + + Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach Herzenslust. + + + Przejdź teraz do nowego katalogu i pracuj według upodobania. + + + + + den Zustand der Dateien des anderen Computer auf den übertragen, an dem du gerade arbeitest. + + + przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz + + + + + Wenn du wieder zurück zu deinen Änderungen willst, tippe: + + + Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + + + + + Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + + + Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + + + + + Oder rufe den fünftletzten 'Commit' ab, mit: + + + Albo przywołaj 5 ostatnich 'commits' za pomocą: + + + + + Zum Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert wird. + + + Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany + + + + + Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + + Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + + + + + Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar ist. + + + Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. + + + + + Nichts könnte weiter von der Wahrheit entfernt sein. + + + Nic nie jest bardziej oddalone od rzeczywistości. + + + + + Übung + + + Cwiczenie + + + + + Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + + Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + + + + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + + + $ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + + + + + Man muss vom Hauptserver das alte gespeicherte Spiel anfordern. + + + Za każdym razem trzeba ściągnąć wszystkie dane z serwera. + + + + + bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + + + znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + + + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + + + + Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. + + + Termin opublikowania pewnej wlasciwosci zbliza sie. + + + + + Ein dummer Aberglaube + + + Głupi przesąd + + + + + Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin süchtig nach schellen Ausführungszeiten. + + + Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + + + + + Die Entwicklung findet in den 'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis auskommen. + + + Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + + + + + Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir uns mit ihm auseinandersetzen um das bisherige zu erklären. + + + Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. + + + + + Deine Nutzer werden nie mit Versionen in Kontakt kommen, von denen du es nicht willst. + + + Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali + + + + + Alles, was man mit dem zentralen 'Repository' tun kann, kannst du auch mit deinem 'Clone' tun. + + + Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + + + + + Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + + Lokalne zmiany przekazujemy do serwera poleceniem: + + + + + Was habe ich getan? + + + Co ostatnio robilem? + + + + + Für jetzt, merke dir + + + zapamietaj jednak na razie, że: + + + + + In diesem Fall, gib folgendes ein: + + + W tym wypadku użyj komendy: + + + + + Menschen sind nicht gut im Kontextwechsel. + + + Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + + + + + Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. + + + Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. + + + + + Wo ging alles schief? + + + Gdzie wszystko poszło źle? + + + + + Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. + + + Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. + + + + + Auch wenn du den ``master'' 'Branch' umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch respektieren. + + + Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + + + + + Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der Änderungen. + + + Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. + + + + + Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' zuletzt gesendet wurde. + + + Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. + + + + + Deine Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so weiter. + + + Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi u tak dalej. + + + + + Zum Beispiel: + + + Na przyklad: + + + + + Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine Authentifizierung, also kann jeder das Projekt abrufen. + + + Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. + + + + + Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine historische Unwegbarkeiten umgehen. + + + Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. + + + + + Vielmehr schreibt Git die Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an ihren eigentlichen Bestimmungsort. + + + Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + + + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + if git ls-files -o | grep '\.txt$'; then echo FAIL! + + + + + Sagen wir, du hast einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt oder Dateien einer Website. + + + Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. + + + + + Ich musste lernen, wie man Projekte verwaltet, an denen mehrere Entwickler aus aller Welt beteiligt waren. + + + Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. + + + + + Du hast auch noch andere Optionen, z.B. den Aufschub der Entscheidung; drücke "?" + + + Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" + + + + + Schmutzarbeit + + + Brudna robota + + + + + $ git commit --amend -a + + + $ git commit --amend -a + + + + + Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst um dort einen 'Clone' zu platzieren. + + + Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + + + + + Keine Sorge, gib ein: + + + Nie ma sprawy, wpisz polecenie: + + + + + Rückgängig machen + + + Przywracanie + + + + + Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. + + + Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. + + + + + Mischmasch Reorganisieren + + + Reorganizacja chaosu + + + + + Auf Debian und Ubuntu, findet man dieses Verzeichnis unter +/usr/share/doc/git-core/contrib+. + + + W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + + + + + Wenn auch nicht so effizient wie mit dem systemeigenen Protokoll, kann Git über HTTP kommunizieren. + + + Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + + + + + Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter Form zu verwenden. + + + Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. + + + + + Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. + + + Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. + + + + + Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit Git zusammenarbeiten kann. + + + Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT + + + + + Verschiedene Projekte benötigen ein http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. + + + Niektóre projekty wymagają pliku historii zmian + + + + + Jeder kann oberflächliche Klone erstellen, die nur wenig oder gar nichts vom Verlauf des Projekts enthalten. + + + Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. + + + + + Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige Entwickler war. + + + Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. + + + + + Git überwacht immer das ganze Projekt, was normalerweise schon von Vorteil ist. + + + GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + + + + + Aber du bist mit der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas umformuliert werden. + + + Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. + + + + + Diese alternative Realität heißt 'Branch' und <<branch,wir kommen später darauf zurück>>. + + + Ta inna rzeczywistość, to tzw. branch <<branch, zajmiemy się tym w późniejszym czasie>>. + + + + + In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der Chronik eine schwierige Angelegenheit und den Administratoren vorbehalten. + + + W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. + + + + + Dieser spezielle 'Commit' repräsentiert einen leeren 'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git 'Repositories'. + + + Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + + + + + Der zweite Teil eines Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und getestet wurde. + + + Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. + + + + + Leere Unterverzeichnisse + + + Puste katalogi + + + + + Diese Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. + + + Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. + + + + + Ein 'Commit' kann mehrere Eltern haben, welchem folgen wir also? + + + COMMIT moze posiadac wiecej rodzicow, ktoremu wlasciwie nastepowac? + + + + + Da ich in erster Linie unter Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + + + Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + + + + + Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit 'tarball' Archiven oder *rsync* zu arbeiten. + + + Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. + + + + + Git lässt dich genauso arbeiten, wie du es willst. + + + GIT pozwoli ci pracować dokładnie tak jak chcesz. + + + + + Wie 'Clonen', 'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine weitere Stärke, die Git dir bietet. + + + Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. + + + + + Das ist unüblich. + + + Znajduje to dość szerokie zastosowanie + + + + + Da diese Anweisung aber auch zu ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option hinzufügen. + + + Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + + + + + Trotz ihrer Einfachheit, sind alle davon wichtig und nützlich. + + + Momo ich prostoty, wszystkie sa wazne i pozyteczne. + + + + + und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich die 'Commits' aus dem 'Bundle' durch Eingabe von: + + + i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + + + + und Simsalabim! + + + i Simsalabim! + + + + + Tatsächlich sind wir dem 'Mergen' schon lange begegnet. + + + W gruncie rzeczy spotkalismy sie juz wczesniej z MERGE. + + + + + Einfacher geht das mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + + Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + + + + + Im Gegensatz zu den meisten Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem Speicherplatz umzugehen. + + + W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. + + + + + Durch cleveres verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine Versionsgeschichte mit dem original 'Repository' teilt: + + + Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + + + + + Nach einer längeren Sitzung hast du einen Haufen 'Commits' gemacht. + + + Po dłuższej sesji zrobiłeś całą masę 'commits'. + + + + + Untracked .txt files. + + + untracket.txt files. + + + + + Argh! + + + Och! + + + + + Die Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer Kopie der ganzen Datei. + + + Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + + + + + $ git bisect bad + + + +$ git bisect bad + + + + + In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und Konvertierungswerkzeugen und so weiter. + + + W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. + + + + + Dadurch agieren nun alle Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, während deine Dateien unverändert erhalten bleiben. + + + Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. + + + + + Keine Sorge: Für solche Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + + Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + + + + + Zusätzlich habe ich mich dabei ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten meinem gewohnten Arbeitsablauf zu folgen. + + + Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + + + + + Quellcode veröffentlichen + + + +Publikowanie kodu źródłowego + + + + + Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts 'mergen' mit: + + + W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + + + + + Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver eingegangen sind, schlägt dein 'push' fehl. + + + Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. + + + + + Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein Arbeitsverzeichnis hat. + + + Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego + + + + + Du arbeitest also an Teil II und 'commitest' deine Änderungen regelmäßig. + + + Pracujesz w cześci 2 i regularnie wykonujesz COMMIT. + + + + + Ich war geschockt, als ich später gezwungen war ein zentralisiertes System zu benutzen. + + + Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. + + + + + Ein negativer Rückgabewert beendet die 'bisect'-Operation sofort. + + + Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + + + + + Jemanden zu fotografieren stiehlt nicht dessen Seele. + + + Fotografując kogoś nie kradziemy jego duszy. + + + + + Zum Konvertieren gib in einem leeren Verzeichnis ein: + + + Aby przekonwertować wejść do pustego katalogu: + + + + + dann 'Clone' es: + + + następnie sklonuj go: + + + + + Dann 'branche' zu Teil II: + + + Najpierw zmień BRANCH do części drugiej + + + + + Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen Format einliest um eine Git Chronik von Anfang an zu erstellen. + + + W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. + + + + + Beide laden ihre Änderungen hoch. + + + Obydwoje ładują swoje zmiany na serwer. + + + + + Normalerweise füllt man ein Formular auf einer Website aus. + + + Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + + + + + Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie auch die ganze Geschichte bis zum angegebenen Punkt mit sich. + + + Jednak CLONEN niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. + + + + + Glücklicherweise hat Git eine Abkürzung dafür, die genauso komfortabel ist wie eine Fernbedienung: + + + Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + + + + + Initialer 'Commit' + + + Pierwszy 'commit' + + + + + Siehe *git help stash*. + + + Zobacz *git help stash*. + + + + + Hast Du es zu lange versäumt zu 'comitten'? + + + Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? + + + + + und 'commite' bevor du auf den 'Master Branch' zurückschaltest. + + + i tylko jeszcze COMMIT zanim wrocisz do MASTER BRANCH. + + + + + Bisher kümmert sich Git nur um Dateien, die existierten, als du das erste Mal *git add* ausgeführt hast. + + + Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* + + + + + Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. + + + Może pytasz się, czy BRANCHES są warte tego zachodu. + + + + + Das erfordert aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch aufrufen, wenn sie eine Datei bearbeiten. + + + Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + + + + + Hast du gravierende Änderungen vor? + + + Masz zamiar dokonania wielu zmian? + + + + + Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den vorhergehenden 'Commit'. + + + Zwyczajnie kazdy COMMIT posiada rodzica-COMMIT, a mianowicie poprzedni COMMIT. + + + + + Trotz seiner Größe, +einedatei+ enthält das komplette original Git 'Repository'. + + + Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + + + + + Es enthält nur Dateien, die normalerweise im '.git' Unterverzeichnis versteckt sind. + + + Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. + + + + + - Ersetze `pick` mit: * `edit` um einen 'Commit' für 'amends' zu markieren. + + + - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. + + + + + Eine Datei umzubenennen ist das selbe wie sie zu löschen und unter neuem Namen hinzuzufügen. + + + Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. + + + + + Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + + Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + + + + + beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen Hashwert mit 1b6d beginnt. + + + rozpoczyna z nowym BRANCH o nazwie '``stare', ktory posiada stan 10 COMMIT spoowrotem od drugiego rodzica COMMIT, ktorego hash rozpoczyna sie na 1b6d. + + + + + Finde heraus was du seit dem letzten 'Commit' getan hast: + + + Znajdz co zrobiles od ostatniego COMMIT: + + + + + Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. + + + O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. + + + + + nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + + + po uprzednim dodaniu skryptu do `$ PATH`. + + + + + Einen Klon zu erstellen ist aufwendiger als in anderen Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + + + Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + + + + + So wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' mit abweichender Chronik hat und die Zweige sich austauschen sollen. + + + Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + + + + + Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch ging. + + + Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. + + + + + 'Nackte Repositories' + + + Gołe REPOSITORIES + + + + + Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + + + No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + + + + + um zur ursprünglichen Arbeit zurückzukehren. + + + by wrocic do poprzedniej pracy + + + + + Wo kommt dieser Fehler her? + + + Skąd wziął się ten błąd? + + + + + Du kannst diese Notation mit anderen Typen kombinieren. + + + mozesz ta notacje kombinowac takze z innymi typami + + + + + Leute machen kleine Änderungen von Version zu Version. + + + Ludzie robią jednak pomniejsze zmiany z wersji na wersję. + + + + + Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor der Operation. + + + Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. + + + + + Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren und für andere Benutzer veröffentlichen will. + + + Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. + + + + + KOPF-Jagd + + + Łowcy głów + + + + + Das ist wie bei den Spielen der alten Schule, die nur Speicherplatz für eine Sicherung hatten: sicherlich konntest du speichern, aber du konntest nie zu einem älteren Stand zurück. + + + To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. + + + + + Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem zentralisierten Versionsverwaltungssystem: Das Zuhause deines Projekts. + + + BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu + + + + + Angenommen du hast ein Skript geschrieben und möchtest es anderen zugänglich machen. + + + Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. + + + + + Was, wenn du am Ende die temporären Änderungen sichern willst? + + + A co jesli chcesz zapamietac wprowadzone zmiany? + + + + + 'Branch'-Magie + + + Magia BRANCH + + + + + 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne Netzwerkverbindung. + + + Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. + + + + + Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und vielleicht bist du mit einem anderen System besser dran. + + + Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. + + + + + Aus diesem Grund plädiere ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man Mercurial bevorzugt. + + + Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial + + + + + Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + + Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + + + + + B ist identisch mit A, außer dass einige Dateien gelöscht wurden. + + + B rozni sie od A, jedynie tym, ze usunieto kilka plikow. + + + + + Wenn dein Projekt viele Entwickler hat, musst du nichts tun! + + + Jeśli projekt posiada wielu programistów, nie musisz niczego robić + + + + + Um auf die aktuelle Server-Version zu aktualisieren: + + + Aby zaktualizować do wersji na serwerze: + + + + + Wir erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß permanent. + + + Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + + + + + Trotzdem kann es langwierig sein, den exakten Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. + + + Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. + + + + + Um das zu tun, klickst du auf auf Speichern in deinem vertrauten Editor. + + + W tym celu klikasz na 'zapisz' w wybranym edytorze. + + + + + $ git diff 1b6d > mein.patch + + + $ git diff 1b6d > moj.patch + + + + + Git speichert jeden errechneten SHA1-Wert eines 'Commits' in `.git/logs`. + + + Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` + + + + + Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die Details selbst erarbeiten. + + + Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. + + + + + um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. + + + by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. + + + + + Du kannst sogar die frisch gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + + Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + + + + + $ chmod a+x hooks/post-update + + + chmod a+x hooks/post-update + + + + + Ich nehme alles zurück + + + Wycofuję wszystko co na ten temat powiedziałem. + + + + + Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. + + + Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. + + + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + + + + + Wenn es mit einem der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon jemand ein Skript geschrieben hat, das die gesamte Chronik für Git exportiert. + + + Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + + + + + Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? + + + A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? + + + + + $ git checkout -f HEAD^ + + + $ git checkout -f HEAD^ + + + + + Um Dateien zu bekommen, erstellst du einen 'Clone' des gesamten 'Repository'. + + + By pozyskać dane, tworzysz klon całej REPOSITORY. + + + + + 'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern und Menschen gleichermaßen einfach verstanden werden. + + + 'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. + + + + + Normalerweise können wir den Index ignorieren und so tun als würden wir direkt aus der Versionsgeschichte lesen oder in sie schreiben. + + + Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. + + + + + Um den neuen Stand zu sichern: + + + Aby zapisac nowy stan: + + + + + $ git rebase -i HEAD~10 + + + $ git rebase -i HEAD~10 + + + + + Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein 'bare Repository' ist; andernfalls benutze 'pull'. + + + Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + + + + + Beschaffe dir die `hg-git`-Erweiterung mit Git: + + + Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + + + + + Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach verändert werden kann. + + + Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. + + + + + Angenommen du hast Teil I 'commitet' und zur Prüfung eingereicht. + + + Przyjmijmy, że wykonałeś COMMIT pierwszej części i przekazałeś do sprwadzenia. + + + + + Mit der Zeit können einige davon zu offiziellen Anweisungen befördert werden. + + + Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. + + + + + 'Push' oder 'Pull' + + + PUSH albo PULL + + + + + Tippe: + + + Wpisz: + + + + + Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu sehen was auf dem anderen Kanal los ist. + + + Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. + + + + + Unterschiede sind schnell gefunden, weil nur die markierten Dateien untersucht werden müssen. + + + Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + + + + + Solange Deine Mitstreiter ihre eMails lesen können, können sie auch Deine Änderungen sehen. + + + Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. + + + + + Mein 'Commit' ist zu groß! + + + Mój 'commit' jest za duży! + + + + + Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + + Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + + + + + Patches: Das globale Zahlungsmittel + + + Patches: globalny środek płatniczy + + + + + Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt wird. + + + Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok + + + + + Dann, wenn du den Fehler behoben hast: + + + Jak juz uporasz sie z bledem: + + + + + Dafür ist es nun zu spät. + + + Na to jest już za późno. + + + + + Der zweite Schritt speichert dauerhaft den Schnappschuß, der sich nun im Index befindet. + + + Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. + + + + + Diese Spiele versteckten die Details vor dem Spieler und präsentierten eine bequeme Oberfläche um verschiedene Versionen des Ordners zu verwalten. + + + Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + + + + + 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + + + 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + + + + + Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon heute wäre es technisch machbar für finanzkräftige Unternehmen Hash-Kollisionen zu finden. + + + Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach + + + + + Der ``master'' 'Branch' ist ein nützlicher Brauch. + + + MASTER BRANCH jest bardzo użytecznym + + + + + Prüfe, ob die 'filter-branch' Anweisung getan hat was du wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' Operationen durchführst. + + + Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + + + + + 'Fork' eines Projekts + + + FORK projektu + + + + + Geheime Quellen + + + Utajnione Zródła + + + + + Git versteht beide Gesichtspunkte. + + + Git jest wyrozumiały dla oby dwuch stron. + + + + + Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' abzuarbeiten. + + + Może lubisz odpracować wszystkie aspekty projektu w + + + + + Das kannst du mit folgendem Befehl erstellen: + + + Możesz go utwoszyć korzystając z polecenia: + + + + + Es liegt an dir diese weise zu nutzen. + + + Stosowanie tej możliwości zależy od ciebie + + + + + Aber auch wenn wir ein normales 'Repository' auf dem zentralen Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. + + + Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. + + + + + $ git branch -M source target # instead of -m + + + git branch -M zrodlo cel # zamiast -m + + + + + Arbeit ist Spiel + + + Praca jest zabawą + + + + + Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf Git aufbauen. + + + Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. + + + + + Ich habe einfach vorausgesetzt, dass andere Systeme ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht anders sein als die Auswahl eines Texteditors oder Internetbrowser. + + + Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + + + + + Wenn du einen 'Commit' mit 'edit' markiert hast, gib ein: + + + Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + + + + + $ git init $ git add . + + + + + + + + Führe *git add* aus um sie hinzuzufügen und dann die vorhergehende Anweisung. + + + Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + + + + + Damit springst du in der Zeit zurück, behältst aber neuere Änderungen. + + + Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. + + + + + Es ist als ob der Hauptserver gespiegelt wird. + + + Wygląda to jak klonowanie serwera. + + + + + Mit der `hg-git`-Erweiterung kann ein Benutzer von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus 'pullen'. + + + Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + + + + + Wenn du nun eine alte Version erhalten willst, musst du den ganzen Ordner archivieren. + + + Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. + + + + + Benutze *git submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten willst. + + + Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + + + + + Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine schnellere Methode vorstellt wird. + + + Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. + + + + + Aber manchmal arbeite ich an meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich inzwischen nicht austauschen können. + + + Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + + + + + Dann 'commite' dein Projekt und gib ein: + + + Wtedy COMMIT twój projekt i wykomaj: + + + + + Dann tippe: + + + Wpisz wtedy: + + + + + Aber stell Dir vor, Du hast ihn niemals notiert? + + + Wyobraź jednak sobie, że nigdy go nie notowałeś? + + + + + Sie alle haben bequeme Schnittstellen um Ordner voller Dateien zu verwalten. + + + Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. + + + + + Ultimative Datensicherung + + + Ultymatywny backup danych + + + + + und jedermann kann Dein Projekt abrufen mit: + + + i każdy może teraz sklonować twój projekt przez: + + + + + Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein 'Repository' ab. + + + W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY + + + + + Dateien ohne Bezug + + + Pliki z brakiem odniesienia + + + + + Auch wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit dieser Faustregel weniger anfällig für falsche Vergleiche. + + + Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + + + + + Die letztere kann verwendet werden um SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der versehentlich gestutzt wurde. + + + Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + + + + + Normalerweise ändern sich immer nur wenige Dateien zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. + + + W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. + + + + + Wenn mehrere 'Branches' mit unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' gemacht wird, ist ein manuelles Eingreifen erforderlich. + + + Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + + + + + Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten 'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. + + + Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. + + + + + Genau deswegen gibt es Releasezyklen. + + + Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. + + + + + Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem fatalen Fehler zu beenden. + + + Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. + + + + + In vielen Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + + + W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + + + + + Auf Git bauen + + + Budować na git + + + + + Die meisten Systeme wählen automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + + + Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + + + + + Oder noch besser, anpacken und mithelfen. + + + Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + + + + + Erstelle eine Dummy-Datei um dieses Problem zu umgehen. + + + Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + + + + + Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen indem du sie an den Befehl anhängst: + + + Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + + + + + Vielleicht kann ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich in der Vergangenheit gebraucht habe. + + + Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + + + + + Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. + + + To zadanie dla *git rebase*, jak wyżej opisane. + + + + + Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls wird Git alle Änderungen 'comitten'. + + + Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + + + + + Das setzt voraus, dass sie einen SSH-Zugang haben. + + + Wymaga to od nich posiadanie klucza SSH do twojego komputera. + + + + + Verliere nicht Deinen KOPF + + + Nie trać głowy + + + + + Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit jedem 'Commit' erhöht wird. + + + Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". + + + + + Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den Rest. + + + Teraz MASTER BRANCH zawiera cześć 1 a BRANCH czesc2 posiada resztę. + + + + + Wenn du Glück hast oder sehr gut bist, kannst du die nächsten Zeilen überspringen. + + + Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + + + + + $ git reset --hard 1b6d + + + $ git reset --hard 1b6d + + + + + - Entferne 'Commits' durch das Löschen von Zeilen. + + + - usuń 'commits' poprzez skasowanie lini. + + + + + pick 5c6eb73 Link repo.or.cz hinzugefügt pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert pick 100834f Push-Ziel zum Makefile hinzugefügt + + + pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + + + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + $ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + + + + + Durch das Herauspicken der Rosinen kannst du einen 'Branch' konstruieren, der nur endgültigen Code enthält und zusammengehörige 'Commits' gruppiert hat. + + + Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + + + + + Fortgeschrittenes Rückgängig machen/Wiederherstellen + + + Zaawansowane usuwanie/przywracanie + + + + + Gewagte Kunststücke + + + Śmiałe wyczyny + + + + + Erinnere Dich an das erste Kapitel: + + + Przypomnij sobie pierwszy rozdział: + + + + + Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf irgendeine Weise für die Bearbeitung zu kennzeichnen. + + + Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. + + + + + Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen hinauswachsen. + + + Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. + + + + + Nicht nur des aktuellen Stand, sondern der gesamten Geschichte. + + + Nie tylko jedo aktualny stan, lecz również jego całą historię. + + + + + Git hat mir bewundernswert gedient und hat mich bis jetzt noch nie im Stich gelassen. + + + Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. + + + + + Oder seit Gestern: + + + Albo od wczoraj + + + + + SHA1 Schwäche + + + Słabości SHA1 + + + + + Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer bestimmten Nachricht enthält. + + + Utworzylismy REPOSITORY, ktora posiada dana z ta zawartoscia + + + + + Musst Du während eines Notfalls improvisieren? + + + Musisz improwizować w nagłym wypadku? + + + + + In einem Gerichtssaal können Ereignisse aus den Akten gelöscht werden. + + + W sali sądowej można pewne zdarzenia wykreślić z akt. + + + + + Ich hatte noch keinen Grund zu wechseln. + + + Nie miałem jeszcze powodu do zmiany. + + + + + Eines Tages brauchst du vielleicht dringend einen Schraubendreher, dann bist du froh mehr als nur einen einfachen Flaschenöffner bei dir zu haben. + + + Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + + + + + Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* benannt und gesichert werden kann. + + + Innymi slowami, po przywolaniu starego stanu GIT automatychnie zamienia sie w nowy, nienazwany BRANCH, ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + + + + + Eine gute erste Annäherung ist, dass alles was eine zentralisierte Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser kann. + + + Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. + + + + + Warum ich Git benutze + + + Dlaczego korzystam z GIT + + + + + Wenn alle 'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu lassen, da jegliche Kommunikation über SSH läuft. + + + Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + + + + + - *`git checkout`*: Lade einen alten Spielstand, aber wenn du weiterspielst, wird der Spielstand von den früher gesicherten Spielständen abweichen. + + + - *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. + + + + + Versuche + + + Wypróbuj polecenie: + + + + + Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das bekannteste freie verteilte Versionsverwaltungssystem ist. + + + Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + + + + + $ git am < email.txt + + + $ git am < email.txt + + + + + Oder noch schlimmer, deine aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz vorne beginnen. + + + Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + + + + + $ git pull einedatei + + + +$ git pull plik + + + + + Anhang A: Git's Mängel + + + Załącznik A: Wady GIT + + + + + Leider gibt es noch ein paar Problemfälle. + + + Niestety występuje jeszcze kilka innych problemów. + + + + + Mit Git ist 'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + + + Z GIT MERGE jest tak prostem, ze czasami nawet nie zauwazysz, gdy to nastepuje + + + + + *Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. + + + *clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. + + + + + Der Index: Git's Bereitstellungsraum + + + Index: ruszkowanie gita + + + + + Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten Version, falls du später mit ihnen interagieren möchtest. + + + Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + + + + + Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + + Akurat gdy strasznie zajety biezacymi zadaniami w projekcie otrzymujesz polecenie zajecie sie bledem w COMMIT 1b6d... + + + + + Am schrecklichsten sind fehlende Dateien wegen eines vergessenen *git add*. + + + Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. + + + + + Entwickler arbeiten regelmäßig an einem Projekt, veröffentlichen den Code aber nur, wenn sie ihn für vorzeigbar halten. + + + Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + + + + + Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung gekommen, als wir das Laden alter Stände besprochen haben. + + + Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow + + + + + Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? + + + Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? + + + + + Führe die Anweisungen des anderen Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale 'Repository' zu übertragen. + + + Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + + + + + Lasse den -global Schalter weg um diese Einstellungen für das aktuelle 'Repository' zu setzen. + + + Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + + + + + Das Beispiel 'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation über 'Git-agnostic transports' wie z.B. HTTP benötigt. + + + Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. + + + + + Ebenso, wenn Git Dateien vergessen soll: + + + To samo, gdy chcesz by GIT zapomnial o plikach: + + + + + Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung eingegeben? + + + Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? + + + + + In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation um Dateien zu bekommen. + + + W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. + + + + + Und wenn der Chef in diesem Verzeichnis herumschnüffelt, tippe: + + + A gdy szef grzebie w twoim katalogu, wpisz: + + + + + Es ist einfach mit Git das zu bekommen was du willst und oft führen viele Wege zum Ziel. + + + Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. + + + + + Ein Liste aller 'Branches' bekommst du mit: + + + Listę wszystkich BRANCHES otrzymasz poprzez: + + + + + Du magst Kopieren und Einfügen von Hashes nicht? + + + Nie lubisz kopiować i wklejać hash-ów? + + + + + Irgendwann wirst du dann mit den anderen synchronisieren wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen Versionsverwaltungssystem und gib ein: + + + Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + + + + + Globaler Zähler + + + Licznik globalny + + + + + Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' werden: + + + Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + + + + + Dieser Zyklus wiederholt sich ein paar Mal bevor du zum 'Pushen' in den zentralen Zweig bereit bist. + + + Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + + + + + Unbeständige Projekte + + + Niestałe projekty + + + + + $ git push web.server:/pfad/zu/proj.git master + + + $ git push web.server:/sciezka/do/proj.git master + + + + + Vielleicht können Dateiformate geändert werden. + + + Ewentualnie można czasami zmienić format danych. + + + + + Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von Mitstreitern einbinden. + + + Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów + + + + + Viele Git Befehle funktionieren nicht in 'bare Repositories'. + + + Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH + + + + + Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange Geschichte existiert, aber auf Dauer wird es sich lohnen. + + + Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. + + + + + Der Absender erstellt ein 'Bundle': + + + Nadawca tworzy 'bundle': + + + + + Aber deshalb ein einfacheres, schlecht erweiterbares System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen zu verwenden. + + + Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + + + + + Jeder Spielstand, der ab jetzt gesichert wird, entsteht in dem separaten 'Branch', welcher der alternative Realität entspricht. + + + Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. + + + + + [[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum auch immer, drei Versionen zurückgehen um ein paar print Anweisungen einzufügen, damit du siehst, wie etwas funktioniert. + + + [[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzaialanie. + + + + + Für eine vernünftigere Erklärung siehe http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur Versionsverwaltung]. + + + Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + + + + + Wenn du deine Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + + Po skończeniu dochodzenia przejdź do orginalnego stanu: + + + + + Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten zukünftigen Operationen dann schnell und offline erfolgen. + + + Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. + + + + + Git von Anfang an zu benutzen, ist wie ein Schweizer Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen geöffnet werden. + + + Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. + + + + + Der Empfänger kann das sogar mit einem leeren 'Repository' tun. + + + Odbiorca może to zrobić z pustym repozytorium. + + + + + Sei Vorsichtig, diese Art des '*Checkout*' kann Dateien überschreiben, ohne dass du etwas merkst. + + + Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. + + + + + exit 1 fi + + + exit 1 fi + + + + + Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet sind für Projekte, die ein offizielles zentrales 'Repository' benötigen. + + + Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. + + + + + Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. + + + Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. + + + + + Das war eine Schande, denn vielleicht war deine vorherige Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du später gerne noch einmal zurückkehren möchtest. + + + To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. + + + + + [[makinghistory]] Du möchtest ein Projekt zu Git umziehen? + + + [[makinghistory]] Masz zamiar przenieść projekt do git? + + + + + - *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, die neuer sind als der jetzt geladene. + + + - *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + + + + + Nur zu, aber speichere deinen aktuellen Stand vorher lieber nochmal ab: + + + Nie ma sprawy, jednak najpierw zabezpiecz dane. + + + + + Jeder 'Commit' ab jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen Namen geben können. + + + Kazdy COMMIT od teraz prowadzi woje dane inna droga, ktorej mozemy rowniez nadac nazwe. + + + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + commit refs/heads/master committer Bob <bob@example.com> Tue, 14 Mar 2000 01:59:26 -0800 data <<EOT Ersetze printf() mit write(). + + + + + Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die so ein System bietet. + + + Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. + + + + + Um ehrlich zu sein, meine ersten Monate mit Git brauchte ich nicht mehr als in diesem Kapitel beschrieben steht. + + + Bedac szczery, przez pierwsze miesiace pracy z GIT nie potrzebowalem zadnych innych, niz opisanych w tym rozdziale + + + + + Die zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird oder die ganze Zeile überarbeiten. + + + Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + + + + + Hättest du nur die Funktion während der Entwicklung getestet. + + + A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + + + + + Mit zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server herunterladen. + + + Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. + + + + + Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + + Zamiast kopiować i wklejać klucze z 'reflog', możesz: + + + + + Ein Auto, das repariert werden soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. + + + Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. + + + + + Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + + + Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + + + + + Der Unterschied zwischen A und B sind die gelöschten Dateien. + + + Roznica miedzy A i B, to skasowane pliki. + + + + + Die *pull* Anweisung holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese dann mit dem aktuellen 'Branch'. + + + Polecenie *pull* za pomoca ('fetch') laduje COMMITS i je zespala ('merged'), wtedy z aktualnym BRANCH. + + + + + Übertrage ('push') dein Projekt auf den zentralen Server mit: + + + Przenieś (PUSH) twój projekt teraz na centralny serwer: + + + + + Sogar einige Git Anweisungen selbst sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. + + + Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. + + + + + Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon 'pullen'. + + + W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + + + + + Du kannst den Zustand des Ordners sichern so oft du willst und du kannst später jeden Sicherungspunkt wieder herstellen. + + + Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. + + + + + Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + + + GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + + + + + Andere denken, daß Zweige vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit losgelassen werden. + + + Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. + + + + + Außerdem waren sich die Entwickler der Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen bewusst. + + + Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + + + + + Lokale Änderungen zum Schluß + + + Końcowe lokalne zmian + + + + + Versionsverwaltungen sind nicht anders. + + + Systemy kontroli wersji nie różnią się tutaj zbytnio. + + + + + Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien überwacht. + + + Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. + + + + + Git war das erste Versionsverwaltungssystem, das ich benutzt habe. + + + Git był pierwszym systemem kontroli wersji którego używałem. + + + + + Wir können einen 'Patch' erstellen, der diesen Unterschied darstellt und diesen dann auf D anwenden: + + + Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + + + + + Natürlich funktioniert der Trick für fast alles, nicht nur Skripts. + + + Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + + + + + Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten 'pull'-Befehl zu bleiben? + + + Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? + + + + + Dann auf dem anderen: + + + Potem na następnym: + + + + + Nach ein paar Durchläufen wird dich diese binäre Suche zu dem 'Commit' führen, der die Probleme verursacht. + + + Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. + + + + + Wenn Anwender langsame Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss unterbrochen wird. + + + Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + + + + + $ git checkout master . + + + $ git checkout master + + + + + In diesem Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. + + + W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. + + + + + Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, gibt es keinen Sicherheitsüberprüfungen mehr. + + + Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. + + + + + Von jetzt an wird + + + Od teraz poleceniem: + + + + + Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für mehr. + + + Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + + + + + Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen jedes nur die in Beziehung stehenden Dateien enthält. + + + Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. + + + + + Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte Anweisungen scheuen, bis sie absolut notwendig sind. + + + Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. + + + + + Du willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und hinter den offiziellen Änderungen sehen. + + + Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + + + + + wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell aufrufst. + + + wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + + + + + Kleinere Verfehlungen sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + + + Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + + + + + Wer bin ich? + + + Kim jestem? + + + + + Wir müssen die Datei aus allen 'Commits' entfernen: + + + Musimy ten plik usunąć ze wszystkich 'commits': + + + + + Im Gegensatz dazu habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu benutzen. + + + W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. + + + + + Der angegebene Pfad wird stillschweigend überschrieben. + + + Podana ścieżka zostanie bez pytania zastąpiona. + + + + + Jetzt lass uns das Problem etwas komplizierter machen. + + + Skomplikujmy teraz trochę cały ten problem. + + + + + Wir können solche Dateien hin und her schicken um Git 'Repositories' über jedes beliebige Medium zu transportieren, aber ein effizienteres Werkzeug ist *git bundle*. + + + W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + + + + + Der erster Klon + + + Pierwszy klon + + + + + bringt dich wieder in die Gegenwart. + + + sprowadzi cie znów do teraźniejszości. + + + + + Mit anderen Worten, es verwaltet die Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner beliebigen Version. + + + Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + + + + + Dann sage deinen Nutzern: + + + Następnie udostępnij link twoim użytkownikom: + + + + + Du kannst auch 'Commits' aufteilen. + + + Możesz również podzielć 'commits'. + + + + + $ git clone http://web.server/proj.git + + + $ git clone http://web.server/proj.git + + + + + Allgemein, *filter-branch* lässt dich große Bereiche der Chronik mit einer einzigen Anweisung verändern. + + + Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + + + + + Oder anders gesagt, du spiegelst den zentralen Server. + + + Lub inaczej mówiąc, odzwierciedlasz zentralny server. + + + + + Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je komplizierter der Kontextwechsel ist, desto größer ist der Verlust. + + + Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty + + + + + Das 'Mergen' mehrerer 'Branches' erzeugt einen 'Commit' mit mindestens zwei Eltern. + + + MERGEN kilku BRANCHES wytwarza COMMIT z minimum 2 rodzicami-COMMIT. + + + + + Wird irgendein 'Clone' beschädigt, wird dies dank des kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit anderen zu kommunizieren. + + + Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + + + + + Andere bestehen auf dem anderen Extrem: mehrere Fenster, ganz ohne Tabs. + + + Inni upierają się przy tym: więcej okien, zupełnie bez tabs. + + + + + Machst Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + + + Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + + + + + Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst und überlassen die schwierigen uns Menschen. + + + Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. + + + + + 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. + + + Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. + + + + + Das wirft die Frage auf: Welchen 'Commit' referenziert `HEAD~10` tatsächlich? + + + To nasuwa pytanie; ktoremu COMMIT referencuje HEAD++10 wlasciwie? + + + + + Wenn nicht, ersetzte "bad" mit "good". + + + Jeśli nie, zamień "bad" na "good". + + + + + Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes eingeben: + + + Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + + + + + Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. + + + Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. + + + + + 'Commite' Änderungen + + + Zmiany 'commit' + + + + + Dumme Fehler verschmutzen meine 'Repositories'. + + + Głupie błędy zaśmiecają moje repozytoria. + + + + + In einem Git 'Repository' gib ein: + + + W repozytorium git natomiast podajesz: + + + + + Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. + + + Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 + + + + + Leere Unterverzeichnisse können nicht überwacht werden. + + + Nie ma możliwości wersjonowania pustych katalogów. + + + + + Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + + By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + + + + + Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben Zeile. + + + Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. + + + + + Irren ist menschlich und so kann es vorkommen, dass du zurück zu Teil I willst um einen Fehler zu beheben. + + + Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. + + + + + $ git config gc.pruneexpire "30 days" + + + $ git config gc.pruneexpire "30 days" + + + + + Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + + + I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + + + + + Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, erstelle temporären Code und so weiter und 'commite' deine Änderungen oft. + + + Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. + + + + + Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche Versionsgeschichte die beiden Versionen automatisch synchron bleiben. + + + Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. + + + + + Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung gesucht, nicht ein Versionsverwaltungssystem. + + + Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. + + + + + Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. + + + Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. + + + + + Falls deine Änderungen schief gehen, kannst du jetzt die alte Version wiederherstellen: + + + Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + + + + + Ich vermute, dass ich damit nicht alleine bin und der Vergleich hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + + + Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + + + + + $ git bundle create einedatei HEAD + + + $ git bundle create plik HEAD + + + + + Stattdessen stellen wir uns wieder vor, wir editieren ein Dokument. + + + Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + + + + + Irgendwo speicherte ein Server alle gespeicherten Spiele, sonst niemand. + + + Jeden serwer zapamiętywał wszystkie gry, nikt inny. + + + + + Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das meiste verstanden haben. + + + W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. + + + + + Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + + + Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak czesto zechcesz, niezaleznie od tego w kazdej z tych wersji mozesz COMMITEN + + + + + Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen Anweisung. + + + Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. + + + + + Wenn ich zur ursprünglichen Arbeit zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr Zeit beim Versuch mich zu erinnern was ich getan habe. + + + Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. + + + + + Standardmäßig beginnst du in einem 'Branch' namens ``master''. + + + Standardowo zaczynasz w BRANCH zwanym MASTER. + + + + + Doch anstelle ein paar Knöpfe zu drücken, machst du 'create', 'check out', 'merge' und 'delete' von temporären 'Branches'. + + + Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. + + + + + Warum mehrere Tabs unterstützen und mehrere Fenster? + + + Dlaczego pozwalają używać tabs albo okien? + + + + + Das heißt, nachdem Du ein 'Bundle' gesendet hast, gib ein: + + + To znaczy, po wysłaniu 'bundle', podaj: + + + + + Das Neueste vom Neuen + + + Najnowsze z nowych + + + + + Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können Verwirrungen entstehen. + + + Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + + + + + Aber, wenn du an der Vergangenheit manipulierst, sei vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. + + + Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. + + + + + bewegt den HEAD Bezeichner drei 'Commits' zurück. + + + przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. + + + + + Vielleicht habe ich meine Kreditkartennummer in einer Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. + + + Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? + + + + + Changelog erstellen + + + Utwożenie historii + + + + + Jeder 'Clone' deines Codes ist eine vollwertige Datensicherung. + + + Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa + + + + + Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. + + + Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. + + + + + Einfach: + + + Proste; + + + + + 'Mergen' + + + MERGEN + + + + + Oder zwischen irgendeiner Version und der vorvorletzten: + + + Albo miedzy jakakolwiek wersja a przedostatnia: + + + + + Einige lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. + + + Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. + + + + + Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' einfach, aber das Zusammenfügen ('Mergen') ist schwierig. + + + Za pomoca niektorych systemow kontroli wersji utworzenie nowegoi BRANCH moze i jest prostem, jednak pozniejsze MERGE trudne. + + + + + Speichere und Beende. + + + Zapamietaj i zakończ. + + + + + 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'. + + + Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + + + + + Glücklicherweise ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + + + Na szczęście jest to silną stroną git i chyba jego racją bytu. + + + + + Zuerst, 'pull' funktioniert nicht mit 'bare Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später behandeln. + + + Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. + + + + + Zum Beispiel, nehmen wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien haben: + + + Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + + + + $ git format-patch 1b6d..HEAD^^ + + + $ git format-patch 1b6d..HEAD^^ + + + + + Die aktuelle Implementierung von Git, weniger sein Design, ist verantwortlich für diesen Pferdefuß. + + + To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. + + + + + Immerhin sind 'Clone' fast genauso schnell und du kannst mit *cd* anstelle von esoterischen Git Befehlen zwischen ihnen wechseln. + + + Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + + + + + und fahre mit deiner ursprünglichen Arbeit fort. + + + i kontynnuj przerwany prace + + + + + Hätte ich mein Projekt fertig gestellt, wäre ich trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + + + Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + + + + + Ein beliebter Vertreter ist +workdir/git-new-workdir+. + + + Ulubionym przedstawicielem jest +workdir/git-new-workdir+. + + + + + Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + + Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + + + + Das funktioniert wahrscheinlich ganz gut, wenn auch unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen Dateien braucht. + + + Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + + + + + Aber, das überschreibt die vorherige Version. + + + Jednak, przepisze to poprzednią wersję. + + + + + Bevor wir uns in ein Meer von Git-Befehlen stürzen, schauen wir uns ein paar einfache Beispiele an. + + + Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom + + + + + Mit ein bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen entspricht. + + + Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + + + + + Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in Versionsverwaltungssystemen die einzelne Dateien überwachen. + + + Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + + + + + Wer ist verantwortlich? + + + Kto ponosi odpowiedzialność? + + + + + Da war auch ein interessanter http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige Engpässe zu vermeiden. + + + Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. + + + + + Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, bezogen auf 'Commits', hält sich Git nicht an diese Konvention. + + + Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. + + + + + Du kannst die Nummer für den ersten Elternteil weglassen. + + + Mozesz pominac numer pierwszego rodzica + + + + + Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. + + + Możesz pracować nad dwoma funkcjami jednocześnie + + + + + Um das Leben zu vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die Firmware. + + + By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + + + + + Zum Beispiel ist `git checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu komprimieren als eine Sammlung von Änderungen auf Dateibasis. + + + Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + + + + + um dein Skript herunterzuladen. + + + by mogli zładować skrypt. + + + + + Hast Du so versessen programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? + + + Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? + + + + + 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. + + + Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. + + + + + Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto und erstellen ein 'Repository' in Deinem Webverzeichnis: + + + Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + + + + + Versionsverwaltung im Untergrund + + + Zarządzanie wersją w poddziemiu + + + + + Chronik umschreiben + + + Przepisanie historii + + + + + Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + + Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + + + + + Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, wird von unzähligen Projekten benutzt. + + + Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. + + + + + Dann mache diese Änderungen und gib ein: + + + Wykonaj je i wpisz: + + + + + Dann erstelle ein Git 'Repository' in deinem Arbeitsverzeichnis: + + + Utwórz GIT REPOSITORY w katalogu roboczym + + + + + Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel ein Spieler geleistet hat. + + + Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + + + + + 'Merge' Konflikte + + + Konflikty z 'merge' + + + + + Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der ganze Verlauf geklont wird. + + + Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + + + + + Einfaches Veröffentlichen + + + Uproszczone publikowanie + + + + + *Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. + + + *Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. + + + + + Er muss sicher sein, aber nicht privat. + + + Musi być bezpieczne, jednak nie musi być prywatne + + + + + Dateihistorie + + + Historia pliku + + + + + Bei einem Mercurial Projekt gibt es gewöhnlich immer einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt automatisch die Benutzer von Mercurial mit einbezieht. + + + W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + + + + + Sei vorsichtig, wenn Du 'checkout' auf diese Weise benutzt. + + + Bądź ostrożny stosując 'checkout' w ten sposób. + + + + + Du kannst noch viel mehr machen: die Hilfe erklärt, wie man 'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu beschleunigen. + + + Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + + + + + Wenn nötig, starte den Git-Dämon: + + + Jeśli konieczne, wystartuj GIT-DAEMON + + + + + Du bekommst einen Haufen Dateien eines bestimmten Sicherungsstands. + + + Otrzymasz całą masę plików konkretnego stanu + + + + + Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten Elternteil während eines 'Merge'; häufig bist du nur von Änderungen betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen die von anderen 'Branches' eingebracht wurden. + + + To jest erstrebenswert, poniewaz aktualny BRANCH staje sie pierwszym rodzicem podczas MERGE; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym BRANCH bardziej, niz ze zmianami z innych BRANCHES. + + + + + Ein 'Commit' ohne die *-a* Option führt nur den zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + + + Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + + + + + Vielleicht hast Du gerade bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + + + Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + + + + + Nun kannst du Fehler beheben, Änderungen vom zentralen 'Repository' holen ('pull') und so weiter. + + + Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. + + + + + Zum Beispiel wäre es sicher, ihn in einer Zeitung zu veröffentlichen, denn es ist schwer für einen Angreifer jede Zeitungskopie zu manipulieren. + + + Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + + + + + Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + + By na przyklad logi drugiego rodzica pokazac + + + + + zeigt den Namen des aktuellen 'Branch'. + + + pokaże nazwę aktualnego 'branch'. + + + + + das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie zuletzt geändert hat und wann. + + + które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. + + + + + Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen werden; nur diejenigen mit SSH Zugriff können es einsehen. + + + To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. + + + + + Hast du es satt, wie sich ein Projekt entwickelt? + + + Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt + + + + + Solltest du kürzlich konkurrierende Änderungen an der selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut 'commiten' nachdem du die Konflikte aufgelöst hast. + + + Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + + + + + Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + + Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + + + + + Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' gewechselt, wie in: + + + Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + + + + + Hinzufügen, Löschen, Umbenennen + + + Dodac, skasowac, zmienic nazwe + + + + + 'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das Öffnen eines neuen Browserfenster. + + + BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. + + + + + So schwierig zu lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das Spiel zu beenden. + + + Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. + + + + + Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger Schaden zugefügt. + + + Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. + + + + + Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem bestimmten Zeitpunkt verwerfen, weil sie falsch waren. + + + Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales + + + + + Git über alles + + + Git ponad wszystko + + + + + Temporäre 'Branches' + + + Tymczasowe BRANCHES + + + + + Kontinuierlicher Arbeitsfluss + + + Nie przerywany przebieg pracy + + + + + Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin um die alte Version zu erhalten. + + + Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. + + + + + Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik ein, mit allen Fehlern, Nachteilen und Mängeln. + + + Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. + + + + + $ git blame bug.c + + + $ git blame bug.c + + + + + Um diese Angaben explizit zu setzen, gib ein: + + + Aby wprowadzić te dane bezpośrednio, podaj: + + + + + Ein unmittelbarer Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist keine Kommunikation mit dem Hauptserver notwendig. + + + Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + + + + + Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. + + + powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. + + + + + M 100644 inline hello.c data <<EOT #include <unistd.h> + + + +M 100644 inline hello.c data <<EOT #include <unistd.h> + + + + + Aber es ist eine Illusion. + + + Ale to iluzja. + + + + + um den 'Patch' anzuwenden. + + + By zastosować patch. + + + + + oder Mercurial: + + + albo Mercurial: + + + + + Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + + Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + + + + + Ebenso grundlegende Funktionen wie das Durchsuchen der Chronik oder das 'comitten' einer Änderung. + + + Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. + + + + + Nun gib ein: + + + Podajemy teraz; + + + + + Verteilte Kontrolle + + + Rozproszona kontrola + + + + + Je mehr gespeicherte Spiele benötigt werden, desto mehr Kommunikation ist erforderlich. + + + Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + + + + + Wer macht was? + + + Kto robi co? + + + + + Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst leeren Git 'Repository'. + + + Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY + + + + + Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein Computerspiel vor. + + + Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. + + + + + Obwohl es extrem lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, so hat es doch zwei Vorteile: + + + Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + + + + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + + + $ git-new-workdir ein/istniejacy/repo nowy/katalog + + + + + Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. + + + W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. + + + + + Du kannst auch nach dem 5. letzten 'Commit' fragen: + + + Możesz również udać się do 5 z ostatnich COMMIT: + + + + + untersuchen wes you can study for writing exporters, and also to transport repositories in a human-readable format. + + + + + + + + Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler steigt. + + + Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. + + + + + Um es zu erzwingen, verwende: + + + By zmusić dgo do tego, możesz użyć: + + + + + Es gibt mindestens 3 Lösungen. + + + Istnieja przynajmniej 3 rozwiazania. + + + + + Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem Ordner: + + + Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + + + + + Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. + + + Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. + + + + + Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + + Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + + + + + Diese Operationen sind schnell und lokal, also warum nicht damit experimentieren um die beste Kombination für sich selbst zu finden? + + + Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. + + + + + Jeder Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. + + + Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. + + + + + Das Rückgängig machen wird als neuer 'Commit' erstellt, was mit *git log* überprüft werden kann. + + + To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + + + + + Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + + + Standardowo dane te pozostają jeszcze przez 2 tygodnie. + + + + + Sagen wir du bist im `master` 'Branch'. + + + Powiedzmy też, że znajdujesz sie w MASTER BRANCH. + + + + + Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten benutze: + + + By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + + + + + Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + + Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + + + + + Firewalls könnten uns stören und was, wenn wir gar keine Berechtigung für eine Serverkonsole haben. + + + Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + + + + + Dann nutze: + + + Możesz w tym wypadku skorzystać z: + + + + + Um Unfälle zu vermeiden solltest du immer 'commiten' bevor du ein 'Checkout' machst, besonders am Anfang wenn du Git noch erlernst. + + + Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, + + + + + Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + + Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + + + + + In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die Standardaktion. + + + W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. + + + + + Git referenziert Änderungen anhand ihres SHA1-Hash, was in vielen Fällen besser ist. + + + Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + + + + + Dateien herunterladen + + + Zładowanie danych + + + + + Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu zerstören. + + + Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. + + + + + Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am Dateiende. + + + Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. + + + + + Git versetzt dich wieder auf einen Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert so die Möglichkeiten. + + + Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. + + + + + Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen und am Teil II arbeiten, bevor Teil I offiziell freigegeben wurde. + + + Dzieki bezbolowemu BANCHEN i MERGEN kozemy te regoly naciagnac i praccowac nad druga czescia juz zanim pierwsza zostanie oficjalnie zatwierdzona + + + + + Allgemein gilt: Wenn du unsicher bist, egal ob ein Git Befehl oder irgendeine andere Operation, führe zuerst *git commit -a* aus. + + + Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + + + + + Zum Glück ist es einfach, Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' einen Zähler erhöht. + + + Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. + + + + + Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, können wir sie wieder herstellen: + + + Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + + + + + Genauso wenig setzt das 'Clonen' des zentralen 'Repository' dessen Bedeutung herab. + + + Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + + + + + Ein Versionsverwaltungssystem zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die periodisch von einer Webcam gemacht werden. + + + Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + + + + + Es sei denn die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, oder die `--bare` Option wird übergeben. + + + Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + + + + + Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. + + + Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. + + + + + In der Praxis möchtest Du aber das "refs/heads/" entfernen und Fehler ignorieren: + + + W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + + + + + Wir haben gesehen, dass man mit <<makinghistory, *git fast-export* und *git fast-import* 'Repositories' in eine einzige Datei konvertieren kann und zurück>>. + + + Widzieliśmym, że poleceniami <<makinghistory, *git fast-export* i *git fast-import* możemy konwertować całe repozytoria w jeden jedyny plik i spowrotem>>. + + + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + $ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + + + + + In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach einem bestimmten Punkt durch Eingabe von: + + + W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + + + + + Wenn du keine lokalen Änderungen hast, dann ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. + + + Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu zarzadzania wersja. + + + + + Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die Sicherungen der anderen bekommt? + + + W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? + + + + + Die, welche dir am besten gefällt. + + + To, ktore najbardziej tobie odpowiada. + + + + + Wenn Spieler vom Hauptserver herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt gespeicherte. + + + Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany + + + + + Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das Ergebnis ist das selbe. + + + Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. + + + + + Dann: + + + Wtedy: + + + + + Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein Verlauf um die Größe des gesamten Projekts wachsen. + + + Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + + + + + Alternativ kannst Du *git commit \--interactive* verwenden, was dann automatisch die ausgewählten Änderungen 'commited' nachdem Du fertig bist. + + + Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + + + + + Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur als akademische Übungen. + + + Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. + + + + + Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste Version aktualisieren mit: + + + Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + + + + + Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen wäre. + + + Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 COMMITS wcześniej utworzyć branch- + + + + + Git für Fortgeschrittene + + + Git dla zaawansowanych + + + + + Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes angezeigt hat? + + + Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? + + + + + Rund ums 'Clonen' + + + Polecenie CLONEN + + + + + um die letzte Beschreibung zu ändern. + + + by zmienić ostatni opis. + + + + + Multitasking mit Lichtgeschwindigkeit + + + Multitasking z prędkością światła + + + + + Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die ignoriert werden sollen. + + + Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + + + + + - Organisiere 'Commits' durch verschieben von Zeilen. + + + - przeorganizuj 'commits' przesuwając linie. + + + + + Klassische Quellcodeverwaltung + + + Klasyczne zarządzanie kodem źródłowym + + + + + Falls nicht, führe *git deamon* aus und sage den Nutzern folgendes: + + + Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + + + + + Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' umwandeln, indem man in ein leeres 'Repository' 'pushed'. + + + To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT + + + + + Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + + Po stronie odbiorcy zapamiętaj email jako daną i podaj: + + + + + Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) und stellt den vorherigen Stand wieder her. + + + Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. + + + + + Git ruft eine Stand ab, der genau dazwischen liegt. + + + Git przywoła stan, który leży dokładnie pośrodku. + + + + + Du kannst auch eine Gruppe von 'Commits' angeben: + + + Możesz podać grupę 'commits' + + + + + Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe von: + + + Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + + + + + Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden um die am häufigsten benutzten Anweisungen zu verkürzen: + + + Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + + + + + Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' konfigurieren. + + + Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. + + + + + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + + + * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + + + + + <<branch,Dazu kommen wir später>>. + + + <<branch, wrócimy do tego później>> + + + + + Viele Kommandos sind mürrisch vor dem intialen 'Commit'. + + + Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. + + + + + Die Chef-Taste + + + Przycisk SZEF + + + + + EOT + + + EOT + + + + + Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige 'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder irgendetwas anderes. + + + Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + + + + + Bei Softwareprojekten kann das ähnlich sein. + + + W projektach software moze to wygladac podobnie. + + + + + In ein paar Jahren hat vielleicht schon ein ganz normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' unbemerkt zu korrumpieren. + + + Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + + + + + Über die Zeit haben sich einige lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' mit dem offiziellen Zweig. + + + Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. + + + + + Siehe *git help branch*. + + + Zobacz: *git help branch*. + + + + + Computer synchronisieren + + + Synchronizacja komputera + + + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + + + + + Die Datei zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden könnte. + + + Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. + + + + + Ein Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die Konstruktion fortgesetzt werden kann. + + + Prototyp musi czekac na wyprodukowanie baustein zanim mozna podjac dalsza konstrukcje. + + + + + und die letzten zehn 'Commits' erscheinen in deinem bevorzugten $EDITOR. Auszug aus einem Beispiel: + + + i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + + + + + * `reword` um die Log-Beschreibung zu ändern. + + + * `reword`, by zmienić opisy logu. + + + + + Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus der Geschichte zu löschen. + + + Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. + + + + + Meistens befindet es sich auf einem Server, der nicht viel tut außer Daten zu verbreiten. + + + Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. + + + + + Standardmäßig nutzt Git Systemeinstellungen um diese Felder auszufüllen. + + + Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. + + + + + Die Hilfeseiten schlagen vor 'Tags' zu benutzen um dieses Problem zu lösen. + + + Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. + + + + + Git tauscht selten Daten direkt zwischen Deinem Projekt und seiner Versionsgeschichte aus. + + + Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. + + + + + Du kannst einen 'Patch' Entwicklern schicken, ganz egal, was für ein Versionsverwaltungssystem sie benutzen. + + + Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. + + + + + Gib ein: + + + Za pomoc + + + + + int main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + + + + + Versionsverwaltung + + + Kontrola wersji + + + + + und deine Nutzer können ihr Skript aktualisieren mit: + + + a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + + + + + Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen Logdateien. + + + Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. + + + + + Wir haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. + + + We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. + + + + + Das neue Verzeichnis enthält die Dateien mit deinen Änderungen. + + + Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami + + + + + Normalerweise wird ein Skript, das diese Anweisung benutzt, hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem einzigen Lauf zu migrieren. + + + Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + + + + + um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. + + + by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, + + + + + Siehe auf der Git Hilfeseite für einige Anwendungsbeispiele. + + + Na stronach pomocy git znajdziesz więcej zasosowań. + + + + + Die vergangenen 'Commits' wissen nichts von der Zukunft. + + + Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + + + + + Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der häufigsten Anweisungen umgehen. + + + Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + + + + + Aber wie kannst Du zurück in die Zukunft? + + + Ale jak teraz wrócić znów do przyszłości? + + + + + $ git branch -D dead_branch # instead of -d + + + $ git branch -D dead_branch # zamiast -d + + + + + ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" Änderungen). + + + by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) + + + + + Um zu verhindern, dass sich Git beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder 'reseten'. + + + Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + + + + + Andere können davon ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und dass er die offizielle Version enthält. + + + Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję + + + + + Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert hat. + + + Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + + + + + Wirklich, diese Anweisung kann Klartext-'Repositories' über reine Textkanäle übertragen. + + + Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + + + + + Welche Lösung ist die beste? + + + Ktore rozwiazanie jest najlepsze? + + + + + *Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + + + *Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie: *git branch*. + + + + + Dann mache folgendes auf deinem Server: + + + To po prostu zwób coś takiego na twoim serwerze: + + + + + Antworte mit "y" für Ja oder "n" für Nein. + + + Odpowiedz po prostu "y" dla tak, albo "n" dla nie. + + + + + Jede Datei einzeln nachzuprüfen ist frustrierend und ermüdend. + + + Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. + + + + + Ich spiele Computerspiele schon fast mein ganzes Leben. + + + Gram w gry komputerowe przez całe moje życie. + + + + + Während dem Warten auf das Ende der Serverkommunikation tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails lesen oder Dokumentation schreiben. + + + Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. + + + + + Alternativ kannst du einen Webserver installieren mit *git instaweb*, dann kannst du mit jedem Webbrowser darauf zugreifen. + + + Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + + + + + Das ist eine primitive und mühselige Form der Versionsverwaltung. + + + Jest to prymitywna i pracochłonna forma kontroli wersji. + + + + + Wir können den 'Commit' von A auf B als Änderung betrachten, die wir rückgängig machen wollen: + + + Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + + + + + Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu schreiben und außerdem um 'Repositories' in Klartext zu übertragen. + + + Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. + + + + + Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash des letzten 'Commit' verknüpft ist. + + + Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + + + + + Die Textdatei ist wiederhergestellt. + + + Poprzedni plik jest przywrocony do stanu pierwotnego + + + + + Wenn du gut voran gekommen bist, willst du das Erreichte sichern. + + + Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. + + + + + Wenn du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir Konflikte melden. + + + Jesli jednak wprowadziles zmiany, GIT bedzie je automatycznie MERGEN i powiadomi cie o eventualnych konfliktach. + + + + + Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne Netzwerkverbindung? + + + Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? + + + + + In irgendeinem Verzeichnis: + + + W pewnym katalogu: + + + + + Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. + + + Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. + + + + + wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den ``bereinigt'' 'Branch' an. + + + zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. + + + + + *Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. + + + *Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. + + + + + $ git clean -f -d + + + $ git clean -f -d + + + + + Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem Ordner voller Dateien. + + + Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. + + + + + Möglicherweise reicht ORIG_HEAD nicht aus. + + + Może się zdarzyć, że ORIG_HEAD nie wystarczy. + + + + + Das geht wesentlich schneller, aber der resultierende Klon hat nur eingeschränkte Funktionalität. + + + Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + + + + + gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt werden kann. + + + produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. + + + + + 'Branches' verwalten + + + Organizacja BRANCHES + + + + + Mit etwas Glück, wenn Git's Verbreitung zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie vielleicht implementiert. + + + Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + + + + + Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten offiziellen Änderungen dort hin. + + + Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. + + + + + Dann gehe wieder ins neue Verzeichnis und gib ein: + + + Następnie przejdź do dowego katalogu i podaj: + + + + + Der Index ist ein temporärer Bereitstellungsraum. + + + Index jest tymczasowym rusztowaniem + + + + + $ git symbolic-ref HEAD + + + $ git symbolic-ref HEAD + + + + + Das Unterverzeichnis `refs` enthält den Verlauf aller Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, die jemals diese Bezeichnung hatten. + + + Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. + + + + + Die Ursachen für die großen Unterschiede sollten ermittelt werden. + + + Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. + + + + + $ git apply < mein.patch + + + $ git apply < moj.patch + + + + + Dass, wenn der Chef ins Büro spaziert, während du das Spiel spielst, du es schnell verstecken kannst? + + + By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + + + + + Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + + Podobnie możesze celowo wykasować wybrane COMMITS. + + + + + Zusätzlich müssen verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines 'Branch' mit einem abweichenden initialen 'Commit'. + + + Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + + + + + $ git bundle create einedatei HEAD ^1b6d + + + +$ git bundle create plik HEAD ^1b6d + + + + + Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen Rechner. + + + Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. + + + + + In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die Fertigstellung des ersten Schritt warten. + + + W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego + + + + + Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen referenzieren. + + + Mozesz tez jakiegos rodzica referowac znaczkiem CARET + + + + + Wie du dir vielleicht schon gedacht hast, verwendet Git 'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + + + Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + + + + + Du merkst, dass du vergessen hast eine Datei hinzuzufügen? + + + Zauważasu, że zapomniałeś dodać jakiegoś pliku? + + + + + Beginne ein paar 'Branches': + + + Wystartuj kilka BRANCHES: + + + + + und noch viel mehr + + + i tak dalej. + + + + + Verhindere schlechte 'Commits' + + + Zapobiegaj złym 'commits' + + + + + Ein einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und so weiter. + + + Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. + + + + + Die resultierenden Dateien können an *git-send-email* übergeben werden oder von Hand verschickt werden. + + + Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. + + + + + In extremen Fällen trifft das auch auf die grundlegenden Anweisungen zu. + + + W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. + + + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + $ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + + + + + Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen das Zerstören der Daten. + + + Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. + + + + + Ansonsten: + + + W przeciwnym razie: + + + + + Einleitung + + + Wprowadzenie + + + + + Der Verlauf der Firmware interessiert den Anwender nicht und Änderungen lassen sich schlecht komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' unnötig auf. + + + Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + + + + + Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut ('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas zwischen 1 und 127 für 'bad'. + + + Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. + + + + + Aber einige Leute sind diesen Zähler gewöhnt. + + + Niektórzy jednak przyzwyczaili się do tego licznika. + + + + + Nun können wir die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten Stand, aber wir müssen den 'Master Branch' verlassen. + + + Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic MASTER BRANCH. + + + + + Das Problem ist, den entsprechenden SHA1-Wert zu finden. + + + Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. + + + + + Kleinere Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie möglich bewirken. + + + Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + + + + + wird den 'Commit' mit dem angegebenen Hashwert rückgängig machen. + + + To polecenie skasuje COMMIT o wybranym hash-u. + + + + + Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. + + + Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami + + + + + A, B, C, D sind 4 aufeinander folgende 'Commits'. + + + A, B, C i D sa 4 nastepujacymi po sobie COMMITS. + + + + + Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git 'Repositories' arbeiten. + + + Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git + + + + + Eine unzuverlässige Internetverbindung stört mit Git nicht sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig wie ein lokale Festplatte sein sollte. + + + Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. + + + + + Einige Projekte erfordern, dass dein Code überprüft werden muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + + + Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, zanim bedziesz mogl zaczac z druga czescia + + + + + Bei verteilen Systemen ist das viel besser, da wir die benötigt Version lokal 'clonen' können. + + + Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + + + + + Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch Ausführen von: + + + Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + + + + + Dies verleiht ihnen eine universelle Anziehungskraft. + + + Dodaje im to uniwersalnej mocy przyciągania. + + + + + Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus veröffentlichen. + + + Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + + + + + Dein Arbeitsverzeichnis erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu editieren. + + + Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować + + + + + Es können noch weitaus kompliziertere Situationen entstehen. + + + Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. + + + + + Wir müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen 'pullen', also abholen wollen. + + + Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. + + + + + Einige plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für seine Arbeit einen neuen 'Branch' anzulegen. + + + Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + + + + + *Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. + + + *Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. + + + + + $ git rebase --continue + + + $ git rebase --continue + + + + + Nun kannst du überall wild temporären Code hinzufügen. + + + Teraz mozesz temporarnie wszedze wprowadzac na dziko kod + + + + + $ git bundle create neuesbundle HEAD ^letztesbundle + + + $ git bundle create nowybundle HEAD ^ostatnibundle + + + + + um mehr zu erfahren. + + + by dowiedzieć się więcej. + + + + + Mit diesem Zauberwort verwandeln sich die Dateien in deinem Arbeitsverzeichnis plötzlich von einer Version in eine andere. + + + Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. + + + + + Trotzdem gibt es Situationen, in denen es besser ist einen oberflächlichen Klon mit der `--depth` Option zu erstellen. + + + Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. + + + + + Geschichte machen + + + Tworzyć historię + + + + + Stell dir zum Beispiel vor, du willst ein Projekt veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen privat bleiben muss. + + + Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. + + + + + Wenn ein Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + + + Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + + + + + Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche die Form einer großen Binärdatei annimmt. + + + Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. + + + + + Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen gib ein: + + + Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + + + + + Teste die Funktion und wenn sich immer noch nicht funktioniert: + + + Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + + + + Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? + + + A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? + + + + + Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem nutzt und vermisst du Git? + + + Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? + + + + + Die ersten paar Zeichen eines Hashwert reichen aus um einen 'Commit' zu identifizieren; alternativ benutze kopieren und einfügen für den kompletten Hashwert. + + + Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. + + + + + Die Summe der Bemühungen verschlimmerte die Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu verbrauchen um noch längere Wartezeiten zu verhindern. + + + Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. + + + + + $ git commit --amend + + + $ git commit --amend + + + + + Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, werden verteilte Systeme genannt und können als eine Verallgemeinerung der zentralisierten Systeme verstanden werden. + + + Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. + + + + + Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + + + O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + + + + + Unter den Befehlen im Zusammenhang mit Git's verteilter Art, brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an unterschiedlichen Orten halten. + + + Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + + + + + Viele Versionen auf diese Art zu archivieren ist mühselig und kann sehr schnell teuer werden. + + + Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + + + + + Der erste Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten Datei im Index. + + + Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. + + + + + Um zum Beispiel die Unterschiede zum ersten Elternteil anzuzeigen: + + + By na przyklad pokazac roznice miedzy pierwszym rodzicem + + + + + Wenn du Dateien oder Verzeichnisse hinzufügst, musst du Git das mitteilen: + + + Jesli dodales nowe pliki, musisz o tym poinformowac GIT + + + + + Aber es gibt einen viel einfacheren Weg. + + + Istnieje jednak dużo prostszy sposób. + + + + + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + + + * `squash` by połączyć 'commit' z poprzednim ('merge'). + + + + + zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + + + pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + + + + + Betrachten wir Webbrowser. + + + Przyjżyjmy się takiej przeglądarce internetowej. + + + + + $ git config gc.auto 0 + + + $ git config gc.auto 0 + + + + + Wenn du fertig bist, + + + JAk juz jestes gotowy + + + + + Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu erweitern. + + + Dość łatwo zastosować ten sam trik na dowolną ilość części. + + + + + Um das Verschieben zu erzwingen, gib ein: + + + By wymusić przesunięcie, podaj: + + + + + Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. + + + By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. + + + + + Üblicherweise ist deren Verhalten einstellbar. + + + Zazwyczaj ich zachowanie daje się ustawić. + + + + + Git über SSH, HTTP + + + Git przez SSH, HTTP + + + + + Nun stell dir ein ganz kompliziertes Computerspiel vor. + + + Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. + + + + + Wenn Du zufrieden bist, gib + + + Jeśli jesteś zadowolony z wyniku, wpisz: + + + + + Das `tailor` Programm konvertiert Bazaar 'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während `bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + + + Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + + + + + Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von 20 Null-Bytes gesetzt. + + + Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash + + + + + Eine Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + + + Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + + + + + Folglich ist standardmäßig das 'Pushen' per Git-Protokoll verboten. + + + Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + + + + + Und eigene Sicherungen bereitstellt? + + + Natomiast własne innym udostępni? + + + + + Anstelle des zweiten Befehl kann man auch `git commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' möchte. + + + Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. + + + + + Versuche auch: + + + Sprobuj rowniez: + + + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + M 100644 inline hello.c data <<EOT #include <stdio.h> + + + + + Du kannst Dir alle SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten 'Commit' findest. + + + Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' + + + + + Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu überschreiben, wenn das einen Datenverlust zur Folge hat. + + + Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. + + + + + Du willst deine laufenden Arbeiten für dich behalten und andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert hast. + + + Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. + + + + + $ git tag -f letztesbundle HEAD + + + $ git tag -f ostatnibundle HEAD + + + + + Du denkst, du kannst das besser? + + + Uważasz, że potrafisz to lepiej + + + + + Eigenarten der Anwendung + + + Charakterystyka zastosowania + + + + + Netzwerkressourcen sind einfach teurer als lokale Ressourcen. + + + Zasoby sieciowe są po prostu droższe niż zasoby lokalne. + + + + + In diesem Fall verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber sehr flexibel. + + + W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. + + + + + Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch Dateinamen mit ungewöhnlichen Zeichen. + + + Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików + + + + + Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein sollen. + + + Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. + + + + + Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses Null-'Commits'. + + + Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + + + + + Leider kenne ich keine solche Erweiterung für Git. + + + Niestety nie są mi znane takie rozszerzenia dla GIT. + + + + + Mit ein paar Tastendrücken kannst Du mehrere geänderte Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') oder Änderungen einzelner Dateien nachprüfen und hinzufügen. + + + Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. + + + + + Beachte, dass alle Änderungen, die nicht 'commitet' sind übernommen werden. + + + Oauwaz, ze wszystkie zmiany, ktorre nie zostaly COMMITTED, zostaly przejete + + + + + Siehe *git help diff* und *git help rev-parse*. + + + Sprawdź *git help diff* i *git help rev-parse*. + + + + + Wann immer du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + + Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + + + + + Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom anderen Versionsverwaltungssystem ab. + + + Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. + + + + + Wie auch immer, vorausgesetzt du hast oft 'comittet', kann Git dir sagen, wo das Problem liegt: + + + Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + + + + + Auch auf Deiner Seite ist alles was Du brauchst ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' aufzusetzen. + + + Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + + + +
diff --git a/pl/omegat-tmp/source/Makefile b/pl/omegat-tmp/source/Makefile new file mode 100644 index 0000000..8dcb751 --- /dev/null +++ b/pl/omegat-tmp/source/Makefile @@ -0,0 +1,62 @@ +# Makefile to genereate everything needed for a translation of git-magic using po4a + +SHELL := /bin/bash + +# the possible targets +# +# clean - remove the folder $(POTDIR) and all the .txt files +# gettext - create the folder $(POTDIR) and generate the .po files in there +# translate - create the .txt files from the translated .po files +# for success you must have translated already 80% of a .po file +# update - update the .po files in case the originals has changed +# changed items are marked 'fuzzy' in the .po file to fin them easy + +.PHONY: clean gettext translate update + +# the path to the english original .txt files +ORGDIR := ../en + +# the folder where the .po files will be created +POTDIR := pot + +# the filenames for the .txt and .po files +# must be identical to the english original .txt files +FILES := preface intro basic clone branch history multiplayer grandmaster secrets drawbacks translate +# add the .txt suffix to the filenames for a list of .txt files +TXTFILES := $(addsuffix .txt, $(FILES)) +# add the .po suffix to the filenames for a list of .po files +POTFILES := $(addsuffix .po, $(FILES)) + +# prerequisites for gettext are the .po files +gettext: $(addprefix $(POTDIR)/,$(POTFILES)) + +# prerequisites for translate are the .txt files +translate: $(TXTFILES) + +# no prerequisites to update the translated .po files when the english original .txt has changed +update: + ( for FILE in $(FILES) ; \ + do if [ -f $(ORGDIR)/$$FILE.txt ]; \ + then po4a-updatepo -f text -m $(ORGDIR)/$$FILE.txt -M UTF-8 -p $(POTDIR)/$$FILE.po; echo $$FILE; \ + fi; \ + done ) + +# remove all .po and .txt files +clean: + -rm -rf $(POTDIR) + -rm -rf *.txt + +# prerequisites for the .po files is the existance of the pot folder +$(POTFILES) : | $(POTDIR) + +# create the folder for the .po files +$(POTDIR) : + -mkdir $(POTDIR) + +# rule how to make the .po files from the english original .txt file +$(POTDIR)/%.po : $(ORGDIR)/%.txt + po4a-gettextize -f text -m $< -p $@ -M UTF-8 + +# rule how to make the translatets .txt files from the translated .po files +%.txt : $(POTDIR)/%.po + po4a-translate -f text -m ../en/$@ -p $< -M UTF-8 -l $@ diff --git a/pl/omegat-tmp/source/basic.txt b/pl/omegat-tmp/source/basic.txt new file mode 100644 index 0000000..b6a8079 --- /dev/null +++ b/pl/omegat-tmp/source/basic.txt @@ -0,0 +1,257 @@ +== Erste Schritte == + +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. + +=== Stand sichern === + +Hast du gravierende Änderungen vor? Nur zu, aber speichere deinen aktuellen +Stand vorher lieber nochmal ab: + + $ git init + $ git add . + $ git commit -m "Meine erste Sicherung" + +Falls deine Änderungen schief gehen, kannst du jetzt die alte Version +wiederherstellen: + + $ git reset --hard + +Um den neuen Stand zu sichern: + + $ git commit -a -m "Eine andere Sicherung" + +=== Hinzufügen, Löschen, Umbenennen === + +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: + + $ git add readme.txt Dokumentation + +Ebenso, wenn Git Dateien vergessen soll: + + $ git rm ramsch.h veraltet.c + $ git rm -r belastendes/material/ + +Git löscht diese Dateien für dich, falls du es noch nicht getan hast. + +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: + + $ git mv fehler.c feature.c + +=== Fortgeschrittenes Rückgängig machen/Wiederherstellen === + +Manchmal möchtest du einfach zurück gehen und alle Änderungen ab einem +bestimmten Zeitpunkt verwerfen, weil sie falsch waren. Dann: + + $ git log + +zeigt dir eine Liste der bisherigen 'Commits' und deren SHA1 Hashwerte: + +---------------------------------- +commit 766f9881690d240ba334153047649b8b8f11c664 +Author: Bob +Date: Tue Mar 14 01:59:26 2000 -0800 + + Ersetze printf() mit write(). + +commit 82f5ea346a2e651544956a8653c0f58dc151275c +Author: Alice +Date: Thu Jan 1 00:00:00 1970 +0000 + + Initial commit. +---------------------------------- + +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: + + $ git reset --hard 766f + +um den Stand eines bestimmten 'Commits' wieder herzustellen und alle +nachfolgenden Änderungen für immer zu löschen. + +Ein anderes Mal willst du nur kurz zu einem älteren Stand springen. In +diesem Fall, gib folgendes ein: + + $ git checkout 82f5 + +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'. + +Diese alternative Realität heißt 'Branch' und <>. Für jetzt, merke dir + + $ git checkout master + +bringt dich wieder in die Gegenwart. Um zu verhindern, dass sich Git +beschwert, solltest du vor einem 'Checkout' alle Änderungen 'commiten' oder +'reseten'. + +Um wieder die Computerspielanalogie anzuwenden: + +- *`git reset --hard`*: Lade einen alten Stand und lösche alle Spielstände, +die neuer sind als der jetzt geladene. + +- *`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. <>. + +Du kannst auch nur einzelne Dateien oder Verzeichnisse wiederherstellen +indem du sie an den Befehl anhängst: + + $ git checkout 82f5 eine.datei andere.datei + +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. + +Du magst Kopieren und Einfügen von Hashes nicht? Dann nutze: + + $ git checkout :/"Meine erste Si" + +um zu einem 'Commit' zu springen, dessen Beschreibung so anfängt. Du kannst +auch nach dem 5. letzten 'Commit' fragen: + + $ git checkout master~5 + +=== Rückgängig machen === + +In einem Gerichtssaal können Ereignisse aus den Akten gelöscht +werden. Ähnlich kannst du gezielt 'Commits' rückgängig machen. + + $ git commit -a + $ git revert 1b6d + +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. + +=== Changelog erstellen === + +Verschiedene Projekte benötigen ein +http://de.wikipedia.org/wiki/%C3%84nderungsprotokoll[Änderungsprotokoll]. +Das kannst du mit folgendem Befehl erstellen: + + $ git log > ChangeLog + +=== Dateien herunterladen === + +Eine Kopie eines mit Git verwalteten Projekts bekommst du mit: + + $ git clone git://server/pfad/zu/dateien + +Um zum Beispiel alle Dateien zu bekommen, die ich zum Erzeugen dieser Seiten +benutze: + + $ git clone git://git.or.cz/gitmagic.git + +Es gibt gleich noch viel mehr über den 'clone' Befehl zu sagen. + +=== Das Neueste vom Neuen === + +Wenn du schon eine Kopie eines Projektes hast, kannst du es auf die neuste +Version aktualisieren mit: + + $ git pull + +=== Einfaches Veröffentlichen === + +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. + +Um dies in Git zu tun, gehe ins Verzeichnis in dem das Skript liegt: + + $ git init + $ git add . + $ git commit -m "Erster Stand" + +Dann sage deinen Nutzern: + + $ git clone dein.computer:/pfad/zum/skript + +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: + + $ git clone git://dein.computer/pfad/zum/skript + +Ab jetzt, immer wenn dein Skript reif für eine Veröffentlichung ist: + + $ git commit -a -m "Nächster Stand" + +und deine Nutzer können ihr Skript aktualisieren mit: + + $ git pull + +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. + +=== Was habe ich getan? === + +Finde heraus was du seit dem letzten 'Commit' getan hast: + + $ git diff + +Oder seit Gestern: + + $ git diff "@{gestern}" + +Oder zwischen irgendeiner Version und der vorvorletzten: + + $ git diff 1b6d "master~2" + +Jedes mal ist die Ausgabe ein 'Patch' der mit *git apply* eingespielt werden +kann. Versuche auch: + + $ git whatchanged --since="2 weeks ago" + +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. + +=== Übung === + +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? + +Es gibt mindestens 3 Lösungen. Angenommen, wir sind bei D: + + 1. 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: + + $ git diff B A | git apply + + 2. Da die Dateien im 'Repository' unter dem 'Commit' A gespeichert sind, + können wir sie wieder herstellen: + + $ git checkout A foo.c bar.h + + 3. Wir können den 'Commit' von A auf B als Änderung betrachten, die wir + rückgängig machen wollen: + + $ git revert B + +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. diff --git a/pl/omegat-tmp/source/branch.txt b/pl/omegat-tmp/source/branch.txt new file mode 100644 index 0000000..315e8b7 --- /dev/null +++ b/pl/omegat-tmp/source/branch.txt @@ -0,0 +1,304 @@ +== 'Branch'-Magie == + +Unverzügliches 'Branchen' und 'Mergen' sind die hervorstechenden +Eigenschaften von Git. + +*Problem*: Externe Faktoren zwingen zum Wechsel des Kontext. Ein schwerwiegender Fehler in der veröffentlichten Version tritt ohne Vorwarnung auf. Die Frist für ein bestimmtes Leistungsmerkmal rückt näher. Ein Entwickler, dessen Unterstützung für eine Schlüsselstelle im Projekt wichtig ist, verlässt das Team. In allen Fällen musst du alles stehen und liegen lassen und dich auf eine komplett andere Aufgabe konzentrieren. + +Den Gedankengang zu unterbrechen ist schlecht für die Produktivität und je +komplizierter der Kontextwechsel ist, desto größer ist der Verlust. Mit +zentraler Versionsverwaltung müssen wir eine neue Arbeitskopie vom Server +herunterladen. Bei verteilen Systemen ist das viel besser, da wir die +benötigt Version lokal 'clonen' können. + +Doch das 'Clonen' bringt das Kopieren des gesamten Arbeitsverzeichnis wie +auch die ganze Geschichte bis zum angegebenen Punkt mit sich. Auch wenn Git +die Kosten durch Dateifreigaben und Verknüpfungen reduziert, müssen doch die +gesamten Projektdateien im neuen Arbeitsverzeichnis erstellt werden. + +*Lösung*: Git hat ein besseres Werkzeug für diese Situationen, die wesentlich schneller und platzsparender als 'clonen' ist: *git branch*. + +Mit diesem Zauberwort verwandeln sich die Dateien in deinem +Arbeitsverzeichnis plötzlich von einer Version in eine andere. Diese +Verwandlung kann mehr als nur in der Geschichte vor und zurück gehen. Deine +Dateien können sich verwandeln, vom aktuellsten Stand, zur experimentellen +Version, zum neusten Entwicklungsstand, zur Version deines Freundes und so +weiter. + +=== Die Chef-Taste === + +Hast du schon einmal ein Spiel gespielt, wo beim Drücken einer Taste (``der +Chef-Taste''), der Monitor sofort ein Tabellenblatt oder etwas anderes +angezeigt hat? Dass, wenn der Chef ins Büro spaziert, während du das Spiel +spielst, du es schnell verstecken kannst? + +In irgendeinem Verzeichnis: + + $ echo "Ich bin klüger als mein Chef" > meinedatei.txt + $ git init + $ git add . + $ git commit -m "Erster Stand" + +Wir haben ein Git 'Repository' erstellt, das eine Textdatei mit einer +bestimmten Nachricht enthält. Nun gib ein: + + $ git checkout -b chef # scheinbar hat sich danach nichts geändert + $ echo "Mein Chef ist klüger als ich" > meinedatei.txt + $ git commit -a -m "Ein anderer Stand" + +Es sieht aus als hätten wir unsere Datei überschrieben und 'commitet'. Aber +es ist eine Illusion. Tippe: + + $ git checkout master # wechsle zur Originalversion der Datei + +und Simsalabim! Die Textdatei ist wiederhergestellt. Und wenn der Chef in +diesem Verzeichnis herumschnüffelt, tippe: + + $ git checkout chef # wechsle zur Version die der Chef ruhig sehen kann + +Du kannst zwischen den beiden Versionen wechseln, so oft du willst und du +kannst unabhängig voneinander in jeder Version Änderungen 'commiten' + +=== Schmutzarbeit === + +[[branch]] Sagen wir, du arbeitest an einer Funktion und du musst, warum +auch immer, drei Versionen zurückgehen um ein paar print Anweisungen +einzufügen, damit du siehst, wie etwas funktioniert. Dann: + + $ git commit -a + $ git checkout HEAD~3 + +Nun kannst du überall wild temporären Code hinzufügen. Du kannst diese +Änderungen sogar 'commiten'. Wenn du fertig bist, + + $ git checkout master + +um zur ursprünglichen Arbeit zurückzukehren. Beachte, dass alle Änderungen, +die nicht 'commitet' sind übernommen werden. + +Was, wenn du am Ende die temporären Änderungen sichern willst? Einfach: + + $ git checkout -b schmutzig + +und 'commite' bevor du auf den 'Master Branch' zurückschaltest. Wann immer +du zu deiner Schmutzarbeit zurückkehren willst, tippe einfach: + + $ git checkout schnmutzig + +Wir sind mit dieser Anweisung schon in einem früheren Kapitel in Berührung +gekommen, als wir das Laden alter Stände besprochen haben. Nun können wir +die ganze Geschichte erzählen: Die Dateien ändern sich zu dem angeforderten +Stand, aber wir müssen den 'Master Branch' verlassen. Jeder 'Commit' ab +jetzt führt deine Dateien auf einen anderen Weg, dem wir später noch einen +Namen geben können. + +Mit anderen Worten, nach dem Abrufen eines alten Stands versetzt dich Git +automatisch in einen neuen, unbenannten 'Branch', der mit *git checkout -b* +benannt und gesichert werden kann. + +=== Schnelle Fehlerbehebung === + +Du steckst mitten in der Arbeit, als es heißt alles fallen zu lassen um +einen neu entdeckten Fehler in 'Commit' `1b6d...` zu beheben: + + $ git commit -a + $ git checkout -b fixes 1b6d + +Dann, wenn du den Fehler behoben hast: + + $ git commit -a -m "Fehler behoben" + $ git checkout master + +und fahre mit deiner ursprünglichen Arbeit fort. Du kannst sogar die frisch +gebackene Fehlerkorrektur auf Deinen aktuellen Stand übernehmen: + + $ git merge fixes + +=== 'Mergen' === + +Mit einigen Versionsverwaltungssystemen ist das Erstellen eines 'Branch' +einfach, aber das Zusammenfügen ('Mergen') ist schwierig. Mit Git ist +'Mergen' so einfach, dass du gar nicht merkst, wenn es passiert. + +Tatsächlich sind wir dem 'Mergen' schon lange begegnet. Die *pull* Anweisung +holt ('fetch') eigentlich die 'Commits' und verschmilzt ('merged') diese +dann mit dem aktuellen 'Branch'. Wenn du keine lokalen Änderungen hast, dann +ist 'merge' eine 'schnelle Weiterleitung', ein Ausnahmefall, ähnlich dem +Abrufen der letzten Version eines zentralen Versionsverwaltungssystems. Wenn +du aber Änderungen hast, wird Git diese automatisch 'mergen' und dir +Konflikte melden. + +Normalerweise hat ein 'Commit' genau einen Eltern-'Commit', nämlich den +vorhergehenden 'Commit'. Das 'Mergen' mehrerer 'Branches' erzeugt einen +'Commit' mit mindestens zwei Eltern. Das wirft die Frage auf: Welchen +'Commit' referenziert `HEAD~10` tatsächlich? Ein 'Commit' kann mehrere +Eltern haben, welchem folgen wir also? + +Es stellt sich heraus, dass diese Notation immer den ersten Elternteil +wählt. Dies ist erstrebenswert, denn der aktuelle 'Branch' wird zum ersten +Elternteil während eines 'Merge'; häufig bist du nur von Änderungen +betroffen, die du im aktuellen 'Branch' gemacht hast, als von den Änderungen +die von anderen 'Branches' eingebracht wurden. + +Du kannst einen bestimmten Elternteil mit einem Caret-Zeichen +referenzieren. Um zum Beispiel die Logs vom zweiten Elternteil anzuzeigen: + + $ git log HEAD^2 + +Du kannst die Nummer für den ersten Elternteil weglassen. Um zum Beispiel +die Unterschiede zum ersten Elternteil anzuzeigen: + + $ git diff HEAD^ + +Du kannst diese Notation mit anderen Typen kombinieren. Zum Beispiel: + + $ git checkout 1b6d^^2~10 -b uralt + +beginnt einen neuen 'Branch' ``uralt'', welcher den Stand 10 'Commits' +zurück vom zweiten Elternteil des ersten Elternteil des 'Commits', dessen +Hashwert mit 1b6d beginnt. + +=== Kontinuierlicher Arbeitsfluss === + +In Herstellungsprozessen muss der zweiter Schritt eines Plans oft auf die +Fertigstellung des ersten Schritt warten. Ein Auto, das repariert werden +soll, steht unbenutzt in der Garage bis ein Ersatzteil geliefert wird. Ein +Prototyp muss warten, bis ein Baustein fabriziert wurde, bevor die +Konstruktion fortgesetzt werden kann. + +Bei Softwareprojekten kann das ähnlich sein. Der zweite Teil eines +Leistungsmerkmals muss warten, bis der erste Teil veröffentlicht und +getestet wurde. Einige Projekte erfordern, dass dein Code überprüft werden +muss bevor er akzeptiert wird, du musst also warten, bis der erste Teil +geprüft wurde, bevor du mit dem zweiten Teil anfangen kannst. + +Dank des schmerzlosen 'Branchen' und 'Mergen' können wir die Regeln beugen +und am Teil II arbeiten, bevor Teil I offiziell freigegeben +wurde. Angenommen du hast Teil I 'commitet' und zur Prüfung +eingereicht. Sagen wir du bist im `master` 'Branch'. Dann 'branche' zu Teil +II: + + $ git checkout -b teil2 + +Du arbeitest also an Teil II und 'commitest' deine Änderungen +regelmäßig. Irren ist menschlich und so kann es vorkommen, dass du zurück zu +Teil I willst um einen Fehler zu beheben. Wenn du Glück hast oder sehr gut +bist, kannst du die nächsten Zeilen überspringen. + + $ git checkout master # Gehe zurück zu Teil I. + $ fix_problem + $ git commit -a # 'Commite' die Lösung. + $ git checkout teil2 # Gehe zurück zu Teil II. + $ git merge master # 'Merge' die Lösung. + +Schließlich, Teil I ist zugelassen: + + $ git checkout master # Gehe zurück zu Teil I. + $ submit files # Veröffentliche deine Dateien! + $ git merge teil2 # 'Merge' in Teil II. + $ git branch -d teil2 # Lösche den Branch "teil2" + +Nun bist du wieder im `master` 'Branch', mit Teil II im Arbeitsverzeichnis. + +Es ist einfach, diesen Trick auf eine beliebige Anzahl von Teilen zu +erweitern. Es ist genauso einfach rückwirkend zu 'branchen': angenommen, du +merkst zu spät, dass vor sieben 'Commits' ein 'Branch' erforderlich gewesen +wäre. Dann tippe: + + $ git branch -m master teil2 # Umbenennen des 'Branch' "master" zu "teil2". + $ git branch master HEAD~7 # Erstelle neuen "master", 7 Commits voraus + +Der `master` Branch enthält nun Teil I, und der `teil2` Branch enthält den +Rest. Wir befinden uns in letzterem Branch; wir haben `master` erzeugt ohne +dorthin zu wechseln, denn wir wollen im `teil2` weiterarbeiten. Das ist +unüblich. Bisher haben wir unmittelbar nach dem Erstellen in einen 'Branch' +gewechselt, wie in: + + $ git checkout HEAD~7 -b master # erzeuge einen Branch, und wechsle zu ihm. + +=== Mischmasch Reorganisieren === + +Vielleicht magst du es, alle Aspekte eines Projekts im selben 'Branch' +abzuarbeiten. Du willst deine laufenden Arbeiten für dich behalten und +andere sollen deine 'Commits' nur sehen, wenn du sie hübsch organisiert +hast. Beginne ein paar 'Branches': + + $ git branch sauber # Erzeuge einen Branch für gesäuberte Commits. + $ git checkout -b mischmasch # Erzeuge und wechsle in den Branch zum Arbeiten. + +Fahre fort alles zu bearbeiten: Behebe Fehler, füge Funktionen hinzu, +erstelle temporären Code und so weiter und 'commite' deine Änderungen +oft. Dann: + + $ git checkout bereinigt + $ git cherry-pick mischmasch^^ + +wendet den Urahn des obersten 'Commit' des ``mischmasch'' 'Branch' auf den +``bereinigt'' 'Branch' an. Durch das Herauspicken der Rosinen kannst du +einen 'Branch' konstruieren, der nur endgültigen Code enthält und +zusammengehörige 'Commits' gruppiert hat. + +=== 'Branches' verwalten === + +Ein Liste aller 'Branches' bekommst du mit: + + $ git branch + +Standardmäßig beginnst du in einem 'Branch' namens ``master''. Einige +plädieren dafür, den ``master'' 'Branch' unangetastet zu lassen und für +seine Arbeit einen neuen 'Branch' anzulegen. + +Die *-d* und *-m* Optionen erlauben dir 'Branches' zu löschen und zu +verschieben (umzubenennen). Siehe *git help branch*. + +Der ``master'' 'Branch' ist ein nützlicher Brauch. Andere können davon +ausgehen, dass dein 'Repository' einen 'Branch' mit diesem Namen hat und +dass er die offizielle Version enthält. Auch wenn du den ``master'' 'Branch' +umbenennen oder auslöschen könntest, kannst du diese Konvention aber auch +respektieren. + +=== Temporäre 'Branches' === + +Nach einer Weile wirst du feststellen, dass du regelmäßig kurzlebige +'Branches' erzeugst, meist aus dem gleichen Grund: jeder neue 'Branch' dient +lediglich dazu, den aktuellen Stand zu sichern, damit du kurz zu einem alten +Stand zurück kannst um eine vorrangige Fehlerbehebung zu machen oder +irgendetwas anderes. + +Es ist vergleichbar mit dem kurzzeitigen Umschalten des Fernsehkanals um zu +sehen was auf dem anderen Kanal los ist. Doch anstelle ein paar Knöpfe zu +drücken, machst du 'create', 'check out', 'merge' und 'delete' von +temporären 'Branches'. Glücklicherweise hat Git eine Abkürzung dafür, die +genauso komfortabel ist wie eine Fernbedienung: + + $ git stash + +Das sichert den aktuellen Stand an einem temporären Ort ('stash'=Versteck) +und stellt den vorherigen Stand wieder her. Dein Arbeitsverzeichnis +erscheint wieder exakt in dem Zustand wie es war, bevor du anfingst zu +editieren. Nun kannst du Fehler beheben, Änderungen vom zentralen +'Repository' holen ('pull') und so weiter. Wenn du wieder zurück zu deinen +Änderungen willst, tippe: + + $ git stash apply # Es kann sein, dass du Konflikte auflösen musst. + +Du kannst mehrere 'stashes' haben und diese unterschiedlich handhaben. Siehe +*git help stash*. Wie du dir vielleicht schon gedacht hast, verwendet Git +'Branches' im Hintergrund um diesen Zaubertrick durchzuführen. + +=== Arbeite wie du willst === + +Du magst dich fragen, ob 'Branches' diesen Aufwand Wert sind. Immerhin sind +'Clone' fast genauso schnell und du kannst mit *cd* anstelle von +esoterischen Git Befehlen zwischen ihnen wechseln. + +Betrachten wir Webbrowser. Warum mehrere Tabs unterstützen und mehrere +Fenster? Weil beides zu erlauben eine Vielzahl an Stilen unterstützt. Einige +Anwender möchten nur ein Browserfenster geöffnet haben und benutzen Tabs für +unterschiedliche Webseiten. Andere bestehen auf dem anderen Extrem: mehrere +Fenster, ganz ohne Tabs. Wieder andere bevorzugen irgendetwas dazwischen. + +'Branchen' ist wie Tabs für dein Arbeitsverzeichnis und 'Clonen' ist wie das +Öffnen eines neuen Browserfenster. Diese Operationen sind schnell und lokal, +also warum nicht damit experimentieren um die beste Kombination für sich +selbst zu finden? Git lässt dich genauso arbeiten, wie du es willst. diff --git a/pl/omegat-tmp/source/clone.txt b/pl/omegat-tmp/source/clone.txt new file mode 100644 index 0000000..9731db7 --- /dev/null +++ b/pl/omegat-tmp/source/clone.txt @@ -0,0 +1,310 @@ +== Rund ums 'Clonen' == + +In älteren Versionsverwaltungssystemen ist 'checkout' die Standardoperation +um Dateien zu bekommen. Du bekommst einen Haufen Dateien eines bestimmten +Sicherungsstands. + +In Git und anderen verteilten Versionsverwaltungssystemen ist 'clone' die +Standardaktion. Um Dateien zu bekommen, erstellst du einen 'Clone' des +gesamten 'Repository'. Oder anders gesagt, du spiegelst den zentralen +Server. Alles, was man mit dem zentralen 'Repository' tun kann, kannst du +auch mit deinem 'Clone' tun. + +=== Computer synchronisieren === + +Es ist akzeptabel, für Datensicherungen und einfaches Synchronisieren, mit +'tarball' Archiven oder *rsync* zu arbeiten. Aber manchmal arbeite ich an +meinem Laptop, dann an meinem Desktop-PC und die beiden haben sich +inzwischen nicht austauschen können. + +Erstelle ein Git 'Repository' und 'commite' deine Dateien auf dem einen +Rechner. Dann auf dem anderen: + + $ git clone anderer.computer:/pfad/zu/dateien + +um eine zweite Kopie der Dateien und des Git 'Repository' zu erstellen. Von +jetzt an wird + + $ git commit -a + $ git pull anderer.computer:/pfad/zu/dateien HEAD + +den Zustand der Dateien des anderen Computer auf den übertragen, an dem du +gerade arbeitest. Solltest du kürzlich konkurrierende Änderungen an der +selben Datei vorgenommen haben, lässt Git dich das wissen und musst erneut +'commiten' nachdem du die Konflikte aufgelöst hast. + +=== Klassische Quellcodeverwaltung === + +Erstelle ein Git 'Repository' für deine Dateien: + + $ git init + $ git add . + $ git commit -m "Erster Commit" + +Auf dem zentralen Server erstelle ein 'bare Repository' in irgendeinem +Ordner: + + $ mkdir proj.git + $ cd proj.git + $ git init --bare + $ touch proj.git/git-daemon-export-ok + +Wenn nötig, starte den Git-Dämon: + + $ git daemon --detach # er könnte schon laufen + +Für Git Hostingdienste folge den Anweisungen zum Erstellen des zunächst +leeren Git 'Repository'. Normalerweise füllt man ein Formular auf einer +Website aus. + +Übertrage ('push') dein Projekt auf den zentralen Server mit: + + $ git push zentraler.server/pfad/zu/proj.git HEAD + +Um die Quellcodes abzurufen gibt ein Entwickler folgendes ein: + + $ git clone zentraler.server/pfad/zu/proj.git + +Nach dem Bearbeiten sichert der Entwickler die Änderungen lokal: + + $ git commit -a + +Um auf die aktuelle Server-Version zu aktualisieren: + + $ git pull + +Irgendwelche 'Merge'-Konflikte sollten dann aufgelöst und erneut 'commitet' +werden: + + $ git commit -a + +Um die lokalen Änderungen in das zentrale 'Repository' zu übertragen: + + $ git push + +Wenn inzwischen neue Änderungen von anderen Entwicklern beim Hauptserver +eingegangen sind, schlägt dein 'push' fehl. Aktualisiere das lokale +'Repository' erneut mit 'pull', löse eventuell aufgetretene +'Merge'-Konflikte und versuche es nochmal. + +Entwickler brauchen SSH Zugriff für die vorherigen 'pull' und 'push' +Anweisungen. Trotzdem kann jedermann die Quelltexte einsehen, durch Eingabe +von: + + $ git clone git://zentraler.server/pfad/zu/proj.git + +Das ursprüngliche Git-Protokoll ähnelt HTTP: Es gibt keine +Authentifizierung, also kann jeder das Projekt abrufen. Folglich ist +standardmäßig das 'Pushen' per Git-Protokoll verboten. + +=== Geheime Quellen === + +Für ein Closed-Source-Projekt lasse die 'touch' Anweisung weg und stelle +sicher, dass niemals eine Datei namens `git-daemon-export-ok` erstellt +wird. Das 'Repository' kann nun nicht mehr über das Git-Protokol abgerufen +werden; nur diejenigen mit SSH Zugriff können es einsehen. Wenn alle +'Repositories' geschlossen sind, ist es unnötig den Git Dämon laufen zu +lassen, da jegliche Kommunikation über SSH läuft. + +=== 'Nackte Repositories' === + +Ein nacktes ('bare') 'Repository' wird so genannt, weil es kein +Arbeitsverzeichnis hat. Es enthält nur Dateien, die normalerweise im '.git' +Unterverzeichnis versteckt sind. Mit anderen Worten, es verwaltet die +Geschichte eines Projekts, enthält aber niemals einen Auszug irgendeiner +beliebigen Version. + +Ein 'bare Repository' übernimmt die Rolle des Hauptserver in einem +zentralisierten Versionsverwaltungssystem: Das Zuhause deines +Projekts. Entwickler 'clonen' dein Projekt davon und 'pushen' die letzten +offiziellen Änderungen dort hin. Meistens befindet es sich auf einem Server, +der nicht viel tut außer Daten zu verbreiten. Die Entwicklung findet in den +'Clonen' statt, so kann das Heim-'Repository' ohne Arbeitsverzeichnis +auskommen. + +Viele Git Befehle funktionieren nicht in 'bare Repositories'. Es sei denn +die `GIT_DIR` Umgebungsvariable wird auf das Arbeitsverzeichnis gesetzt, +oder die `--bare` Option wird übergeben. + +=== 'Push' oder 'Pull' === + +Warum haben wir den 'push'-Befehl eingeführt, anstatt bei dem vertrauten +'pull'-Befehl zu bleiben? Zuerst, 'pull' funktioniert nicht mit 'bare +Repositories': stattdessen benutze 'fetch', ein Befehl, den wir später +behandeln. Aber auch wenn wir ein normales 'Repository' auf dem zentralen +Server halten würden, wäre das 'pullen' eine mühselige Angelegenheit. Wir +müssten uns zuerst in den Server einloggen und dem 'pull'-Befehl die +Netzwerkadresse des Computer übergeben, von dem aus wir die Änderungen +'pullen', also abholen wollen. Firewalls könnten uns stören und was, wenn +wir gar keine Berechtigung für eine Serverkonsole haben. + +Wie auch immer, abgesehen von diesem Fall, raten wir vom 'Pushen' in ein +'Repository' ab. Falls das Ziel nämlich ein Arbeitsverzeichnis hat, können +Verwirrungen entstehen. + +Kurzum, während du lernst mit Git umzugehen, 'pushe' nur, wenn das Ziel ein +'bare Repository' ist; andernfalls benutze 'pull'. + +=== 'Fork' eines Projekts === + +Hast du es satt, wie sich ein Projekt entwickelt? Du denkst, du kannst das +besser? Dann mache folgendes auf deinem Server: + + $ git clone git://haupt.server/pfad/zu/dateien + +Dann erzähle jedem von deiner 'Fork' des Projekts auf deinem Server. + +Zu jedem späteren Zeitpunkt kannst du die Änderungen des Originalprojekts +'mergen' mit: + + $ git pull + +=== Ultimative Datensicherung === + +Du willst zahlreiche, vor Manipulation geschützte, redundante +Datensicherungen an unterschiedlichen Orten? Wenn dein Projekt viele +Entwickler hat, musst du nichts tun! Jeder 'Clone' deines Codes ist eine +vollwertige Datensicherung. Nicht nur des aktuellen Stand, sondern der +gesamten Geschichte. Wird irgendein 'Clone' beschädigt, wird dies dank des +kryptographischen 'Hashing' sofort erkannt, sobald derjenige versucht mit +anderen zu kommunizieren. + +Wenn dein Projekt nicht so bekannt ist, finde so viele Server wie du kannst +um dort einen 'Clone' zu platzieren. + +Die wirklich Paranoiden sollten immer den letzten 20-Byte SHA1 Hash des +'HEAD' aufschreiben und an einem sicheren Ort aufbewahren. Er muss sicher +sein, aber nicht privat. Zum Beispiel wäre es sicher, ihn in einer Zeitung +zu veröffentlichen, denn es ist schwer für einen Angreifer jede +Zeitungskopie zu manipulieren. + +=== Multitasking mit Lichtgeschwindigkeit === + +Nehmen wir an du willst parallel an mehreren Funktionen arbeiten. Dann +'commite' dein Projekt und gib ein: + + $ git clone . /irgendein/neuer/ordner + +http://de.wikipedia.org/wiki/Harter_Link[Harten Links] ist es zu verdanken, +dass ein lokaler Klon weniger Zeit und Speicherplatz benötigt als eine +herkömmliche Datensicherung. + +Du kannst nun an zwei unabhängigen Funktionen gleichzeitig arbeiten. Zum +Beispiel kannst Du einen Klon bearbeiten, während der andere kompiliert +wird. Zu jeder Zeit kannst Du 'comitten' und die Änderungen des anderen Klon +'pullen'. + + $ git pull /der/andere/clone HEAD + +=== Versionsverwaltung im Untergrund === + +Arbeitest du an einem Projekt, das ein anderes Versionsverwaltungssystem +nutzt und vermisst du Git? Dann erstelle ein Git 'Repository' in deinem +Arbeitsverzeichnis: + + $ git init + $ git add . + $ git commit -m "Erster Commit" + +dann 'Clone' es: + + $ git clone . /irgendein/neuer/ordner + +Nun gehe in das neue Verzeichnis und arbeite dort mit Git nach +Herzenslust. Irgendwann wirst du dann mit den anderen synchronisieren +wollen, dann gehe in das Originalverzeichnis, aktualisiere mit dem anderen +Versionsverwaltungssystem und gib ein: + + $ git add . + $ git commit -m "Synchronisation mit den anderen" + +Dann gehe wieder ins neue Verzeichnis und gib ein: + + $ git commit -a -m "Beschreibung der Änderungen" + $ git pull + +Die Vorgehensweise, wie du deine Änderungen den anderen übergibst, hängt vom +anderen Versionsverwaltungssystem ab. Das neue Verzeichnis enthält die +Dateien mit deinen Änderungen. Führe die Anweisungen des anderen +Versionsverwaltungssystems aus, die nötig sind um die Dateien ins zentrale +'Repository' zu übertragen. + +Subversion, vielleicht das beste zentralisierte Versionsverwaltungssystem, +wird von unzähligen Projekten benutzt. Der *git svn*-Befehl automatisiert +den zuvor genannten Ablauf für Subversion 'Repositories' und kann auch +benutzt werden um +http://google-opensource.blogspot.com/2008/05/export-git-project-to-google-code.html[ein +Git Projekt in ein Subversion 'Repository' zu exportieren]. + +=== Mercurial === + +Mercurial ist ein ähnliches Versionsverwaltungssystem, das fast nahtlos mit +Git zusammenarbeiten kann. Mit der `hg-git`-Erweiterung kann ein Benutzer +von Mercurial verlustfrei in ein Git 'Repository' 'pushen' und daraus +'pullen'. + +Beschaffe dir die `hg-git`-Erweiterung mit Git: + + $ git clone git://github.com/schacon/hg-git.git + +oder Mercurial: + + $ hg clone http://bitbucket.org/durin42/hg-git/ + +Leider kenne ich keine solche Erweiterung für Git. Aus diesem Grund plädiere +ich für Git statt Mercurial für ein zentrales 'Repository', auch wenn man +Mercurial bevorzugt. Bei einem Mercurial Projekt gibt es gewöhnlich immer +einen Freiwilligen, der parallel dazu ein Git 'Repository' für die Git +Anwender unterhält, wogegen, Dank der `hg-git`-Erweiterung, ein Git Projekt +automatisch die Benutzer von Mercurial mit einbezieht. + +Die Erweiterung kann auch ein Mercurial 'Repository' in ein Git 'Repository' +umwandeln, indem man in ein leeres 'Repository' 'pushed'. Einfacher geht das +mit dem `hg-fast-export.sh` Skript, welches es hier gibt: + + $ git clone git://repo.or.cz/fast-export.git + +Zum Konvertieren gib in einem leeren Verzeichnis ein: + + $ git init + $ hg-fast-export.sh -r /hg/repo + +nachdem du das Skript zu deinem `$PATH` hinzugefügt hast. + +=== Bazaar === + +Wir erwähnen auch kurz Bazaar, weil es nach Git und Mercurial das +bekannteste freie verteilte Versionsverwaltungssystem ist. + +Bazaar hat den Vorteil des Rückblicks, da es relativ jung ist; seine +Entwickler konnten aus Fehlern der Vergangenheit lernen und kleine +historische Unwegbarkeiten umgehen. Außerdem waren sich die Entwickler der +Popularität und Interoperabilität mit anderen Versionsverwaltungssystemen +bewusst. + +Eine `bzr-git`-Erweiterung lässt Anwender von Bazaar einigermaßen mit Git +'Repositories' arbeiten. Das `tailor` Programm konvertiert Bazaar +'Repositories' zu Git 'Repositories' und kann das forlaufend tun, während +`bzr-fast-export` für einmalige Konvertierungen besser geeignet ist. + +=== Warum ich Git benutze === + +Ich habe ursprünglich Git gewählt, weil ich gehört habe, dass es die +unvorstellbar unüberschaubaren Linux Kernel Quellcodes verwalten kann. Ich +hatte noch keinen Grund zu wechseln. Git hat mir bewundernswert gedient und +hat mich bis jetzt noch nie im Stich gelassen. Da ich in erster Linie unter +Linux arbeite, sind Probleme anderer Plattformen bedeutungslos. + +Ich bevorzuge auch C-Programme und 'bash'-Skripte gegenüber Anwendungen wie +zum Beispiel Python Skripts: Es gibt weniger Abhängigkeiten und ich bin +süchtig nach schellen Ausführungszeiten. + +Ich dachte darüber nach, wie Git verbessert werden könnte, ging sogar so +weit, dass ich meine eigene Git-Ähnliche Anwendung schrieb, allerdings nur +als akademische Übungen. Hätte ich mein Projekt fertig gestellt, wäre ich +trotzdem bei Git geblieben, denn die Verbesserungen wären zu gering gewesen +um den Einsatz eines Eigenbrödler-Systems zu rechtfertigen. + +Natürlich können deine Bedürfnisse und Wünsche ganz anders sein und +vielleicht bist du mit einem anderen System besser dran. Wie auch immer, mit +Git kannst du nicht viel falsch machen. diff --git a/pl/omegat-tmp/source/drawbacks.txt b/pl/omegat-tmp/source/drawbacks.txt new file mode 100644 index 0000000..c74cf72 --- /dev/null +++ b/pl/omegat-tmp/source/drawbacks.txt @@ -0,0 +1,183 @@ +== Anhang A: Git's Mängel == + +Ein paar Git-Probleme habe ich bisher unter den Teppich gekehrt. Einige +lassen sich einfach mit Skripten und 'Hooks' lösen, andere erfordern eine +Reorganisation oder Neudefinition des gesamten Projekt und für die wenigen +verbleibenden Beeinträchtigungen kannst Du nur auf eine Lösung warten. Oder +noch besser, anpacken und mithelfen. + +=== SHA1 Schwäche === + +Mit der Zeit entdecken Kryptographen immer mehr Schwächen an SHA1. Schon +heute wäre es technisch machbar für finanzkräftige Unternehmen +Hash-Kollisionen zu finden. In ein paar Jahren hat vielleicht schon ein ganz +normaler Heim-PC ausreichend Rechenleistung um ein Git 'Reopsitory' +unbemerkt zu korrumpieren. + +Hoffentlich stellt Git auf eine bessere Hash Funktion um, bevor die +Forschung SHA1 komplett unnütz macht. + +=== Microsoft Windows === + +Git unter Microsoft Windows kann frustrierend sein: + +- http://cygwin.com/[Cygwin], eine Linux ähnliche Umgebung für Windows, +enthält http://cygwin.com/packages/git/[eine Windows Portierung von Git]. + +- http://code.google.com/p/msysgit/[Git unter MSys] ist eine Alternative, +die sehr wenig Laufzeitunterstützung erfordert, jedoch bedürfen einige +Kommandos noch einer Überarbeitung. + +=== Dateien ohne Bezug === + +Wenn Dein Projekt sehr groß ist und viele Dateien enthält, die in keinem +direkten Bezug stehen, trotzdem aber häufig geändert werden, kann Git +nachteiliger sein als andere Systeme, weil es keine einzelnen Dateien +überwacht. Git überwacht immer das ganze Projekt, was normalerweise schon +von Vorteil ist. + +Eine Lösung ist es, Dein Projekt in kleinere Stücke aufzuteilen, von denen +jedes nur die in Beziehung stehenden Dateien enthält. Benutze *git +submodule* wenn Du trotzdem alles in einem einzigen 'Repository' halten +willst. + +=== Wer macht was? === + +Einige Versionsverwaltungssysteme zwingen Dich explizit eine Datei auf +irgendeine Weise für die Bearbeitung zu kennzeichnen. Obwohl es extrem +lästig ist, wenn es die Kommunikation mit einem zentralen Server erfordert, +so hat es doch zwei Vorteile: + + 1. Unterschiede sind schnell gefunden, weil nur die markierten Dateien + untersucht werden müssen. + + 2. Jeder kann herausfinden wer sonst gerade an einer Datei arbeitet, indem + er beim zentralen Server anfragt, wer die Datei zum Bearbeiten markiert + hat. + +Mit geeigneten Skripten kannst Du das auch mit Git hinkriegen. Das erfordert +aber die Mitarbeit der Programmierer, denn sie müssen die Skripte auch +aufrufen, wenn sie eine Datei bearbeiten. + +=== Dateihistorie === + +Da Git die Änderungen über das gesamte Projekt aufzeichnet, erfordert die +Rekonstruktion des Verlaufs einer einzelnen Datei mehr Aufwand als in +Versionsverwaltungssystemen die einzelne Dateien überwachen. + +Die Nachteile sind üblicherweise gering und werden gern in Kauf genommen, da +andere Operationen dafür unglaublich effizient sind. Zum Beispiel ist `git +checkout` schneller als `cp -a` und projektweite Unterschiede sind besser zu +komprimieren als eine Sammlung von Änderungen auf Dateibasis. + +=== Der erster Klon === + +Einen Klon zu erstellen ist aufwendiger als in anderen +Versionsverwaltungssystemen, wenn ein längerer Verlauf existiert. + +Der initiale Aufwand lohnt sich aber auf längere Sicht, da die meisten +zukünftigen Operationen dann schnell und offline erfolgen. Trotzdem gibt es +Situationen, in denen es besser ist einen oberflächlichen Klon mit der +`--depth` Option zu erstellen. Das geht wesentlich schneller, aber der +resultierende Klon hat nur eingeschränkte Funktionalität. + +=== Unbeständige Projekte === + +Git wurde geschrieben um schnell zu sein, im Hinblick auf die Größe der +Änderungen. Leute machen kleine Änderungen von Version zu Version. Ein +einzeiliger Bugfix hier, eine neue Funktion da, verbesserte Kommentare und +so weiter. Aber wenn sich Deine Dateien zwischen aufeinanderfolgenden +Versionen gravierend ändern, dann wird zwangsläufig mit jedem 'Commit' Dein +Verlauf um die Größe des gesamten Projekts wachsen. + +Es gibt nichts, was irgendein Versionsverwaltungssystem dagegen machen kann, +aber der Standard Git Anwender leidet mehr darunter, weil normalerweise der +ganze Verlauf geklont wird. + +Die Ursachen für die großen Unterschiede sollten ermittelt +werden. Vielleicht können Dateiformate geändert werden. Kleinere +Bearbeitungen sollten auch nur minimale Änderungen an so wenig Dateien wie +möglich bewirken. + +Vielleicht ist eher eine Datenbank oder Sicherungs-/Archivierungslösung +gesucht, nicht ein Versionsverwaltungssystem. Ein Versionsverwaltungssystem +zum Beispiel ist eine ungeeignete Lösung um Fotos zu verwalten, die +periodisch von einer Webcam gemacht werden. + +Wenn die Dateien sich tatsächlich konstant verändern und sie wirklich +versioniert werden müssen, ist es eine Möglichkeit Git in zentralisierter +Form zu verwenden. Jeder kann oberflächliche Klone erstellen, die nur wenig +oder gar nichts vom Verlauf des Projekts enthalten. Natürlich sind dann +viele Git Funktionen nicht verfügbar und Änderungen müssen als 'Patches' +übermittelt werden. Das funktioniert wahrscheinlich ganz gut, wenn auch +unklar ist, warum jemand die Versionsgeschichte von wahnsinnig instabilen +Dateien braucht. + +Ein anderes Beispiel ist ein Projekt, das von Firmware abhängig ist, welche +die Form einer großen Binärdatei annimmt. Der Verlauf der Firmware +interessiert den Anwender nicht und Änderungen lassen sich schlecht +komprimieren, so blähen Firmwarerevisionen die Größe des 'Repository' +unnötig auf. + +In diesem Fall sollte der Quellcode der Firmware in einem Git 'Repository' +gehalten werden und die Binärdatei außerhalb des Projekts. Um das Leben zu +vereinfachen, könnte jemand ein Skript erstellen, das Git benutzt um den +Quellcode zu klonen und 'rsync' oder einen oberflächlichen Klon für die +Firmware. + +=== Globaler Zähler === + +Verschiedene Versionsverwaltungssysteme unterhalten einen Zähler, der mit +jedem 'Commit' erhöht wird. Git referenziert Änderungen anhand ihres +SHA1-Hash, was in vielen Fällen besser ist. + +Aber einige Leute sind diesen Zähler gewöhnt. Zum Glück ist es einfach, +Skripte zu schreiben, sodass mit jedem Update das zentrale Git 'Repository' +einen Zähler erhöht. Vielleicht in Form eines 'Tags', der mit dem SHA1-Hash +des letzten 'Commit' verknüpft ist. + +Jeder Klon könnte einen solchen Zähler bereitstellen, aber der wäre +vermutlich nutzlos, denn nur der Zähler des zentralen 'Repository' ist für +alle relevant. + +=== Leere Unterverzeichnisse === + +Leere Unterverzeichnisse können nicht überwacht werden. Erstelle eine +Dummy-Datei um dieses Problem zu umgehen. + +Die aktuelle Implementierung von Git, weniger sein Design, ist +verantwortlich für diesen Pferdefuß. Mit etwas Glück, wenn Git's Verbreitung +zunimmt und mehr Anwender nach dieser Funktion verlangen, wird sie +vielleicht implementiert. + +=== Initialer 'Commit' === + +Ein klischeehafter Computerwissenschaftler zählt von 0 statt von 1. Leider, +bezogen auf 'Commits', hält sich Git nicht an diese Konvention. Viele +Kommandos sind mürrisch vor dem intialen 'Commit'. Zusätzlich müssen +verschiedene Grenzfälle speziell behandelt werden, wie der 'Rebase' eines +'Branch' mit einem abweichenden initialen 'Commit'. + +Git würde davon provitieren, einen Null-'Commit' zu definieren: sofort nach +dem Erstellen eines 'Repository' wird der 'HEAD' auf eine Zeichenfolge von +20 Null-Bytes gesetzt. Dieser spezielle 'Commit' repräsentiert einen leeren +'Tree', ohne Eltern, irgendwann vielleicht der Vorfahr aller Git +'Repositories'. + +Würde dann zum Beispiel *git log* ausgeführt, würde der Anwender darüber +informiert, daß noch keine 'Commits' gemacht wurden, anstelle mit einem +fatalen Fehler zu beenden. Das gilt stellvertretenden für andere +Anweisungen. + +Jeder initiale 'Commit' ist dann stillschweigend ein Abkömmling dieses +Null-'Commits'. + +Leider gibt es noch ein paar Problemfälle. Wenn mehrere 'Branches' mit +unterschiedlichen initialen 'Commits' zusammengeführt und dann ein 'Rebase' +gemacht wird, ist ein manuelles Eingreifen erforderlich. + +=== Eigenarten der Anwendung === + +Für die 'Commits' A und B, hängt die Bedeutung der Ausdrücke "A..B" und +"A...B" davon ab, ob eine Anweisung zwei Endpunkte erwartet oder einen +Bereich. Siehe *git help diff* und *git help rev-parse*. diff --git a/pl/omegat-tmp/source/grandmaster.txt b/pl/omegat-tmp/source/grandmaster.txt new file mode 100644 index 0000000..40bc74f --- /dev/null +++ b/pl/omegat-tmp/source/grandmaster.txt @@ -0,0 +1,287 @@ +== Git für Fortgeschrittene == + +Mittlerweile solltest Du Dich in den *git help* Seiten zurechtfinden und das +meiste verstanden haben. Trotzdem kann es langwierig sein, den exakten +Befehl zur Lösung einer bestimmten Aufgabe herauszufinden. Vielleicht kann +ich Dir etwas Zeit sparen: Nachfolgend findest Du ein paar Rezepte, die ich +in der Vergangenheit gebraucht habe. + +=== Quellcode veröffentlichen === + +Bei meinen Projekten verwaltet Git genau die Dateien, die ich archivieren +und für andere Benutzer veröffentlichen will. Um ein tarball-Archiv des +Quellcodes zu erzeugen, verwende ich den Befehl: + + $ git archive --format=tar --prefix=proj-1.2.3/ HEAD + +=== 'Commite' Änderungen === + +Git mitzuteilen, welche Dateien man hinzugefügt, gelöscht und umbenannt hat, +ist für manche Projekte sehr mühsam. Stattdessen kann man folgendes +eingeben: + + $ git add . + $ git add -u + +Git wird sich die Dateien im aktuellen Verzeichnis ansehen und sich die +Details selbst erarbeiten. Anstelle des zweiten Befehl kann man auch `git +commit -a` ausführen, falls man an dieser Stelle ohnehin 'comitten' +möchte. Siehe *git help ignore* um zu sehen, wie man Dateien definiert, die +ignoriert werden sollen. + +Man kann das aber auch in einem einzigen Schritt ausführen mit: + + $ git ls-files -d -m -o -z | xargs -0 git update-index --add --remove + +Die *-z* und *-0* Optionen verhindern unerwünschte Nebeneffekte durch +Dateinamen mit ungewöhnlichen Zeichen. Da diese Anweisung aber auch zu +ignorierende Dateien hinzufügt, kann man noch die `-x` oder `-X` Option +hinzufügen. + +=== Mein 'Commit' ist zu groß! === + +Hast Du es zu lange versäumt zu 'comitten'? Hast Du so versessen +programmiert, daß Du darüber die Quellcodeverwaltung vergessen hast? Machst +Du eine Serie von unabhängigen Änderungen, weil es Dein Stil ist? + +Keine Sorge, gib ein: + + $ git add -p + +Für jede Änderung, die Du gemacht hast, zeigt Git Dir die Codepassagen, die +sich geändert haben und fragt ob sie Teil des nächsten 'Commit' sein +sollen. Antworte mit "y" für Ja oder "n" für Nein. Du hast auch noch andere +Optionen, z.B. den Aufschub der Entscheidung; drücke "?" um mehr zu +erfahren. + +Wenn Du zufrieden bist, gib + + $ git commit + +ein um exakt die ausgewählten Änderungen zu 'comitten' (die "inszenierten" +Änderungen). Achte darauf, nicht die Option *-a* einzusetzen, anderenfalls +wird Git alle Änderungen 'comitten'. + +Was ist, wenn Du viele Dateien an verschiedenen Orten bearbeitet hast? Jede +Datei einzeln nachzuprüfen ist frustrierend und ermüdend. In diesem Fall +verwende *git add -i*, dessen Bedienung ist nicht ganz einfach, dafür aber +sehr flexibel. Mit ein paar Tastendrücken kannst Du mehrere geänderte +Dateien für den 'Commit' hinzufügen ('stage') oder entfernen ('unstage') +oder Änderungen einzelner Dateien nachprüfen und hinzufügen. Alternativ +kannst Du *git commit \--interactive* verwenden, was dann automatisch die +ausgewählten Änderungen 'commited' nachdem Du fertig bist. + +=== Der Index: Git's Bereitstellungsraum === + +Bis jetzt haben wir Git's berühmten 'Index' gemieden, aber nun müssen wir +uns mit ihm auseinandersetzen um das bisherige zu erklären. Der Index ist +ein temporärer Bereitstellungsraum. Git tauscht selten Daten direkt zwischen +Deinem Projekt und seiner Versionsgeschichte aus. Vielmehr schreibt Git die +Daten zuerst in den Index, danach kopiert es die Daten aus dem Index an +ihren eigentlichen Bestimmungsort. + +Zum Beispiel ist *commit -a* eigentlich ein zweistufiger Prozess. Der erste +Schritt erstellt einen Schnappschuß des aktuellen Status jeder überwachten +Datei im Index. Der zweite Schritt speichert dauerhaft den Schnappschuß, der +sich nun im Index befindet. Ein 'Commit' ohne die *-a* Option führt nur den +zweiten Schritt aus und macht nur wirklich Sinn, wenn zuvor eine Anweisung +angewendet wurde, welche den Index verändert, wie zum Beispiel *git add*. + +Normalerweise können wir den Index ignorieren und so tun als würden wir +direkt aus der Versionsgeschichte lesen oder in sie schreiben. In diesem +Fall wollen wir aber mehr Kontrolle, also manipulieren wir den Index. Wir +erstellen einen Schnappschuß einiger, aber nicht aller unser Änderungen im +Index und speichern dann diesen sorgfältig zusammengestellten Schnappschuß +permanent. + +=== Verliere nicht Deinen KOPF === + +Der HEAD Bezeichner ist wie ein Cursor, der normalerweise auf den jüngsten +'Commit' zeigt und mit jedem neuen 'Commit' voranschreitet. Einige Git +Anweisungen lassen Dich ihn manipulieren. Zum Beispiel: + + $ git reset HEAD~3 + +bewegt den HEAD Bezeichner drei 'Commits' zurück. Dadurch agieren nun alle +Git Anweisungen als hätte es die drei letzten 'Commits' nicht gegeben, +während deine Dateien unverändert erhalten bleiben. Siehe auf der Git +Hilfeseite für einige Anwendungsbeispiele. + +Aber wie kannst Du zurück in die Zukunft? Die vergangenen 'Commits' wissen +nichts von der Zukunft. + +Wenn Du den SHA1 Schlüssel vom originalen HEAD hast, dann: + + $ git reset 1b6d + +Aber stell Dir vor, Du hast ihn niemals notiert? Keine Sorge: Für solche +Anweisungen sichert Git den original HEAD als Bezeichner mit dem Namen +ORIG_HEAD und Du kannst gesund und munter zurückkehren mit: + + $ git reset ORIG_HEAD + +=== KOPF-Jagd === + +Möglicherweise reicht ORIG_HEAD nicht aus. Vielleicht hast Du gerade +bemerkt, dass Du einen kapitalen Fehler gemacht hast und nun musst Du zu +einem uralten 'Commit' in einem länst vergessenen 'Branch' zurück. + +Standardmäßig behält Git einen 'Commit' für mindesten zwei Wochen, sogar +wenn Du Git anweist den 'Branch' zu zerstören, in dem er enthalten ist. Das +Problem ist, den entsprechenden SHA1-Wert zu finden. Du kannst Dir alle +SHA1-Werte in `.git/objects` vornehmen und ausprobieren ob Du den gesuchten +'Commit' findest. Aber es gibt einen viel einfacheren Weg. + +Git speichert jeden errechneten SHA1-Wert eines 'Commits' in +`.git/logs`. Das Unterverzeichnis `refs` enthält den Verlauf aller +Aktivitäten auf allen 'Branches', während `HEAD` alle SHA1-Werte enthält, +die jemals diese Bezeichnung hatten. Die letztere kann verwendet werden um +SHA1-Werte von 'Commits' zu finden, die sich in einem 'Branch' befanden, der +versehentlich gestutzt wurde. + +Die reflog Anweisung bietet eine benutzerfreundliche Schnittstelle zu diesen +Logdateien. Versuche + + $ git reflog + +Anstatt SHA1-Werte aus dem reflog zu kopieren und einzufügen, versuche: + + $ git checkout "@{10 minutes ago}" + +Oder rufe den fünftletzten 'Commit' ab, mit: + + $ git checkout "@{5}" + +Siehe in der ``Specifying Revisions'' Sektion von *git help rev-parse* für +mehr. + +Vielleicht möchtest Du eine längere Gnadenfrist für todgeweihte 'Commits' +konfigurieren. Zum Beispiel: + + $ git config gc.pruneexpire "30 days" + +bedeutet, ein gelöschter 'Commit' wird nur dann endgültig verloren sein, +nachdem 30 Tage vergangen sind und *git gc* ausgeführt wurde. + +Du magst vielleicht auch das automatische Ausführen von *git gc* abstellen: + + $ git config gc.auto 0 + +wodurch 'Commits' nur noch gelöscht werden, wenn Du *git gc* manuell +aufrufst. + +=== Auf Git bauen === + +In echter UNIX Sitte erlaubt es Git's Design, dass es auf einfache Weise als +Low-Level-Komponente von anderen Programmen benutzt werden kann, wie zum +Beispiel grafischen Benutzeroberflächen und Internetanwendungen, alternative +Kommandozeilenanwendungen, Patch-Werkzeugen, Import- und +Konvertierungswerkzeugen und so weiter. Sogar einige Git Anweisungen selbst +sind nur winzige Skripte, wie Zwerge auf den Schultern von Riesen. Mit ein +bisschen Handarbeit kannst Du Git anpassen, damit es Deinen Anforderungen +entspricht. + +Ein einfacher Trick ist es die in Git integrierte Aliasfunktion zu verwenden +um die am häufigsten benutzten Anweisungen zu verkürzen: + + $ git config --global alias.co checkout + $ git config --global --get-regexp alias # display current aliases + alias.co checkout + $ git co foo # same as 'git checkout foo' + +Etwas anderes ist der aktuelle 'Branch' im Prompt oder Fenstertitel. Die +Anweisung + + $ git symbolic-ref HEAD + +zeigt den Namen des aktuellen 'Branch'. In der Praxis möchtest Du aber das +"refs/heads/" entfernen und Fehler ignorieren: + + $ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + +Das +contrib+ Unterverzeichnis ist eine Fundgrube von Werkzeugen, die auf +Git aufbauen. Mit der Zeit können einige davon zu offiziellen Anweisungen +befördert werden. Auf Debian und Ubuntu, findet man dieses Verzeichnis unter ++/usr/share/doc/git-core/contrib+. + +Ein beliebter Vertreter ist +workdir/git-new-workdir+. Durch cleveres +verlinken erzeugt dieses Skript ein neues Arbeitsverzeichis, das seine +Versionsgeschichte mit dem original 'Repository' teilt: + + $ git-new-workdir ein/existierendes/repo neues/verzeichnis + +Das neue Verzeichnis und die Dateien darin kann man sich als 'Clone' +vorstellen, mit dem Unterschied, dass durch die gemeinschaftliche +Versionsgeschichte die beiden Versionen automatisch synchron bleiben. Eine +Synchronisierung mittels 'merge', 'push' oder 'pull' ist nicht notwendig. + +=== Gewagte Kunststücke === + +Heutzutage macht es Git dem Anwender schwer versehentlich Daten zu +zerstören. Aber, wenn man weiß was man tut, kann man die Schutzmaßnahmen der +häufigsten Anweisungen umgehen. + +*Checkout*: Nicht versionierte Änderungen lassen 'checkout' scheitern. Um trotzdem die Änderungen zu zerstören und einen vorhandenen 'Commit' abzurufen, benutzen wir die 'force' Option: + + $ git checkout -f HEAD^ + +Auf der anderen Seite, wenn Du einen speziellen Pfad für 'checkout' angibst, +gibt es keinen Sicherheitsüberprüfungen mehr. Der angegebene Pfad wird +stillschweigend überschrieben. Sei vorsichtig, wenn Du 'checkout' auf diese +Weise benutzt. + +*Reset*: Reset versagt auch, wenn unversionierte Änderungen vorliegen. Um es zu erzwingen, verwende: + + $ git reset --hard 1b6d + +*Branch*: 'Branches' zu löschen scheitert ebenfalls, wenn dadurch Änderungen verloren gehen. Um das Löschen zu erzwingen, gib ein: + + $ git branch -D dead_branch # instead of -d + +Ebenso scheitert der Versuch einen 'Branch' durch ein 'move' zu +überschreiben, wenn das einen Datenverlust zur Folge hat. Um das Verschieben +zu erzwingen, gib ein: + + $ git branch -M source target # instead of -m + +Anders als bei 'checkout' und 'reset' verschieben diese beiden Anweisungen +das Zerstören der Daten. Die Änderungen bleiben im .git Unterverzeichnis +gespeichert und können wieder hergestellt werden, wenn der entsprechende +SHA1-Wert aus `.git/logs` ermittelt wird (siehe "KOPF-Jagd" +oben). Standardmäßig bleiben die Daten mindestens zwei Wochen erhalten. + +*Clean*: Verschiedene git Anweisungen scheitern, weil sie Konflikte mit unversionierten Dateien vermuten. Wenn Du sicher bist, dass alle unversionierten Dateien und Verzeichnisse entbehrlich sind, dann lösche diese gnadenlos mit: + + $ git clean -f -d + +Beim nächsten Mal werden diese lästigen Anweisung gehorchen! + +=== Verhindere schlechte 'Commits' === + +Dumme Fehler verschmutzen meine 'Repositories'. Am schrecklichsten sind +fehlende Dateien wegen eines vergessenen *git add*. Kleinere Verfehlungen +sind Leerzeichen am Zeilenende und ungelöste 'merge'-Konflikte: obwohl sie +harmlos sind, wünschte ich, sie würden nie in der Öffentlichkeit erscheinen. + +Wenn ich doch nur eine Trottelversicherung abgeschlossen hätte, durch +Verwendung eines _hook_, der mich bei solchen Problemen alarmiert. + + $ cd .git/hooks + $ cp pre-commit.sample pre-commit # Older Git versions: chmod +x pre-commit + +Nun bricht Git einen 'Commit' ab, wenn es überflüssige Leerzeichen am +Zeilenende oder ungelöste 'merge'-Konflikte entdeckt. + +Für diese Anleitung hätte ich vielleicht am Anfang des *pre-commit* 'hook' +folgendes hinzugefügt, zum Schutz vor Zerstreutheit: + + if git ls-files -o | grep '\.txt$'; then + echo FAIL! Untracked .txt files. + exit 1 + fi + +Viele Git Operationen unterstützen 'hooks'; siehe *git help hooks*. Wir +haben den Beispiel 'hook' *post-update* aktiviert, weiter oben im Abschnitt +Git über HTTP. Dieser läuft immer, wenn der 'HEAD' sich bewegt. Das Beispiel +'post-update' Skript aktualisiert Dateien, welche Git für die Kommunikation +über 'Git-agnostic transports' wie z.B. HTTP benötigt. diff --git a/pl/omegat-tmp/source/history.txt b/pl/omegat-tmp/source/history.txt new file mode 100644 index 0000000..6b9c8a6 --- /dev/null +++ b/pl/omegat-tmp/source/history.txt @@ -0,0 +1,275 @@ +== Geschichtsstunde == + +Eine Folge von Git's verteilter Natur ist, dass die Chronik einfach +verändert werden kann. Aber, wenn du an der Vergangenheit manipulierst, sei +vorsichtig: verändere nur den Teil der Chronik, den du ganz alleine hast. So +wie Nationen ewig diskutieren, wer welche Greueltaten vollbracht hat, wirst +du beim Abgleichen in Schwierigkeiten geraten, falls jemand einen 'Clone' +mit abweichender Chronik hat und die Zweige sich austauschen sollen. + +Einige Entwickler setzen sich nachhaltig für die Unantastbarkeit der Chronik +ein, mit allen Fehlern, Nachteilen und Mängeln. Andere denken, daß Zweige +vorzeigbar gemacht werden sollten, bevor sie auf die Öffentlichkeit +losgelassen werden. Git versteht beide Gesichtspunkte. Wie 'Clonen', +'Branchen' und 'Mergen' ist das Umschreiben der Chronik lediglich eine +weitere Stärke, die Git dir bietet. Es liegt an dir diese weise zu nutzen. + +=== Ich nehme alles zurück === + +Hast du gerade 'commitet', aber du hättest gerne eine andere Beschreibung +eingegeben? Dann gib ein: + + $ git commit --amend + +um die letzte Beschreibung zu ändern. Du merkst, dass du vergessen hast eine +Datei hinzuzufügen? Führe *git add* aus um sie hinzuzufügen und dann die +vorhergehende Anweisung. + +Du willst noch ein paar Änderungen zu deinem letzten 'Commit' hinzufügen? +Dann mache diese Änderungen und gib ein: + + $ git commit --amend -a + +=== ... und noch viel mehr === + +Nehmen wir jetzt an, das vorherige Problem ist zehnmal schlimmer. Nach einer +längeren Sitzung hast du einen Haufen 'Commits' gemacht. Aber du bist mit +der Art der Organisation nicht glücklich und einige 'Commits' könnten etwas +umformuliert werden. Dann gib ein: + + $ git rebase -i HEAD~10 + +und die letzten zehn 'Commits' erscheinen in deinem bevorzugten +$EDITOR. Auszug aus einem Beispiel: + + pick 5c6eb73 Link repo.or.cz hinzugefügt + pick a311a64 Analogien in "Arbeite wie du willst" umorganisiert + pick 100834f Push-Ziel zum Makefile hinzugefügt + +Dann: + +- Entferne 'Commits' durch das Löschen von Zeilen. +- Organisiere 'Commits' durch verschieben von Zeilen. +- Ersetze `pick` mit: + * `edit` um einen 'Commit' für 'amends' zu markieren. + * `reword` um die Log-Beschreibung zu ändern. + * `squash` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge'). + * `fixup` um einen 'Commit' mit dem vorhergehenden zu vereinen ('merge') und die Log-Beschreibung zu verwerfen. + +Speichere und Beende. Wenn du einen 'Commit' mit 'edit' markiert hast, gib +ein: + + $ git commit --amend + +Ansonsten: + + $ git rebase --continue + +Also 'commite' früh und oft: du kannst später mit 'rebase' aufräumen. + +=== Lokale Änderungen zum Schluß === + +Du arbeitest an einem aktiven Projekt. Über die Zeit haben sich einige +lokale 'Commits' angesammelt und dann synchronisierst du mit einem 'Merge' +mit dem offiziellen Zweig. Dieser Zyklus wiederholt sich ein paar Mal bevor +du zum 'Pushen' in den zentralen Zweig bereit bist. + +Aber nun ist die Chronik in deinem lokalen Git-'Clone' ein chaotisches +Durcheinander deiner Änderungen und den Änderungen vom offiziellen Zweig. Du +willst alle Deine Änderungen lieber in einem fortlaufenden Abschnitt und +hinter den offiziellen Änderungen sehen. + +Das ist eine Aufgabe für *git rebase*, wie oben beschrieben. In vielen +Fällen kannst du den *--onto* Schalter benutzen um Interaktion zu vermeiden. + +Siehe auch *git help rebase* für ausführliche Beispiele dieser erstaunlichen +Anweisung. Du kannst auch 'Commits' aufteilen. Du kannst sogar 'Branches' in +einem 'Repository' umorganisieren. + +=== Chronik umschreiben === + +Gelegentlich brauchst du Versionsverwaltung vergleichbar dem Wegretuschieren +von Personen aus einem offiziellen Foto, um diese in stalinistischer Art aus +der Geschichte zu löschen. Stell dir zum Beispiel vor, du willst ein Projekt +veröffentlichen, aber es enthält eine Datei, die aus irgendwelchen Gründen +privat bleiben muss. Vielleicht habe ich meine Kreditkartennummer in einer +Textdatei notiert und diese versehentlich dem Projekt hinzugefügt. Die Datei +zu löschen ist zwecklos, da über ältere 'Commits' auf sie zugegriffen werden +könnte. Wir müssen die Datei aus allen 'Commits' entfernen: + + $ git filter-branch --tree-filter 'rm sehr/geheime/Datei' HEAD + +Siehe *git help filter-branch*, wo dieses Beispiel erklärt und eine +schnellere Methode vorstellt wird. Allgemein, *filter-branch* lässt dich +große Bereiche der Chronik mit einer einzigen Anweisung verändern. + +Danach beschreibt der Ordner +.git/refs/original+ den Zustand der Lage vor +der Operation. Prüfe, ob die 'filter-branch' Anweisung getan hat was du +wolltest, dann lösche dieses Verzeichnis bevor du weitere 'filter-branch' +Operationen durchführst. + +Zuletzt, ersetze alle 'Clones' deines Projekts mit deiner überarbeiteten +Version, falls du später mit ihnen interagieren möchtest. + +=== Geschichte machen === + +[[makinghistory]] Du möchtest ein Projekt zu Git umziehen? Wenn es mit einem +der bekannteren Systeme verwaltet wird, besteht die Möglichkeit, dass schon +jemand ein Skript geschrieben hat, das die gesamte Chronik für Git +exportiert. + +Anderenfalls, sieh dir *git fast-import* an, das Text in einem speziellen +Format einliest um eine Git Chronik von Anfang an zu +erstellen. Normalerweise wird ein Skript, das diese Anweisung benutzt, +hastig zusammengeschustert und einmalig ausgeführt um das Projekt in einem +einzigen Lauf zu migrieren. + +Erstelle zum Beispiel aus folgendem Listing eine temporäre Datei, z.B. `/tmp/history`: +---------------------------------- +commit refs/heads/master committer Alice Thu, 01 Jan +1970 00:00:00 +0000 data < + +int main() { + printf("Hallo, Welt!\n"); + return 0; +} +EOT + + +commit refs/heads/master committer Bob Tue, 14 Mar 2000 +01:59:26 -0800 data < + +int main() { + write(1, "Hallo, Welt!\n", 14); + return 0; +} +EOT + +---------------------------------- + +Dann, erstelle ein Git 'Repository' aus dieser temporären Datei, durch +Eingabe von: + + $ mkdir project; cd project; git init + $ git fast-import --date-format=rfc2822 < /tmp/history + +Die aktuellste Version des Projekts kannst du abrufen ('checkout') mit: + + $ git checkout master . + +Die Anweisung *git fast-export* konvertiert jedes 'Repository' in das *git +fast-import* Format, diese Ausgabe kannst du studieren um Exporteure zu +schreiben und außerdem um 'Repositories' in Klartext zu übertragen. +untersuchen wes you can study for writing exporters, and also to transport +repositories in a human-readable format. Wirklich, diese Anweisung kann +Klartext-'Repositories' über reine Textkanäle übertragen. + +=== Wo ging alles schief? === + +Du hast gerade ein Funktion in deiner Anwendung entdeckt, die nicht mehr +funktioniert und du weißt sicher, dass sie vor ein paar Monaten noch +ging. Argh! Wo kommt dieser Fehler her? Hättest du nur die Funktion während +der Entwicklung getestet. + +Dafür ist es nun zu spät. Wie auch immer, vorausgesetzt du hast oft +'comittet', kann Git dir sagen, wo das Problem liegt: + + $ git bisect start + $ git bisect bad HEAD + $ git bisect good 1b6d + +Git ruft eine Stand ab, der genau dazwischen liegt. Teste die Funktion und +wenn sich immer noch nicht funktioniert: + + $ git bisect bad + +Wenn nicht, ersetzte "bad" mit "good". Git versetzt dich wieder auf einen +Stand genau zwischen den bekannten Versionen "good" und "bad" und reduziert +so die Möglichkeiten. Nach ein paar Durchläufen wird dich diese binäre Suche +zu dem 'Commit' führen, der die Probleme verursacht. Wenn du deine +Ermittlungen abgeschlossen hast, kehre zum Originalstand zurück mit: + + $ git bisect reset + +Anstatt jede Änderung per Hand zu untersuchen, automatisiere die Suche durch +Ausführen von: + + $ git bisect run mein_skript + +Git benutzt den Rückgabewert der übergebenen Anweisung, normalerweise ein +Skript für einmalige Ausführung, um zu entscheiden, ob eine Änderung gut +('good') oder schlecht ('bad') ist: Das Skript sollte 0 für 'good' +zurückgeben, 125 wenn die Änderung übersprungen werden soll und irgendetwas +zwischen 1 und 127 für 'bad'. Ein negativer Rückgabewert beendet die +'bisect'-Operation sofort. + +Du kannst noch viel mehr machen: die Hilfe erklärt, wie man +'bisect'-Operationen visualisiert, das 'bisect'-Log untersucht oder +wiedergibt und sicher unschuldige Änderungen ausschließt um die Suche zu +beschleunigen. + +=== Wer ist verantwortlich? === + +Wie viele andere Versionsverwaltungssysteme hat Git eine 'blame' Anweisung: + + $ git blame bug.c + +das jede Zeile in der angegebenen Datei kommentiert um anzuzeigen, wer sie +zuletzt geändert hat und wann. Im Gegensatz zu vielen anderen +Versionsverwaltungssystemen funktioniert diese Operation offline, es wird +nur von der lokalen Festplatte gelesen. + +=== Persönliche Erfahrungen === + +In einem zentralisierten Versionsverwaltungssystem ist das Bearbeiten der +Chronik eine schwierige Angelegenheit und den Administratoren +vorbehalten. 'Clonen', 'Branchen' und 'Mergen' sind unmöglich ohne +Netzwerkverbindung. Ebenso grundlegende Funktionen wie das Durchsuchen der +Chronik oder das 'comitten' einer Änderung. In manchen Systemen benötigt der +Anwender schon eine Netzwerkverbindung nur um seine eigenen Änderungen zu +sehen oder um eine Datei zum Bearbeiten zu öffnen. + +Zentralisierte Systeme schließen es aus offline zu arbeiten und benötigen +teurere Netzwerkinfrastruktur, vor allem, wenn die Zahl der Entwickler +steigt. Am wichtigsten ist, dass alle Operationen bis zu einem gewissen Grad +langsamer sind, in der Regel bis zu dem Punkt, wo Anwender erweiterte +Anweisungen scheuen, bis sie absolut notwendig sind. In extremen Fällen +trifft das auch auf die grundlegenden Anweisungen zu. Wenn Anwender langsame +Anweisungen ausführen müssen, sinkt die Produktivität, da der Arbeitsfluss +unterbrochen wird. + +Ich habe diese Phänomen aus erster Hand erfahren. Git war das erste +Versionsverwaltungssystem, das ich benutzt habe. Ich bin schnell in die +Anwendung hineingewachsen und betrachtete viele Funktionen als +selbstverständlich. Ich habe einfach vorausgesetzt, dass andere Systeme +ähnlich sind: die Auswahl eines Versionsverwaltungssystems sollte nicht +anders sein als die Auswahl eines Texteditors oder Internetbrowser. + +Ich war geschockt, als ich später gezwungen war ein zentralisiertes System +zu benutzen. Eine unzuverlässige Internetverbindung stört mit Git nicht +sehr, aber sie macht die Entwicklung unerträglich, wenn sie so zuverlässig +wie ein lokale Festplatte sein sollte. Zusätzlich habe ich mich dabei +ertappt, bestimmte Anweisungen zu vermeiden, um die damit verbundenen +Wartezeiten zu vermeiden und das hat mich letztendlich davon abgehalten +meinem gewohnten Arbeitsablauf zu folgen. + +Wenn ich eine langsame Anweisung auszuführen hatte, wurde durch die +Unterbrechung meiner Gedankengänge dem Arbeitsfluss ein unverhältnismäßiger +Schaden zugefügt. Während dem Warten auf das Ende der Serverkommunikation +tat ich etwas anderes um die Wartezeit zu überbrücken, zum Beispiel E-Mails +lesen oder Dokumentation schreiben. Wenn ich zur ursprünglichen Arbeit +zurückkehrte, war die Operation längst beendet und ich vergeudete noch mehr +Zeit beim Versuch mich zu erinnern was ich getan habe. Menschen sind nicht +gut im Kontextwechsel. + +Da war auch ein interessanter +http://de.wikipedia.org/wiki/Tragik_der_Allmende[Tragik-der-Allmende] +Effekt: Netzwerküberlastungen erahnend, verbrauchten einzelne Individuen für +diverse Operationen mehr Netzwerkbandbreite als erforderlich, um zukünftige +Engpässe zu vermeiden. Die Summe der Bemühungen verschlimmerte die +Überlastungen, was einzelne wiederum ermutigte noch mehr Bandbreite zu +verbrauchen um noch längere Wartezeiten zu verhindern. diff --git a/pl/omegat-tmp/source/intro.txt b/pl/omegat-tmp/source/intro.txt new file mode 100644 index 0000000..d21edf9 --- /dev/null +++ b/pl/omegat-tmp/source/intro.txt @@ -0,0 +1,146 @@ +== Einleitung == + +Ich benutze eine Analogie um in die Versionsverwaltung einzuführen. Für eine +vernünftigere Erklärung siehe +http://de.wikipedia.org/wiki/Versionsverwaltung[den Wikipedia Artikel zur +Versionsverwaltung]. + +=== Arbeit ist Spiel === + +Ich spiele Computerspiele schon fast mein ganzes Leben. Im Gegensatz dazu +habe ich erst als Erwachsener damit begonnen Versionsverwaltungssysteme zu +benutzen. Ich vermute, dass ich damit nicht alleine bin und der Vergleich +hilft vielleicht dabei die Konzepte einfacher zu erklären und zu verstehen. + +Stelle dir das Bearbeiten deines Codes oder deiner Dokumente wie ein +Computerspiel vor. Wenn du gut voran gekommen bist, willst du das Erreichte +sichern. Um das zu tun, klickst du auf auf Speichern in deinem vertrauten +Editor. + +Aber, das überschreibt die vorherige Version. Das ist wie bei den Spielen +der alten Schule, die nur Speicherplatz für eine Sicherung hatten: +sicherlich konntest du speichern, aber du konntest nie zu einem älteren +Stand zurück. Das war eine Schande, denn vielleicht war deine vorherige +Sicherung an einer außergewöhnlich spannenden Stelle des Spiels, zu der du +später gerne noch einmal zurückkehren möchtest. Oder noch schlimmer, deine +aktuelle Sicherung ist in einem nicht lösbaren Stand, dann musst du von ganz +vorne beginnen. + +=== Versionsverwaltung === + +Beim Editieren kannst du deine Datei durch 'Speichern unter ...' mit einem +neuen Namen abspeichern oder du kopierst sie vor dem Speichern irgendwo hin +um die alte Version zu erhalten. Außerdem kannst du sie komprimieren um +Speicherplatz zu sparen. Das ist eine primitive und mühselige Form der +Versionsverwaltung. Computerspiele machten das lange Zeit so, viele von +ihnen hatten automatisch erstellte Sicherungspunkte mit Zeitstempel. + +Jetzt lass uns das Problem etwas komplizierter machen. Sagen wir, du hast +einen Haufen Dateien, die zusammen gehören, z.B. Quellcodes für ein Projekt +oder Dateien einer Website. Wenn du nun eine alte Version erhalten willst, +musst du den ganzen Ordner archivieren. Viele Versionen auf diese Art zu +archivieren ist mühselig und kann sehr schnell teuer werden. + +Bei einigen Computerspielen bestand ein gesicherter Stand wirklich aus einem +Ordner voller Dateien. Diese Spiele versteckten die Details vor dem Spieler +und präsentierten eine bequeme Oberfläche um verschiedene Versionen des +Ordners zu verwalten. + +Versionsverwaltungen sind nicht anders. Sie alle haben bequeme +Schnittstellen um Ordner voller Dateien zu verwalten. Du kannst den Zustand +des Ordners sichern so oft du willst und du kannst später jeden +Sicherungspunkt wieder herstellen. Im Gegensatz zu den meisten +Computerspielen sind sie aber in der Regel dafür ausgelegt sparsam mit dem +Speicherplatz umzugehen. Normalerweise ändern sich immer nur wenige Dateien +zwischen zwei Versionen und die Änderungen selbst sind oft nicht groß. Die +Platzersparnis beruht auf dem Speichern der Unterschiede an Stelle einer +Kopie der ganzen Datei. + +=== Verteilte Kontrolle === + +Nun stell dir ein ganz kompliziertes Computerspiel vor. So schwierig zu +lösen, dass viele erfahrene Spieler auf der ganzen Welt beschließen sich +zusammen zu tun und ihre gespeicherten Spielstände auszutauschen um das +Spiel zu beenden. 'Speedruns' sind Beispiele aus dem echten Leben: Spieler, +die sich in unterschiedlichen Spielebenen des selben Spiels spezialisiert +haben, arbeiten zusammen um erstaunliche Ergebnisse zu erzielen. + +Wie würdest du ein System erstellen, bei dem jeder auf einfache Weise die +Sicherungen der anderen bekommt? Und eigene Sicherungen bereitstellt? + +Früher nutzte jedes Projekt eine zentralisierte Versionsverwaltung. Irgendwo +speicherte ein Server alle gespeicherten Spiele, sonst niemand. Jeder +Spieler hatte nur ein paar gespeicherte Spiele auf seinem Rechner. Wenn ein +Spieler einen Fortschritt machen wollte, musste er den aktuellsten Stand vom +Hauptserver herunterladen, eine Weile spielen, sichern und den Stand dann +wieder auf den Server laden, damit irgendjemand ihn nutzen kann. + +Was, wenn ein Spieler aus irgendeinem Grund einen alten Spielstand will? +Vielleicht ist der aktuell gesicherte Spielstand nicht mehr lösbar, weil +jemand in der dritten Ebene vergessen hat ein Objekt aufzunehmen und sie +versuchen den letzten Spielstand zu finden, ab dem das Spiel wieder lösbar +ist. Oder sie wollen zwei Spielstände vergleichen, um festzustellen wie viel +ein Spieler geleistet hat. + +Es gibt viele Gründe warum man einen älteren Stand sehen will, aber das +Ergebnis ist das selbe. Man muss vom Hauptserver das alte gespeicherte Spiel +anfordern. Je mehr gespeicherte Spiele benötigt werden, desto mehr +Kommunikation ist erforderlich. + +Die neue Generation der Versionsverwaltungssysteme, zu denen Git gehört, +werden verteilte Systeme genannt und können als eine Verallgemeinerung der +zentralisierten Systeme verstanden werden. Wenn Spieler vom Hauptserver +herunterladen, erhalten sie jedes gespeichertes Spiel, nicht nur das zuletzt +gespeicherte. Es ist als ob der Hauptserver gespiegelt wird. + +Dieses erste 'Cloning' kann teuer sein, vor allem, wenn eine lange +Geschichte existiert, aber auf Dauer wird es sich lohnen. Ein unmittelbarer +Vorteil ist, wenn aus irgendeinem Grund ein älterer Stand benötigt wird, ist +keine Kommunikation mit dem Hauptserver notwendig. + +=== Ein dummer Aberglaube === + +Ein weit verbreitetes Missverständnis ist, dass verteilte System ungeeignet +sind für Projekte, die ein offizielles zentrales 'Repository' +benötigen. Nichts könnte weiter von der Wahrheit entfernt sein. Jemanden zu +fotografieren stiehlt nicht dessen Seele. Genauso wenig setzt das 'Clonen' +des zentralen 'Repository' dessen Bedeutung herab. + +Eine gute erste Annäherung ist, dass alles was eine zentralisierte +Versionsverwaltung kann, ein gut durchdachtes verteiltes System besser +kann. Netzwerkressourcen sind einfach teurer als lokale Ressourcen. Auch +wenn wir später Nachteile beim verteilten Ansatz sehen werden, ist man mit +dieser Faustregel weniger anfällig für falsche Vergleiche. + +Ein kleines Projekt mag nur einen Bruchteil der Möglichkeiten benötigen, die +so ein System bietet. Aber deshalb ein einfacheres, schlecht erweiterbares +System zu benutzen, ist wie römische Ziffern zum Rechnen mit kleinen Zahlen +zu verwenden. + +Außerdem könnte dein Projekt weit über die ursprünglichen Erwartungen +hinauswachsen. Git von Anfang an zu benutzen, ist wie ein Schweizer +Taschenmesser mit sich zu tragen, auch wenn damit meistens nur Flaschen +geöffnet werden. Eines Tages brauchst du vielleicht dringend einen +Schraubendreher, dann bist du froh mehr als nur einen einfachen +Flaschenöffner bei dir zu haben. + +=== 'Merge' Konflikte === + +Für diesen Punkt ist unsere Computerspielanalogie ungeeignet. Stattdessen +stellen wir uns wieder vor, wir editieren ein Dokument. + +Stell dir vor, Alice fügt eine Zeile am Dateianfang hinzu und Bob eine am +Dateiende. Beide laden ihre Änderungen hoch. Die meisten Systeme wählen +automatisch eine vernünftige Vorgehensweise: akzeptiere beide Änderungen und +füge sie zusammen, damit fließen beide Änderungen in das Dokument mit ein. + +Nun stell dir vor beide, Alice und Bob, machen Änderungen in der selben +Zeile. Dann ist es unmöglich ohne menschlichen Eingriff fortzufahren. Die +zweite Person, welche die Datei hoch lädt, wird über einen _'Merge' +Konflikt_ informiert und muss entscheiden, welche Änderung übernommen wird +oder die ganze Zeile überarbeiten. + +Es können noch weitaus kompliziertere Situationen +entstehen. Versionsverwaltungssysteme behandeln die einfacheren Fälle selbst +und überlassen die schwierigen uns Menschen. Üblicherweise ist deren +Verhalten einstellbar. diff --git a/pl/omegat-tmp/source/multiplayer.txt b/pl/omegat-tmp/source/multiplayer.txt new file mode 100644 index 0000000..7d53b77 --- /dev/null +++ b/pl/omegat-tmp/source/multiplayer.txt @@ -0,0 +1,265 @@ +== Multiplayer Git == + +Anfangs benutzte ich Git bei einem privaten Projekt, bei dem ich der einzige +Entwickler war. Unter den Befehlen im Zusammenhang mit Git's verteilter Art, +brauchte ich nur *pull* und *clone*, damit konnte ich das selbe Projekt an +unterschiedlichen Orten halten. + +Später wollte ich meinen Code mit Git veröffentlichen und Änderungen von +Mitstreitern einbinden. Ich musste lernen, wie man Projekte verwaltet, an +denen mehrere Entwickler aus aller Welt beteiligt waren. Glücklicherweise +ist das Git's Stärke und wohl auch seine Daseinsberechtigung. + +=== Wer bin ich? === + +Jeder 'Commit' enthält Name und eMail-Adresse des Autors, welche mit *git +log* angezeigt werden. Standardmäßig nutzt Git Systemeinstellungen um diese +Felder auszufüllen. Um diese Angaben explizit zu setzen, gib ein: + + $ git config --global user.name "Max Mustermann" + $ git config --global user.email maxmustermann@beispiel.de + +Lasse den -global Schalter weg um diese Einstellungen für das aktuelle +'Repository' zu setzen. + +=== Git über SSH, HTTP === + +Angenommen, Du hast einen SSH-Zugang zu einem Webserver aber Git ist nicht +installiert. Wenn auch nicht so effizient wie mit dem systemeigenen +Protokoll, kann Git über HTTP kommunizieren. + +Lade Git herunter, compiliere und installiere es unter Deinem Benutzerkonto +und erstellen ein 'Repository' in Deinem Webverzeichnis: + + $ GIT_DIR=proj.git git init + $ cd proj.git + $ git --bare update-server-info + $ cp hooks/post-update.sample hooks/post-update + +Bei älteren Git Versionen funktioniert der 'copy'-Befehl nicht, stattdessen +gib ein: + + $ chmod a+x hooks/post-update + +Nun kannst Du Deine letzten Änderungen über SSH von jedem 'Clone' aus +veröffentlichen. + + $ git push web.server:/pfad/zu/proj.git master + +und jedermann kann Dein Projekt abrufen mit: + + $ git clone http://web.server/proj.git + +=== Git über alles === + +Willst Du 'Repositories' ohne Server synchronisieren oder gar ohne +Netzwerkverbindung? Musst Du während eines Notfalls improvisieren? Wir haben +gesehen, dass man mit <>. Wir können solche Dateien hin und her schicken um Git +'Repositories' über jedes beliebige Medium zu transportieren, aber ein +effizienteres Werkzeug ist *git bundle*. + +Der Absender erstellt ein 'Bundle': + + $ git bundle create einedatei HEAD + +und transportiert das 'Bundle' +einedatei+ irgendwie zum anderen +Beteiligten: per eMail, USB-Stick, einen *xxd* Hexdump und einen OCR +Scanner, Morsecode über Telefon, Rauchzeichen usw. Der Empfänger holt sich +die 'Commits' aus dem 'Bundle' durch Eingabe von: + + $ git pull einedatei + +Der Empfänger kann das sogar mit einem leeren 'Repository' tun. Trotz seiner +Größe, +einedatei+ enthält das komplette original Git 'Repository'. + +In größeren Projekten, vermeidest Du Datenmüll indem Du nur Änderungen +'bundlest', die in den anderen 'Repositories' fehlen. Zum Beispiel, nehmen +wir an, der 'Commit' ``1b6d...'' ist der aktuellste, den beide Parteien +haben: + + $ git bundle create einedatei HEAD ^1b6d + +Macht man das regelmäßig, kann man leicht vergessen, welcher 'Commit' +zuletzt gesendet wurde. Die Hilfeseiten schlagen vor 'Tags' zu benutzen um +dieses Problem zu lösen. Das heißt, nachdem Du ein 'Bundle' gesendet hast, +gib ein: + + $ git tag -f letztesbundle HEAD + +und erstelle neue Aktualisierungsbundles mit: + + $ git bundle create neuesbundle HEAD ^letztesbundle + +=== Patches: Das globale Zahlungsmittel === + +'Patches' sind die Klartextdarstellung Deiner Änderungen, die von Computern +und Menschen gleichermaßen einfach verstanden werden. Dies verleiht ihnen +eine universelle Anziehungskraft. Du kannst einen 'Patch' Entwicklern +schicken, ganz egal, was für ein Versionsverwaltungssystem sie +benutzen. Solange Deine Mitstreiter ihre eMails lesen können, können sie +auch Deine Änderungen sehen. Auch auf Deiner Seite ist alles was Du brauchst +ein eMail-Konto: es gibt keine Notwendigkeit ein Online Git 'Repository' +aufzusetzen. + +Erinnere Dich an das erste Kapitel: + + $ git diff 1b6d > mein.patch + +gibt einen 'Patch' aus, der zur Diskussion einfach in eine eMail eingefügt +werden kann. In einem Git 'Repository' gib ein: + + $ git apply < mein.patch + +um den 'Patch' anzuwenden. + +In einer offizielleren Umgebung, wenn Autorennamen und eventuell Signaturen +aufgezeichnet werden sollen, erstelle die entsprechenden 'Patches' nach +einem bestimmten Punkt durch Eingabe von: + + $ git format-patch 1b6d + +Die resultierenden Dateien können an *git-send-email* übergeben werden oder +von Hand verschickt werden. Du kannst auch eine Gruppe von 'Commits' +angeben: + + $ git format-patch 1b6d..HEAD^^ + +Auf der Empfängerseite speichere die eMail in eine Datei, dann gib ein: + + $ git am < email.txt + +Das wendet den eingegangenen 'Patch' an und erzeugt einen 'Commit', +inklusive der Informationen wie z.B. den Autor. + +Mit einer Webmail Anwendung musst Du eventuell ein Button anklicken um die +eMail in ihrem rohen Originalformat anzuzeigen, bevor Du den 'Patch' in eine +Datei sicherst. + +Es gibt geringfügige Unterschiede bei mbox-basierten eMail Anwendungen, aber +wenn Du eine davon benutzt, gehörst Du vermutlich zu der Gruppe Personen, +die damit einfach umgehen können ohne Anleitungen zu lesen.! + +=== Entschuldigung, wir sind umgezogen. === + +Nach dem 'Clonen' eines 'Repositories', wird *git push* oder *git pull* +automatisch auf die original URL zugreifen. Wie macht Git das? Das Geheimnis +liegt in der Konfiguration, die beim 'Clonen' erzeugt wurde. Lasst uns einen +Blick riskieren: + + $ git config --list + +Die +remote.origin.url+ Option kontrolliert die Quell-URL; ``origin'' ist +der Spitzname, der dem Quell-'Repository' gegeben wurde. Wie mit der +``master'' 'Branch' Konvention können wir diesen Spitznamen ändern oder +löschen, aber es gibt für gewöhnlich keinen Grund dies zu tun. + +Wenn das original 'Repository' verschoben wird, können wir die URL +aktualisieren mit: + + $ git config remote.origin.url git://neue.url/proj.git + +Die +branch.master.merge+ Option definiert den Standard-Remote-'Branch' bei +einem *git pull*. Während dem ursprünglichen 'clonen', wird sie auf den +aktuellen 'Branch' des Quell-'Repository' gesetzt, so dass selbst dann, wenn +der 'HEAD' des Quell-'Repository' inzwischen auf einen anderen 'Branch' +gewechselt hat, ein späterer 'pull' wird treu dem original 'Branch' folgen. + +Diese Option gilt nur für das 'Repository', von dem als erstes 'gecloned' +wurde, was in der Option +branch.master.remote+ hinterlegt ist. Bei einem +'pull' aus anderen 'Repositories' müssen wir explizit angeben, welchen +'Branch' wir wollen: + + $ git pull git://beispiel.com/anderes.git master + +Das obige erklärt, warum einige von unseren früheren 'push' und 'pull' +Beispielen keine Argumente hatten. + +=== Entfernte 'Branches' === + +Wenn Du ein 'Repository' 'clonst', 'clonst' Du auch alle seine +'Branches'. Das hast Du vielleicht noch nicht bemerkt, denn Git versteckt +diese: Du musst speziell danach fragen. Das verhindert, dass 'Branches' vom +entfernten 'Repository' Deine lokalen 'Branches' stören und es macht Git +einfacher für Anfänger. + +Zeige die entfernten 'Branches' an mit: + + $ git branch -r + +Du solltes etwas sehen wie: + + origin/HEAD + origin/master + origin/experimentell + +Diese Liste zeigt die 'Branches' und den HEAD des entfernten 'Repository', +welche auch in regulären Git Anweisungen verwendet werden können. Zum +Beispiel, angenommen Du hast viele 'Commits' gemacht und möchtest einen +Vergleich zur letzten abgeholten Version machen. Du kannst die Logs nach dem +entsprechenden SHA1 Hashwert durchsuchen, aber es ist viel einfacher +folgendes einzugeben: + + $ git diff origin/HEAD + +Oder Du kannst schauen, was auf dem 'Branch' ``experimentell'' los war: + + $ git log origin/experimentell + +=== Mehrere 'Remotes' === + +Angenommen, zwei andere Entwickler arbeiten an Deinem Projekt und wir wollen +beide im Auge behalten. Wir können mehr als ein 'Repository' gleichzeitig +beobachten mit: + + $ git remote add other git://example.com/some_repo.git + $ git pull other some_branch + +Nun haben wir einen 'Branch' vom zweiten 'Repository' eingebunden und wir +haben einfachen Zugriff auf alle 'Branches' von allen 'Repositories': + + $ git diff origin/experimentell^ other/some_branch~5 + +Aber was, wenn wir nur deren Änderungen vergleichen wollen, ohne unsere +eigene Arbeit zu beeinflussen? Mit anderen Worten, wir wollen ihre +'Branches' untersuchen ohne dass deren Änderungen in unser +Arbeitsverzeichnis einfließen. Anstatt 'pull' benutzt Du dann: + + $ git fetch # Fetch vom origin, der Standard. + $ git fetch other # Fetch vom zweiten Programmierer. + +Dies holt lediglich die Chroniken. Obwohl das Arbeitsverzeichnis unverändert +bleibt, können wir nun jeden 'Branch' aus jedem 'Repository' in einer Git +Anweisung referenzieren, da wir eine lokale Kopie besitzen. + +Erinnere Dich, dass ein 'Pull' hinter den Kulissen einfach ein *fetch* +gefolgt von einem *merge* ist. Normalerweise machen wir einen *pull* weil +wir die letzten 'Commits' abrufen und einbinden wollen. Die beschriebene +Situation ist eine erwähnenswerte Ausnahme. + +Siehe *git help remote* um zu sehen wie man Remote-'Repositories' entfernt, +bestimmte 'Branches' ignoriert und mehr. + +=== Meine Einstellungen === + +Für meine Projekte bevorzuge ich es, wenn Unterstützer 'Repositories' +vorbereiten, von denen ich 'pullen' kann. Verschiedene Git Hosting Anbieter +lassen Dich mit einem Klick deine eigene 'Fork' eines Projekts hosten. + +Nachdem ich einen Zweig abgerufen habe, benutze ich Git Anweisungen um durch +die Änderungen zu navigieren und zu untersuchen, die idealerweise gut +organisiert und dokumentiert sind. Ich 'merge' meine eigenen Änderungen und +führe eventuell weitere Änderungen durch. Wenn ich zufrieden bin, 'pushe' +ich in das zentrale 'Repository'. + +Obwohl ich nur unregelmäßig Beiträge erhalte, glaube ich, dass diese Methode +sich auszahlt. Siehe +http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[diesen +Blog Beitrag von Linus Torvalds (englisch)]. + +In der Git Welt zu bleiben ist etwas bequemer als 'Patch'-Dateien, denn es +erspart mir sie in Git 'Commits' zu konvertieren. Außerdem kümmert sich Git +um die Details wie Autorname und eMail-Adresse, genauso wie um Datum und +Uhrzeit und es fordert den Autor zum Beschreiben seiner eigenen Änderungen +auf. diff --git a/pl/omegat-tmp/source/preface.txt b/pl/omegat-tmp/source/preface.txt new file mode 100644 index 0000000..990279b --- /dev/null +++ b/pl/omegat-tmp/source/preface.txt @@ -0,0 +1,101 @@ += Git Magic = Ben Lynn August 2007 + +== Vorwort == + +http://git.or.cz/[Git] ist eine Art "Schweizer Taschenmesser" für +Versionsverwaltung. Ein zuverlässiges, vielseitiges +Mehrzweck-Versionsverwaltungswerkzeug, dessen außergewöhnliche Flexibilität +es schwierig zu erlernen macht, ganz zu schweigen davon, es zu meistern. + +Wie Arthur C. Clarke festgestellt hat, ist jede hinreichend fortschrittliche +Technologie nicht von Magie zu unterscheiden. Das ist ein großartiger Ansatz, +um an Git heranzugehen: Anfänger können seine inneren Mechanismen ignorieren +und Git als ein Ding ansehen, das mit seinen erstaunlichen Fähigkeiten +Freunde verzückt und Gegner zur Weißglut bringt. + +Anstatt die Details aufzudecken, bieten wir grobe Anweisungen für die +jeweiligen Funktionen. Bei regelmäßiger Anwendung wirst Du allmählich +verstehen, wie die Tricks funktionieren und wie Du die Rezepte auf Deinen +Bedarf zuschneiden kannst. + +.Übersetzungen + + - link:/\~blynn/gitmagic/intl/zh_cn/[Vereinfachtes Chinesisch]: von JunJie, + Meng und JiangWei. Zu link:/~blynn/gitmagic/intl/zh_tw/[Traditionellem + Chinesisch] konvertiert via +cconv -f UTF8-CN -t UTF8-TW+. + - link:/~blynn/gitmagic/intl/fr/[Französich]: von Alexandre Garel, Paul + Gaborit, und Nicolas Deram. Auch gehostet unter + http://tutoriels.itaapy.com/[itaapy]. + - link:/~blynn/gitmagic/intl/de/[Deutsch]: von Benjamin Bellee und Armin + Stebich; Auch gehostet unter http://gitmagic.lordofbikes.de/[Armin's + Website]. + - http://www.slideshare.net/slide_user/magia-git[Portugiesisch]: von + Leonardo Siqueira Rodrigues + [http://www.slideshare.net/slide_user/magia-git-verso-odt[ODT-Version]]. + - link:/~blynn/gitmagic/intl/ru/[Russisch]: von Tikhon Tarnavsky, Mikhail + Dymskov, und anderen. + - link:/~blynn/gitmagic/intl/es/[Spanisch]: von Rodrigo Toledo und Ariset + Llerena Tapia. + - link:/~blynn/gitmagic/intl/vi/[Vietnamesisch]: von Trần Ngọc Quân; Auch + gehostet unter + http://vnwildman.users.sourceforge.net/gitmagic.html[seiner Website]. + +.Andere Ausgaben + + - link:book.html[Einzelne Webseite]: reines HTML, ohne CSS. + - link:book.pdf[PDF Datei]: druckerfreundlich. + - http://packages.debian.org/gitmagic[Debian Packet], + http:://packages.ubuntu.com/gitmagic[Ubuntu Packet]: Für eine schnelle + und lokale Kopie dieser Seite. Praktisch, + http://csdcf.stanford.edu/status/[wenn dieser Server offline ist]. + - http://www.amazon.com/Git-Magic-Ben-Lynn/dp/1451523343/[Gedrucktes Buch + [Amazon.com]]: 64 Seiten, 15.24cm x 22.86cm, schwarz/weiß. Praktisch, + wenn es keinen Strom gibt. + +=== Danke! === + +Ich bin erstaunt, dass so viele Leute an der Übersetzung dieser Seiten +gearbeitet haben. Ich weiß es zu würdigen, dass ich, dank der Bemühungen der +oben genannten, einen größeren Leserkreis erreiche. + +Dustin Sallings, Alberto Bertogli, James Cameron, Douglas Livingstone, +Michael Budde, Richard Albury, Tarmigan, Derek Mahar, Frode Aannevik, Keith +Rarick, Andy Somerville, Ralf Recker, Øyvind A. Holm, Miklos Vajna, +Sébastien Hinderer, Thomas Miedema, Joe Malin, und Tyler Breisacher haben +Korrekturen und Verbesserungen beigesteuert. + +François Marier unterhält das Debian Packet, das ursprünglich von Daniel +Baumann erstellt wurde. + +Meine Dankbarkeit gilt auch vielen anderen für deren Unterstützung und +Lob. Ich war versucht, euch hier alle aufzuzählen, aber das könnte +Erwartungen in unermesslichem Umfang wecken. + +Wenn ich Dich versehentlich vergessen habe, sag' mir bitte Bescheid oder +schicke mir einfach einen Patch! + +.Kostenloses Git Hosting + + - http://repo.or.cz/[http://repo.or.cz/] hostet freie Projekte. Die + allererste Git Hosting Seite. Gegründet und betrieben von einem der + ersten Git Entwickler. + - http://gitorious.org/[http://gitorious.org/] ist eine andere Git Hosting + Seite, bevorzugt für Open-Source Projekte. + - http://github.com/[http://github.com/] hostet Open-Source Projekte + kostenlos und geschlossene Projekte gegen Gebühr. + +Vielen Dank an alle diese Seiten für das Hosten dieser Anleitung. + +=== Lizenz === + +Diese Anleitung ist unter der +http://www.gnu.org/licenses/gpl-3.0.html[GNU General Public License +Version 3] veröffentlicht. Natürlich wird der Quelltext in einem Git 'Repository' gehalten +und kann abgerufen werden durch: + + $ git clone git://repo.or.cz/gitmagic.git # Erstellt "gitmagic" Verzeichnis. + +oder von einem der Mirrorserver: + + $ git clone git://github.com/blynn/gitmagic.git + $ git clone git://gitorious.org/gitmagic/mainline.git diff --git a/pl/omegat-tmp/source/secrets.txt b/pl/omegat-tmp/source/secrets.txt new file mode 100644 index 0000000..fb006b6 --- /dev/null +++ b/pl/omegat-tmp/source/secrets.txt @@ -0,0 +1,299 @@ +== Aufgedeckte Geheimnisse == + +Wir werfen einen Blick unter die Motorhaube und erklären, wie Git seine +Wunder vollbringt. Ich werde nicht ins Detail gehen. Für tiefer gehende +Erklärungen verweise ich auf das +http://www.kernel.org/pub/software/scm/git/docs/user-manual.html[englischsprachige +Benutzerhandbuch]. + +=== Unsichtbarkeit === + +Wie kann Git so unauffällig sein? Abgesehen von gelegentlichen 'Commits' und +'Merges' kannst Du arbeiten, als würde die Versionsverwaltung nicht +existieren. Das heißt, bis Du sie brauchst. Und das ist, wenn Du froh bist, +dass Git die ganze Zeit über Dich gewacht hat. + +Andere Versionsverwaltungssysteme zwingen Dich ständig Dich mit +Verwaltungskram und Bürokratie herumzuschlagen. Dateien sind können +schreibgeschützt sein, bis Du einem zentralen Server mitteilst, welche +Dateien Du gerne bearbeiten möchtest. Die einfachsten Befehle werden bis zum +Schneckentempo verlangsamt, wenn die Anzahl der Anwender steigt. Deine +Arbeit kommt zum Stillstand, wenn das Netzwerk oder der zentrale Server weg +sind. + +Im Gegensatz dazu hält Git seinen Verlauf einfach im `.git` Verzeichnis von +Deinem Arbeitsverzeichnis. Das ist Deine eigene Kopie der +Versionsgeschichte, damit kannst Du so lange offline bleiben, bis Du mit +anderen kommunizieren willst. Du hast die absolute Kontrolle über das +Schicksal Deiner Dateien, denn Git kann jederzeit einfach einen gesicherten +Stand aus `.git` wiederherstellen. + +=== Integrität === + +Die meisten Leute verbinden mit Kryptographie die Geheimhaltung von +Informationen, aber ein genau so wichtiges Ziel ist es Informationen zu +sichern. Die richtige Anwendung von kryptographischen Hash-Funktionen kann +einen versehentlichen oder bösartigen Datenverlust verhindern. + +Einen SHA1-Hash-Wert kann man sich als eindeutige 160-Bit Identitätsnummer +für jegliche Zeichenkette vorstellen, welche Dir in Deinem ganzen Leben +begegnen wird. Sogar mehr als das: jegliche Zeichenfolge, die alle Menschen +über mehrere Generationen verwenden. + +Ein SHA1-Hash-Wert selbst ist eine Zeichenfolge von Bytes. Wir können +SHA1-Hash-Werte aus Zeichenfolgen generieren, die selbst SHA1-Hash-Werte +enthalten. Diese einfache Beobachtung ist überraschend nützlich: suche nach +'hash chains'. Wir werden später sehen, wie Git diese nutzt um effizient die +Datenintegrität zu garantieren. + +Kurz gesagt, Git hält Deine Daten in dem `.git/objects` Unterverzeichnis, wo +Du anstelle von normalen Dateinamen nur Identitätsnummern findest. Durch die +Verwendung von Identitätsnummern als Dateiname, zusammen mit ein paar +Sperrdateien und Zeitstempeltricks, macht Git aus einem einfachen +Dateisystem eine effiziente und robuste Datenbank. + +=== Intelligenz === + +Woher weiß Git, dass Du eine Datei umbenannt hast, obwohl Du es ihm niemals +explizit mitgeteilt hast? Sicher, Du hast vielleicht *git mv* benutzt, aber +das ist exakt das selbe wie *git rm* gefolgt von *git add*. + +Git stöbert Umbenennungen und Kopien zwischen aufeinander folgenden +Versionen heuristisch auf. Vielmehr kann es sogar Codeblöcke erkennen, die +zwischen Dateien hin und her kopiert oder verschoben wurden! Jedoch kann es +nicht alle Fälle abdecken, aber es leistet ordentliche Arbeit und diese +Eigenschaft wird immer besser. Wenn es bei Dir nicht funktioniert, versuche +Optionen zur aufwendigeren Erkennung von Kopien oder erwäge einen Upgrade. + +=== Indizierung === + +Für jede überwachte Datei speichert Git Informationen wie deren Größe, ihren +Erstellzeitpunkt und den Zeitpunkt der letzten Bearbeitung in einer Datei +die wir als 'Index' kennen. Um zu ermitteln, ob eine Datei verändert wurde, +vergleicht Git den aktuellen Status mit dem im Index gespeicherten. Stimmen +diese Daten überein, kann Git das Lesen des Dateiinhalts überspringen. + +Da das Abfragen des Dateistatus erheblich schneller ist als das Lesen der +Datei, kann Git, wenn Du nur ein paar Dateien verändert hast, seinen Status +im Nu aktualisieren. + +Wir haben früher festgestellt, dass der Index ein Bereitstellungsraum +ist. Warum kann ein Haufen von Dateistatusinformationen ein +Bereitstellungsraum sein? Weil die 'add' Anweisung Dateien in die Git +Datenbank befördert und die Dateistatusinformationen aktualisiert, während +die 'commit' Anweisung, ohne Optionen, einen 'Commit' nur auf Basis der +Dateistatusinformationen erzeugt, weil die Dateien ja schon in der Datenbank +sind. + +=== Git's Wurzeln === + +Dieser http://lkml.org/lkml/2005/4/6/121['Linux Kernel Mailing List' +Beitrag] beschreibt die Kette von Ereignissen, die zu Git geführt haben. Der +ganze Beitrag ist eine faszinierende archäologische Seite für Git +Historiker. + +=== Die Objektdatenbank === + +Jegliche Version Deiner Daten wird in der Objektdatenbank gehalten, welche +im Unterverzeichnis `.git/objects` liegt; Die anderen Orte in `.git/` +enthalten weniger wichtige Daten: den Index, 'Branch' Namen, Bezeichner +('tags'), Konfigurationsoptionen, Logdateien, die Position des aktuellen +'HEAD Commit' und so weiter. Die Objektdatenbank ist einfach aber trotzdem +elegant und sie ist die Quelle von Git's Macht. + +Jede Datei in `.git/objects` ist ein 'Objekt'. Es gibt drei Arten von +Objekten die uns betreffen: 'Blob'-, 'Tree'-, und 'Commit'-Objekte. + +=== Blobs === + +Zuerst ein Zaubertrick. Suche Dir einen Dateinamen aus, irgendeinen. In +einem leeren Verzeichnis: + + $ echo sweet > DEIN_DATEINAME + $ git init + $ git add . + $ find .git/objects -type f + +Du wirst folgendes sehen: ++.git/objects/aa/823728ea7d592acc69b36875a482cdf3fd5c8d+. + +Wie konnte ich das wissen, ohne den Dateiname zu kennen? Weil der +SHA1-Hash-Wert von: + + "blob" SP "6" NUL "sweet" LF + +aa823728ea7d592acc69b36875a482cdf3fd5c8d ist. Wobei SP ein Leerzeichen ist, +NUL ist ein Nullbyte und LF ist ein Zeilenumbruch. Das kannst Du +kontrollieren, durch die Eingabe von: + + $ printf "blob 6\000sweet\n" | sha1sum + +Git ist 'assoziativ': Dateien werden nicht nach Ihren Namen gespeichert, +sondern eher nach dem SHA1-Hash-Wert der Daten, welche sie enthalten, in +einer Datei, die wir als 'Blob'-Objekt bezeichnen. Wir können uns den +SHA1-Hash-Wert als eindeutige Identnummer des Dateiinhalts vorstellen, was +sinngemäß bedeutet, dass die Dateien über ihren Inhalt adressiert +werden. Das führende `blob 6` ist lediglich ein Vermerk, der sich aus dem +Objekttyp und seiner Länge in Bytes zusammensetzt; er vereinfacht die +interne Verwaltung. + +So konnte ich einfach vorhersagen, was Du sehen wirst. Der Dateiname ist +irrelevant: nur der Dateiinhalt wird zum Erstellen des 'Blob'-Objekt +verwendet. + +Du wirst Dich fragen, was mit identischen Dateien ist. Versuche Kopien +Deiner Datei hinzuzufügen, mit beliebigen Dateinamen. Der Inhalt von ++.git/objects+ bleibt der selbe, ganz egal wieviele Dateien Du +hinzufügst. Git speichert den Dateiinhalt nur ein einziges Mal. + +Übrigens, die Dateien in +.git/objects+ sind mit zlib komprimiert, Du +solltest sie also nicht direkt anschauen. Filtere sie durch +http://www.zlib.net/zpipe.c[zpipe -d], oder gib ein: + + $ git cat-file -p aa823728ea7d592acc69b36875a482cdf3fd5c8d + +was Dir das Objekt im Klartext anzeigt. + +=== 'Trees' === + +Aber wo sind die Dateinamen? Sie müssen irgendwo gespeichert sein. Git kommt +beim 'Commit' dazu sich um die Dateinamen zu kümmern: + + $ git commit # Schreibe eine Bemerkung. + $ find .git/objects -type f + +Du solltest nun drei Objekte sehen. Dieses mal kann ich Dir nicht sagen, wie +die zwei neuen Dateien heißen, weil es zum Teil vom gewählten Dateiname +abhängt, den Du ausgesucht hast. Fahren wir fort mit der Annahme, Du hast +eine Datei ``rose'' genannt. Wenn nicht, kannst Du den Verlauf so +umschreiben, dass es so aussieht als hättest Du es: + + $ git filter-branch --tree-filter 'mv DEIN_DATEINAME rose' + $ find .git/objects -type f + +Nun müsstest Du die Datei ++.git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9+ sehen, denn das ist +der SHA1-Hash-Wert ihres Inhalts: + + "tree" SP "32" NUL "100644 rose" NUL 0xaa823728ea7d592acc69b36875a482cdf3fd5c8d + +Prüfe, ob diese Datei tatsächlich dem obigen Inhalt entspricht, durch +Eingabe von: + + $ echo 05b217bb859794d08bb9e4f7f04cbda4b207fbe9 | git cat-file --batch + +Mit zpipe, ist es einfach den SHA1-Hash-Wert zu prüfen: + + $ zpipe -d < .git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9 | sha1sum + +Die SHA1-Hash-Wert Prüfung mit 'cat-file' ist etwas kniffliger, da dessen +Ausgabe mehr als die rohe unkomprimierte Objektdatei enthält. + +Diese Datei ist ein 'Tree'-Objekt: eine Liste von Datensätzen, bestehend aus +dem Dateityp, dem Dateinamen und einem SHA1-Hash-Wert. In unserem Beispiel +ist der Dateityp 100644, was bedeutet, dass `rose` eine normale Datei ist +und der SHA1-Hash-Wert entspricht dem 'Blob'-Objekt, welches den Inhalt von +`rose` enthält. Andere mögliche Dateitypen sind ausführbare Programmdateien, +symbolische Links oder Verzeichnisse. Im letzten Fall zeigt der +SHA1-Hash-Wert auf ein 'Tree'-Objekt. + +Wenn Du 'filter-branch' aufrufst, bekommst Du alte Objekte, welche nicht +länger benötigt werden. Obwohl sie automatisch über Bord geworfen werden, +wenn ihre Gnadenfrist abgelaufen ist, wollen wir sie nun löschen, damit wir +unserem Beispiel besser folgen können. + + $ rm -r .git/refs/original + $ git reflog expire --expire=now --all + $ git prune + +Für reale Projekte solltest Du solche Anweisungen üblicherweise vermeiden, +da Du dadurch Datensicherungen zerstörst. Wenn Du ein sauberes 'Repository' +willst, ist es am besten, einen neuen Klon anzulegen. Sei auch vorsichtig, +wenn Du +.git+ direkt manipulierst: was, wenn zeitgleich ein Git Kommando +ausgeführt wird oder plötzlich der Strom ausfällt? Generell sollten +Referenzen mit *git update-ref -d* gelöscht werden, auch wenn es gewöhnlich +sicher ist +refs/original+ von Hand zu löschen. + +=== 'Commits' === + +Wir haben nun zwei von drei Objekten erklärt. Das dritte ist ein +'Commit'-Objekt. Sein Inhalt hängt von der 'Commit'-Beschreibung ab, wie +auch vom Zeitpunkt der Erstellung. Damit alles zu unserem Beispiel passt, +müssen wir ein wenig tricksen: + + $ git commit --amend -m Shakespeare # Ändere die Bemerkung. + $ git filter-branch --env-filter 'export + GIT_AUTHOR_DATE="Fri 13 Feb 2009 15:31:30 -0800" + GIT_AUTHOR_NAME="Alice" + GIT_AUTHOR_EMAIL="alice@example.com" + GIT_COMMITTER_DATE="Fri, 13 Feb 2009 15:31:30 -0800" + GIT_COMMITTER_NAME="Bob" + GIT_COMMITTER_EMAIL="bob@example.com"' # Manipuliere Zeitstempel und Autor. + $ find .git/objects -type f + +Du solltest nun +.git/objects/49/993fe130c4b3bf24857a15d7969c396b7bc187+ +finden, was dem SHA1-Hash-Wert seines Inhalts entspricht: + + "commit 158" NUL + "tree 05b217bb859794d08bb9e4f7f04cbda4b207fbe9" LF + "author Alice 1234567890 -0800" LF + "committer Bob 1234567890 -0800" LF + LF + "Shakespeare" LF + +Wie vorhin, kannst Du 'zpipe' oder 'cat-file' benutzen um es für Dich zu +überprüfen. + +Das ist der erste 'Commit' gewesen, deshalb gibt es keine +Eltern-'Commits'. Aber spätere 'Commits' werden immer mindestens eine Zeile +enthalten, die den Eltern-'Commit' identifiziert. + +=== Von Magie nicht zu unterscheiden === + +Git's Geheimnisse scheinen zu einfach. Es sieht so aus als müsste man nur +ein paar Kommandozeilenskripte zusammenmixen, einen Schuß C-Code hinzufügen +und innerhalb ein paar Stunden ist man fertig: eine Mischung von +grundlegenden Dateisystemoperationen und SHA1-Hash-Berechnungen, garniert +mit Sperrdateien und Synchronisation für Stabilität. Tatsächlich beschreibt +dies die früheste Version von Git. Nichtsdestotrotz, abgesehen von +geschickten Verpackungstricks um Speicherplatz zu sparen und geschickten +Indizierungstricks um Zeit zu sparen, wissen wir nun, wie Git gewandt ein +Dateisystem in eine Datenbank verwandelt, das perfekt für eine +Versionsverwaltung geeignet ist. + +Angenommen, wenn irgendeine Datei in der Objektdatenbank durch einen +Laufwerksfehler zerstört wird, dann wird sein SHA1-Hash-Wert nicht mehr mit +seinem Inhalt übereinstimmen und uns sagen, wo das Problem liegt. Durch +Bilden von SHA1-Hash-Werten aus den SHA1-Hash-Werten anderer Objekte, +erreichen wir Integrität auf allen Ebenen. 'Commits' sind elementar, das +heißt, ein 'Commit' kann niemals nur Teile einer Änderung speichern: wir +können den SHA1-Hash-Wert eines 'Commits' erst dann berechnen und speichern, +nachdem wir bereits alle relevanten 'Tree'-Objekte, 'Blob'-Objekte und +Eltern-'Commits' gespeichert haben. Die Objektdatenbank ist immun gegen +unerwartete Unterbrechungen wie zum Beispiel einen Stromausfall. + +Wir können sogar den hinterhältigsten Gegnern widerstehen. Stell Dir vor, +jemand will den Inhalt einer Datei ändern, die in einer älteren Version +eines Projekt liegt. Um die Objektdatenbank intakt aussehen zu lassen, +müssten sie außerdem den SHA1-Hash-Wert des korrespondierenden 'Blob'-Objekt +ändern, da die Datei nun eine geänderte Zeichenfolge enthält. Das heißt +auch, dass sie jeden SHA1-Hash-Wert der 'Tree'-Objekte ändern müssen, welche +dieses Objekt referenzieren und demzufolge alle SHA1-Hash-Werte der +'Commit'-Objekte, welche diese 'Tree'-Objekte beinhalten, zusätzlich zu +allen Abkömmlingen dieses 'Commits'. Das bedeutet auch, dass sich der +SHA1-Hash-Wert des offiziellen HEAD von dem des manipulierten 'Repository' +unterscheidet. Folgen wir dem Pfad der differierenden SHA1-Hash-Werte, +finden wir die verstümmelte Datei, wie auch den 'Commit', in dem sie +erstmals auftauchte. + +Kurz gesagt, so lange die 20 Byte, welche den SHA1-Hash-Wert des letzen +'Commit' repräsentieren sicher sind, ist es unmöglich ein Git 'Repository' +zu fälschen. + +Was ist mit Git's berühmten Fähigkeiten? 'Branching'? 'Merging'? 'Tags'? Nur +Kleinigkeiten. Der aktuelle HEAD wird in der Datei +.git/HEAD+ gehalten, +welche den SHA1-Hash-Wert eines 'Commit'-Objekts enthält. Der SHA1-Hash-Wert +wird während eines 'Commit' aktualisiert, genauso bei vielen anderen +Anweisungen. 'Branches' sind fast das selbe: sie sind Dateien in ++.git/refs/heads+. 'Tags' ebenso: sie stehen in +.git/refs/tags+ aber sie +werden durch einen Satz anderer Anweisungen aktualisiert. diff --git a/pl/omegat-tmp/source/translate.txt b/pl/omegat-tmp/source/translate.txt new file mode 100644 index 0000000..4402fe2 --- /dev/null +++ b/pl/omegat-tmp/source/translate.txt @@ -0,0 +1,36 @@ +== Anhang B: Diese Anleitung übersetzen == + +Ich empfehle folgende Schritte um diese Anleitung zu übersetzen, damit meine +Skripte einfach eine HTML- und PDF-Version erstellen können. Außerdem können +so alle Übersetzungen in einem 'Repository' existieren. + +'Clone' die Quelltexte, dann erstelle ein Verzeichnis mit dem Namen des IETF +Sprachkürzel der übersetzten Sprache: siehe +http://www.w3.org/International/articles/language-tags/Overview.en.php[den +W3C Artikel über Internationalisierung]. Zum Beispiel, Englisch ist "en", +Japanisch ist "ja". Kopiere alle +txt+-Dateien aus dem "en"-Verzeichnis in +das neue Verzeichnis und übersetze diese. + +Um zum Beispiel die Anleitung auf +http://de.wikipedia.org/wiki/Klingonische_Sprache[Klingonisch] zu +übersetzen, mußt du folgendes machen: + + $ git clone git://repo.or.cz/gitmagic.git + $ cd gitmagic + $ mkdir tlh # "tlh" ist das IETF Sprachkürzel für Klingonisch. + $ cd tlh + $ cp ../en/intro.txt . + $ edit intro.txt # übersetze diese Datei. + +und das machst du für jede txt-Datei. + +Bearbeite das Makefile und füge das Sprachkürzel zur Variable `TRANSLATIONS` +hinzu. Nun kannst Du Deine Arbeit jederzeit wie folgt überprüfen: + + $ make tlh + $ firefox book-tlh/index.html + +'Committe' deine Änderungen oft und wenn du fertig bist, gib bitte +Bescheid. GitHub hat eine Schnittstelle, die das erleichtert: Erzeuge deine +eigene 'Fork' vom "gitmagic" Projekt, 'pushe' deine Änderungen, dann gib mir +Bescheid, deine Änderungen zu 'mergen'. diff --git a/pl/omegat-tmp/target/Makefile b/pl/omegat-tmp/target/Makefile new file mode 100644 index 0000000..8dcb751 --- /dev/null +++ b/pl/omegat-tmp/target/Makefile @@ -0,0 +1,62 @@ +# Makefile to genereate everything needed for a translation of git-magic using po4a + +SHELL := /bin/bash + +# the possible targets +# +# clean - remove the folder $(POTDIR) and all the .txt files +# gettext - create the folder $(POTDIR) and generate the .po files in there +# translate - create the .txt files from the translated .po files +# for success you must have translated already 80% of a .po file +# update - update the .po files in case the originals has changed +# changed items are marked 'fuzzy' in the .po file to fin them easy + +.PHONY: clean gettext translate update + +# the path to the english original .txt files +ORGDIR := ../en + +# the folder where the .po files will be created +POTDIR := pot + +# the filenames for the .txt and .po files +# must be identical to the english original .txt files +FILES := preface intro basic clone branch history multiplayer grandmaster secrets drawbacks translate +# add the .txt suffix to the filenames for a list of .txt files +TXTFILES := $(addsuffix .txt, $(FILES)) +# add the .po suffix to the filenames for a list of .po files +POTFILES := $(addsuffix .po, $(FILES)) + +# prerequisites for gettext are the .po files +gettext: $(addprefix $(POTDIR)/,$(POTFILES)) + +# prerequisites for translate are the .txt files +translate: $(TXTFILES) + +# no prerequisites to update the translated .po files when the english original .txt has changed +update: + ( for FILE in $(FILES) ; \ + do if [ -f $(ORGDIR)/$$FILE.txt ]; \ + then po4a-updatepo -f text -m $(ORGDIR)/$$FILE.txt -M UTF-8 -p $(POTDIR)/$$FILE.po; echo $$FILE; \ + fi; \ + done ) + +# remove all .po and .txt files +clean: + -rm -rf $(POTDIR) + -rm -rf *.txt + +# prerequisites for the .po files is the existance of the pot folder +$(POTFILES) : | $(POTDIR) + +# create the folder for the .po files +$(POTDIR) : + -mkdir $(POTDIR) + +# rule how to make the .po files from the english original .txt file +$(POTDIR)/%.po : $(ORGDIR)/%.txt + po4a-gettextize -f text -m $< -p $@ -M UTF-8 + +# rule how to make the translatets .txt files from the translated .po files +%.txt : $(POTDIR)/%.po + po4a-translate -f text -m ../en/$@ -p $< -M UTF-8 -l $@ diff --git a/pl/omegat-tmp/target/basic.txt b/pl/omegat-tmp/target/basic.txt new file mode 100644 index 0000000..fe48dd1 --- /dev/null +++ b/pl/omegat-tmp/target/basic.txt @@ -0,0 +1,185 @@ +== Pierwsze kroki == + +Zanim zmoczymy nogi w morzu polecen GIT, przyjrzyjmy sie kilku prostym poleceniom Momo ich prostoty, wszystkie sa wazne i pozyteczne. Bedac szczery, przez pierwsze miesiace pracy z GIT nie potrzebowalem zadnych innych, niz opisanych w tym rozdziale + +=== Backup === + +Masz zamiar dokonania wielu zmian? Nie ma sprawy, jednak najpierw zabezpiecz dane. + + $ git commit -m "Meine erste Sicherung" + +Jesli cokolwiek staloby sie podczas wprowadzania zmian, mozesz przywrocic stara wersje + +$ git reset --hard + +Aby zapisac nowy stan: + +$ git commit -a -m "Eine andere Sicherung" + +=== Dodac, skasowac, zmienic nazwe === + +Do tej pory git zajal sie jedynie plikami, ktore juz istnialy podczas gdy wykonales poraz pierwszy polecenie *git add* Jesli dodales nowe pliki, musisz o tym poinformowac GIT + +$ git add readme.txt Dokumentation + +To samo, gdy chcesz by GIT zapomnial o plikach: + +$ git rm ramsch.h veraltet.c $ git rm -r belastendes/material/ + +GIT usunie dane za ciebie, jesli tego jeszcze nie zrobiles. + +Zmienic nazwe pliku, to to samo co jego skasowanie ponowne utworzenie z nowa nazwa. GIT korzysta tu ze skrotu *git mv*, ktory posiada ten sam syntax co polecenie *mv* Na przyklad: + +$ git mv fehler.c feature.c + +=== Zaawansowane usuwanie/przywracanie === + +Czasami zechcesz po prostu cofnac sie w czasie i zapomniec o wszystkich zmianach ktorych dokonales Wtedy: + +$ git log + +pokaze ci liste dotychczasowych 'commits' i ich SHA1-hash: + +---------------------------------- commit 766f9881690d240ba334153047649b8b8f11c664 Author: Bob Date: Tue Mar 14 01:59:26 2000 -0800 + +Ersetze printf() mit write(). + +commit 82f5ea346a2e651544956a8653c0f58dc151275c Author: Alice Date: Thu Jan 1 00:00:00 1970 +0000 + +Initial commit. ---------------------------------- + +Pierwsze kilka znakow hash wystarcza by jednoznacznie zidentyfikowac 'commit'; alternatywnie mozesz wkopiowac caly hash. Za pomoc + +$ git reset --hard 766f + +możesz przywrócic stan wybranego commit i wszystkie poźniejsze zmiany bezpowrotnie skasować. + +Innym razem chcesz tylko na moment przejść do jednedo z poprzednich stanów. W tym wypadku użyj komendy: + +$ git checkout 82f5 + +Tym poleceniem wrócisz się w czasie zachowując jednak nowsze zmiany. Ale, tak samo jak w filmach science-fiction o podróżach w czasie, jeśli teraz dokonasz zmian i zapamietsz je poleceniem commit, przeniesiesz się do innej rzeczywostosci, ponieważ twoje zmiany różnią sie od dokonanych wcześniej. + +Ta inna rzeczywistość, to tzw. branch <>. zapamietaj jednak na razie, że: + +$ git checkout master + +sprowadzi cie znów do teraźniejszości. Aby zapobiec by GIT sie stawiał, powinieneś przed każdym CHECKOUT wszystkie zmiany COMMITEN albo RESETEN + +Jeśli znów skorzystamy z analogii do gier komputerkowych: + +- *`git reset --hard`*: załadój poprzedni stan i skasuj wszystkie stany które są nowsze niż teraz załadowany. + +- *`git checkout`*: Załadój stary stan, ale jeśli będziesz grał dalej, twój stan będzie się różnił od poprzednio zapamietanych. Każdy stan, który od teraz zostanie zapamiętany, powstanie w osobnym BRANCH, który odpowiada alternatywnej rzeczywitości. <> + +Jeśłi chcesz, możesz przywołać jedynie wybrane pliki lub katalogi poprzez dodanie ich nazw do polecenia + +$ git checkout 82f5 eine.datei andere.datei + +Bądź ostrożny, ten sposób wykonania komendy CHECKOUT może skasować pliki bez poinformowania o tym. Aby zabezpieczyc sie przed takimi wypadkami powinieneś zawsze wykonać polecenie COMMIT zanim wykonasz CHECKOUT, szczególnie ucząc się jeszcze pracy z GIT, Ogólnia zasadą powinno być, że gdy nie jesteś pewien, obojętnie czy to jest polecenie GIT czy jakakolwiek inna operacja. wykonaj zawsze *git commit -a*. + +Nie lubisz kopiować i wklejać hash-ów? Możesz w tym wypadku skorzystać z: + +$ git checkout :/"Meine erste Si" + +by przenieś się do COMMIT, którego opis właśnie tak sie rozpoczyna, Możesz również udać się do 5 z ostatnich COMMIT: + +$ git checkout master~5 + +=== Przywracanie === + +W sali sądowej można pewne zdarzenia wykreślić z akt. Podobnie możesze celowo wykasować wybrane COMMITS. + +$ git commit -a $ git revert 1b6d + +To polecenie skasuje COMMIT o wybranym hash-u. To wycofanie zostanie zapamiętane jako nowy COMMIT, co można sprawdzić poleceniem *git log*. + +=== Utwożenie historii === + +Niektóre projekty wymagają pliku historii zmian Możesz go utwoszyć korzystając z polecenia: + +$ git log > ChangeLog + +=== Zładowanie danych === + +Kopię projektu zarządzanego za pomocą GIT uzyskasz poleceniem: + +$ git clone git://server/pfad/zu/dateien + +By na przykład zładować wszystkie dane, których urzyłem do stworzenia tej strony skorzystaj z: + +$ git clone git://git.or.cz/gitmagic.git + +O poleceniu CLONE można przytoczyć jeszcze wiele innych wątków. + +=== Najnowsze z nowych === + +Jeśli posiadasz już kopię projektu, możesz ją zaktualizować poleceniem: + +$ git pull + +=== Uproszczone publikowanie === + +Załóżmy, że napisałeś skrypt i chcesz go udostępnić innym. Móglbyś ich po prostu poprosić, by zładowali go po prostu bezpośrednio z twojego komputera, ale jeśli to zrobią podczas gdy ty eksperymentujesz czy poprawiasz pracę nad skryptem, mogliby wpaść w tarapaty. Właśnie dla tego istnieje coś takiego jak RELEASEZYKLEN. Programiści regularnie pracują nad projektem, upubliczniają kod jednak dopiero, jeśli uznają, że nadaje sie do pokazania. + +Aby wykonać to za pomocą GIT, wejdź do katalogu w którym znajduje się twój skrypt: + + $ git commit -m "Erster Stand" + +Następnie udostępnij link twoim użytkownikom: + +$ git clone dein.computer:/pfad/zum/skript + +by mogli zładować skrypt. Wymaga to od nich posiadanie klucza SSH do twojego komputera. Jeśli nie mają go, wykonaj *git daemon* i podaj im następujący link: + +$ git clone git://dein.computer/pfad/zum/skript + +Od teraz, zawsze gdy uznasz, że twój skrypt nadaje sie do opublikowania, wykonaj polecenie: + +$ git commit -a -m "Nächster Stand" + +a twoji uzytkownicy beda mogli zaktualisowac go poprzez: + +$ git pull + +Twoi uzytkownicy nigdy nie wejda w posiadanie wersji, ktorych nie chcesz by posiadali Oczywiscie ten trick funkcjonuje ze wszystkim, nie tylko ze skryptami + +=== Co ostatnio robilem? === + +Znajdz co zrobiles od ostatniego COMMIT: + +$ git diff + +Albo od wczoraj + +$ git diff "@{gestern}" + +Albo miedzy jakakolwiek wersja a przedostatnia: + +$ git diff 1b6d "master~2" + +Za kazdym razem uzyskane informacje sa PATCH ktory poprzez *git applly* moze zostac wgrany Sprobuj rowniez: + +$ git whatchanged --since="2 weeks ago" + +Jesli chce sprawdzic historie jakiegos REPOSITORY korzystam czesto z XXXX, poniewaz posiada przyjazny interfejs uzytkownika, albo XXXX, program konsolowy, ktory bardzo dobrze dziala jesli mamy do czynienia z powolnymi laczami interenetowymi. Alternatywnie mozesz zaiinstalowac serwer http za pomoca *git instaweb*, wtedy mozesz przegladac kazda przegladarka. + +=== Cwiczenie === + +A, B, C i D sa 4 nastepujacymi po sobie COMMITS. B rozni sie od A, jedynie tym, ze usunieto kilka plikow. Chcemy teraz te usuniete pliki zrekonstruowac w D, a nie w B. Jak to zrobic? + +Istnieja przynajmniej 3 rozwiazania. Zalozmym ze jestesmy w D: + +1. Roznica miedzy A i B, to skasowane pliki. Mozemy utworzyc PATCH, ktory pokaze te roznice i nastepnie zastosowac go na D + +$ git diff B A | git apply + +2. Poniewaz dane zostaly zapamietane w COMMIT A, mozemy je przywrocic + +$ git checkout A foo.c bar.h + +3. Mozemy rowniez COMMIT A na B widziec jako zmiane, ktora mozemy przywrocic + +$ git revert B + +Ktore rozwiazanie jest najlepsze? To, ktore najbardziej tobie odpowiada. Korzystajac z GIT latwo mozna osiagnac cel, czasami prowadza do niego rozne drogi. \ No newline at end of file diff --git a/pl/omegat-tmp/target/branch.txt b/pl/omegat-tmp/target/branch.txt new file mode 100644 index 0000000..39c5800 --- /dev/null +++ b/pl/omegat-tmp/target/branch.txt @@ -0,0 +1,171 @@ +== Magia BRANCH == + +niezwloczne BRANCHEN i MERGEN sa uderzajacymi wlasciwosciami GIT + +*Problem*: Zewnetrzne faktory narzucaja zmiane kontekstu. powazny blad w opublikowanej wersji wystepuje bez ostrzezenia. Termin opublikowania pewnej wlasciwosci zbliza sie. Programista odpowiedzialny za podejmowanie kluczowych decyzji projektu opuszcza team. W wszystkich tych przypadkach musisz zaprzestac pracy nad bierzacymi zadaniami i poswiecic sie rozwiazaniu problemu. + +Przerwanie mysli nie jest dobre dla produktywnosci, a czym bardziej skomplikowana zmiana kontekstu, tym wieksze sa straty Przy centralnej kontroli wersji musielibysmy nowa kopie robocza pozyskac ze serwera. Przy podzielonych systemach wyglada to duzo lepiej, poniewaz mozemy potrzebna wersje skonowac lokalnie + +Jednak CLONEN niesie za soba kopiowanie calego katalogu roboczego jak i calej historii projektu az do podanego punktu. Nawet jesli GIT redukuje koszty poprzez udostepnienie danych i skroty, wszystkie pliki projektu musza znalezc sie w nowym katalogu roboczym. + +*Rozwiazanie*: Git posiada lepsze narzedzia dla takich sytuacji, ktore sa duzo szybsze i oszczedniejsze dla miejsca na dysku jak klonowanie: *git branch*. + +Tym magicznym slowem zmienisz dane w swoim katalogu roboczym z jednej wersji w inna. Te przemiany moga wiecej jak tylko poruszanie sie w historii projektu. Twoje dane moga zamienic sie z aktualnego stanu do wersji eksperymentalnej, do najnowszego stanu, do stanu twojeo kolegi u tak dalej. + +=== Przycisk SZEF === + +Grales juz kiedys w gre, ktora posiadala przycisk SZEF, po nacisnieciu ktorej monitor od razu pokazywal jakis arkusz kalkulacyjny. albo cos innego? By, jesli tylko szef wszedl do biura, podczas grania w gierke, mogles ja szybko ukryc? + +W pewnym katalogu: + +$ echo "Ich bin klüger als mein Chef" > meinedatei.txt $ git init $ git add . $ git commit -m "Erster Stand" + +Utworzylismy REPOSITORY, ktora posiada dana z ta zawartoscia Podajemy teraz; + +$ git checkout -b chef # scheinbar hat sich danach nichts geändert $ echo "Mein Chef ist klüger als ich" > meinedatei.txt $ git commit -a -m "Ein anderer Stand" + +Wyglada jakbysmy ta dana zmienili i COMMITED Ale to iluzja. Wpisz: + +$ git checkout master # wechsle zur Originalversion der Datei + +i Simsalabim! Poprzedni plik jest przywrocony do stanu pierwotnego A gdy szef grzebie w twoim katalogu, wpisz: + +$ git checkout chef # wechsle zur Version die der Chef ruhig sehen kann + +Mozesz zmieniac pomiedzy tymi wersjami tak szesto jak czesto zechcesz, niezaleznie od tego w kazdej z tych wersji mozesz COMMITEN + +=== Brudna robota === + +[[branch]] Zalozmy, pracujesz nad jakas funkcja, i musisz, jakiegokolwiek powodu, wrocic o 3 wersje wstecz, by wprowadzic kilka polecen print, aby sprawdzic jej dzaialanie. Wtedy: + +$ git commit -a $ git checkout HEAD~3 + +Teraz mozesz temporarnie wszedze wprowadzac na dziko kod Mozesz te zmiany nawet COMMITEN. JAk juz jestes gotowy + +$ git checkout master + +by wrocic do poprzedniej pracy Oauwaz, ze wszystkie zmiany, ktorre nie zostaly COMMITTED, zostaly przejete + +A co jesli chcesz zapamietac wprowadzone zmiany? Proste; + +$ git checkout -b schmutzig + + i tylko jeszcze COMMIT zanim wrocisz do MASTER BRANCH. Jesli tylko chcesz wrocic do twojej brudnej roboty, wpisz po prostu + +$ git checkout schnmutzig + +Spotkalismy sie z tym poleceniem juz we wczesniejszym rozdziale, gdy poruszalismy temat ladowania starych stanow Teraz mozemy opowiedziec cala historie: Pliki zmieniaja die do wymaganego stanu, jednak musimy opuscic MASTER BRANCH. Kazdy COMMIT od teraz prowadzi woje dane inna droga, ktorej mozemy rowniez nadac nazwe. + +Innymi slowami, po przywolaniu starego stanu GIT automatychnie zamienia sie w nowy, nienazwany BRANCH, ktory poleceniem *git checout -b* uzyska nazwe i zostanie zapamietany. + +=== Szybkie koregowanie bledow. === + +Akurat gdy strasznie zajety biezacymi zadaniami w projekcie otrzymujesz polecenie zajecie sie bledem w COMMIT 1b6d... + +$ git commit -a $ git checkout -b fixes 1b6d + +Jak juz uporasz sie z bledem: + +$ git commit -a -m "Fehler behoben" $ git checkout master + +i kontynnuj przerwany prace Mozesz nawet ostatnio swiezo upieczona koreketure przejac do aktualnego stanu: + +$ git merge fixes + +=== MERGEN === + +Za pomoca niektorych systemow kontroli wersji utworzenie nowegoi BRANCH moze i jest prostem, jednak pozniejsze MERGE trudne. Z GIT MERGE jest tak prostem, ze czasami nawet nie zauwazysz, gdy to nastepuje + +W gruncie rzeczy spotkalismy sie juz wczesniej z MERGE. Polecenie *pull* za pomoca ('fetch') laduje COMMITS i je zespala ('merged'), wtedy z aktualnym BRANCH. Jesli nie wprowadziles zadnych lokalnych zmian, to 'merge' jest szybkim przekierowaniem, jest to przypadek, podobny do przywolania ostatniej wersji z centralnego systemu zarzadzania wersja. Jesli jednak wprowadziles zmiany, GIT bedzie je automatycznie MERGEN i powiadomi cie o eventualnych konfliktach. + +Zwyczajnie kazdy COMMIT posiada rodzica-COMMIT, a mianowicie poprzedni COMMIT. MERGEN kilku BRANCHES wytwarza COMMIT z minimum 2 rodzicami-COMMIT. To nasuwa pytanie; ktoremu COMMIT referencuje HEAD++10 wlasciwie? COMMIT moze posiadac wiecej rodzicow, ktoremu wlasciwie nastepowac? + +Wychodzi na to, ze ta notacja zawsze wybiera pierwszego rodzica. To jest erstrebenswert, poniewaz aktualny BRANCH staje sie pierwszym rodzicem podczas MERGE; czesto jestes konfrontowany ze zmianami ktorych dokonales w aktualnym BRANCH bardziej, niz ze zmianami z innych BRANCHES. + +Mozesz tez jakiegos rodzica referowac znaczkiem CARET By na przyklad logi drugiego rodzica pokazac + +$ git log HEAD^2 + +Mozesz pominac numer pierwszego rodzica By na przyklad pokazac roznice miedzy pierwszym rodzicem + +$ git diff HEAD^ + +mozesz ta notacje kombinowac takze z innymi typami Na przyklad: + +$ git checkout 1b6d^^2~10 -b uralt + +rozpoczyna z nowym BRANCH o nazwie '``stare', ktory posiada stan 10 COMMIT spoowrotem od drugiego rodzica COMMIT, ktorego hash rozpoczyna sie na 1b6d. + +=== Nie przerywany przebieg pracy === + +W procesie produkcji czesto drugi krok planu musi czekac na zakonczenie pierwszego Popsuty samochod stoi w garazu nieuzywany do czasu dostarczenia czesci zamiennej. Prototyp musi czekac na wyprodukowanie baustein zanim mozna podjac dalsza konstrukcje. + +W projektach software moze to wygladac podobnie. Druga czesc jakiegos feature musi czekac, az pierwsza zostanie upubliczniona i przetestowana. Niektore projekty wymagaja sprawdzenia twojego kodu zanim zostanie zaakceptoany, musisz wiec czekac, zanim pierwsza czesc zostanie sprawdzona, zanim bedziesz mogl zaczac z druga czescia + +Dzieki bezbolowemu BANCHEN i MERGEN kozemy te regoly naciagnac i praccowac nad druga czescia juz zanim pierwsza zostanie oficjalnie zatwierdzona Przyjmijmy, że wykonałeś COMMIT pierwszej części i przekazałeś do sprwadzenia. Powiedzmy też, że znajdujesz sie w MASTER BRANCH. Najpierw zmień BRANCH do części drugiej + +$ git checkout -b teil2 + +Pracujesz w cześci 2 i regularnie wykonujesz COMMIT. Błądzenie jest ludzkie i może się zdażyć, że chcecie wrócić do części 1 i wprowadzić poprawki. Jeśli masz szczęście i jesteś dobry, możesz ominąć następne akapity. + +$ git checkout master # Gehe zurück zu Teil I. $ fix_problem $ git commit -a # 'Commite' die Lösung. $ git checkout teil2 # Gehe zurück zu Teil II. $ git merge master # 'Merge' die Lösung. + +Schließlich, Teil I ist zugelassen: + +$ git checkout master # Gehe zurück zu Teil I. $ submit files # Veröffentliche deine Dateien! $ git merge teil2 # 'Merge' in Teil II. $ git branch -d teil2 # Lösche den Branch "teil2" + +Nun bist du wieder im `master` 'Branch', mit Teil II im Arbeitsverzeichnis. + +Dość łatwo zastosować ten sam trik na dowolną ilość części. Równie łatwo można spowrotem BRANCHEN: przyjmując, spostrzegasz za późno, że powinieneś 7 COMMITS wcześniej utworzyć branch- Wpisz wtedy: + +$ git branch -m master teil2 # Umbenennen des 'Branch' "master" zu "teil2". $ git branch master HEAD~7 # Erstelle neuen "master", 7 Commits voraus + +Teraz MASTER BRANCH zawiera cześć 1 a BRANCH czesc2 posiada resztę. Znajdujemy się teraz w tym ostatnim BRANCH; utworzyliśmy MASTER bez wchodzenia do niego, ponieważ mamy zamiar pracować teraz dalej w BRANCH czesc2 Znajduje to dość szerokie zastosowanie Do tej pory przechodziliśmy do nowo utworzonego BRANCH, tak jak w: + +$ git checkout HEAD~7 -b master # erzeuge einen Branch, und wechsle zu ihm. + +=== Reorganizacja chaosu === + +Może lubisz odpracować wszystkie aspekty projektu w Chcesz wszystkie bieżące prace zachować dla siebie, a wszyscy inni powinni widzieć twoje COMMITS tylko jeśli je ładnie zorganizowałeś. Wystartuj kilka BRANCHES: + +$ git branch sauber # Erzeuge einen Branch für gesäuberte Commits. $ git checkout -b mischmasch # Erzeuge und wechsle in den Branch zum Arbeiten. + +Zacznij po koleju odpracowywać zadania: usuń błędy, dodaj nowe funkcje, utwóż kod tymczasowy i tak dalej, i COMMITE twój kod regularnie. Wtedy: + +$ git checkout bereinigt $ git cherry-pick mischmasch^^ + +zmień najwyższy COMMIT z BRANCH miszmasz na oszyszczony BRANCH. Poprzez pousuwanie rodzynek możesz tak skonstruować BRANCH, który posiada jedynie końcowy kod i zależne od niego COMMITS pogrupowane COMMITS. + +=== Organizacja BRANCHES === + +Listę wszystkich BRANCHES otrzymasz poprzez: + +$ git branch + +Standardowo zaczynasz w BRANCH zwanym MASTER. Wielu opowiada się za pozostawieniem MASTERBRANCH w stanie dziewiczym i założeniu dla wykonania pracy nowego BRANCH + +Die *-d* und *-m* Optionen erlauben dir 'Branches' zu löschen und zu verschieben (umzubenennen). Zobacz: *git help branch*. + +MASTER BRANCH jest bardzo użytecznym Inni mogą wychodzić z założenia, że twój REPOSITORY posiada BRANCH o tej nazwie i że posiada on oficjalną wersję Nawet jeśli mógłbyś skasować lub zmienić nazwę na inną, możesz tą konwencję respektować + +=== Tymczasowe BRANCHES === + +Po jakimś czasie stwierdzisz, że ciągle tworzysz krótko żyjące BRANCHES, w wiekszości z tego samego powodu: każdy nowy BRANCH służy jedynie do tego, by zabezpieczyć aktualny stan,, aby móc wrócić do jednego z poprzednich punktów i poprawić jakieś priorytetowe błędy czy cokolwiek. + +Można to porównać do chwilowego przełączenia kanału telewizyjnego, by sprawdzić co na innym kanale się dzieje. Lecz zamiast naciskać guziki, dajesz polecenia CREATE, CHECK OUT, MERGE i DELETE z tymczasowymi BRANCHES. Na szczęście GIT posiada na te operacje skrót, który jest tak samo komfortowy jak pilot telewizora: + +$ git stash + +Polecenie to zabezpiecza aktualny stan w tymczasowym miejscu (STASH = ukryj) i przywraca poprzedni stan. Twój katalog roboczy wygląda dokładnie tak, jak wyglądał zanim zacząłeś w nim edytować Teraz możesz poprawiać błędy, zładować zmiany z centralnego REPOSITORY (PULL) i tak dalej. Jeśli chcesz powrócić spowrotem do swoich zmian, wpisz: + +$ git stash apply # Es kann sein, dass du Konflikte auflösen musst. + +Możesz posiadać więcej STASHES i traktować je w zupełnie inny sposób. Zobacz *git help stash*. Jak już prawdopodobnie się domyślasz, GIT stosuje BRANCHES w tle, by wykonać tą magiczną sztuczję + +=== Pracuj jak chcesz === + +Może pytasz się, czy BRANCHES są warte tego zachodu. Jakby nie było, polecenia CLONE są prawie tak samo szybkie i możesz po prostu poleceniem *cd* zamiast ezoterycznych poleceń GIT miedzy nimi zmieniać. + +Przyjżyjmy się takiej przeglądarce internetowej. Dlaczego pozwalają używać tabs albo okien? Ponieważ udostępnienie obu możliwości pozwala na stosowanie wielu stylów. Niektórzy użytkownicy wolą mieć otwarte tylko jedno okno przeglądarki i korzystają z tabs dla różnych stron Inni upierają się przy tym: więcej okien, zupełnie bez tabs. Inni znowu wolą coś pomiędzy. + +BRANCHEN to jak tabs dla twojego katalogu roboczego a CLONEN porównać można do otwarcia wielu okien. Obie operacje są szybkie i lokalne, dlaczego nie poeksperymentować i nie znaleźć dla siebie najbardziej odpowiedniej kombinacji. GIT pozwoli ci pracować dokładnie tak jak chcesz. \ No newline at end of file diff --git a/pl/omegat-tmp/target/clone.txt b/pl/omegat-tmp/target/clone.txt new file mode 100644 index 0000000..26e0fde --- /dev/null +++ b/pl/omegat-tmp/target/clone.txt @@ -0,0 +1,183 @@ +== Polecenie CLONEN == + +W starszych systemach zarządzania wersją polecenie CHECKOUT stanowi standardową operacje pozyskania danych. Otrzymasz całą masę plików konkretnego stanu + +W GIT i innych dzielonych systemach zarządzania wersją to CLONE jest standardem. By pozyskać dane, tworzysz klon całej REPOSITORY. Lub inaczej mówiąc, odzwierciedlasz zentralny server. Wszystko, co można zwobić z centralnym REPOSITORY, możesz również zrobić z klonem. + +=== Synchronizacja komputera === + +Można zaakceptować, dla ochrony danych i prostej synchonizacji, pracę z archiwami TARBALL albo *rscnc*. Jednak czasami pracuję na laptopie, później na desktopie, w międzyczasie nie nastąpiła miedzy nimi synchronizacja + +Utwóż GIT REPOSITORY i COMMITE twoje dane na komputerze. Potem na następnym: + +$ git clone anderer.computer:/pfad/zu/dateien + +by uzyskać drugą kopie danych i utworzyć GIT REPOSITORY. Od teraz poleceniem: + +$ git commit -a $ git pull anderer.computer:/pfad/zu/dateien HEAD + +przenosisz stan drugiego komputera na komputer na którym właśnie pracujesz Jeśli dokonałeś zmian na tej samej danej na obydwóch komputerach, GIT cię o tym poinformuje, po usunięciu konfliktu musidz ponownie COMMITEN + +=== Klasyczne zarządzanie kodem źródłowym === + +Utwóż GIT REPOSITORY dla twoich danych + + $ git commit -m "Erster Commit" + +Na centralnym serwerze utwóż tzw BARE REPOSITORY w jakimkolwiek katalogu + +$ mkdir proj.git $ cd proj.git $ git init --bare $ touch proj.git/git-daemon-export-ok + +Jeśli konieczne, wystartuj GIT-DAEMON + +$ git daemon --detach # er könnte schon laufen + +Jeśli korzystasz z hosting to poszukaj wskazówek utwożemia najpierw pustego REPOSITORY Zwykle konieczne jest wypełnienie formulaża online na stronie internetowej usługodawcy + +Przenieś (PUSH) twój projekt teraz na centralny serwer: + +$ git push zentraler.server/pfad/zu/proj.git HEAD + +By pozyskać kod źródłowy programista podaje zwykle polecenie tego rodzaju: + +$ git clone zentraler.server/pfad/zu/proj.git + +Po dokonaniu edycji programista zapamiętuje zmiany lokalnie: + +$ git commit -a + +Aby zaktualizować do wersji na serwerze: + +$ git pull + +Jeżli wystąpią jakiekolwiek konflikty MERGE, powinny być usunięte in na nowo COMMIT + +$ git commit -a + +Lokalne zmiany przekazujemy do serwera poleceniem: + +$ git push + +Jeśli w międzyczasie nastąpiły nowe zmiany na serwerze wprowadzone przez innego programistę, twój PUSH nie powiedzie sie. Zaktualizuj lokalne REPOSITORY ponownie poleceniem PULL, pozbądź się konfliktów i spróbuj jeszcze raz + +Programiści potrzebują dostęp SSH by móc wykonać polecenia PULL i PUSH. Mimo to każdy może otrzymać kod źródłowy poprzez podanie: + +$ git clone git://zentraler.server/pfad/zu/proj.git + +Protokół GIT przypomina HTTP: nie posiada autentyfikacji, więc każdy może zładować dane. Przy ustawieniach standardowych polecenie PUSH za pomocą protokołu GIT jest zdeaktywowane. + +=== Utajnione Zródła === + +Przy projektach Closed-Source nie używaj polecenia TOUCH i upewnij się, że nigdy nie zostanie utworzony plik o nazwie git-daemon-export-ok To REPOSITORY nie może komunikować sie poprzez protokół GIT, tylko posiadający dostęp przez SSH mogą widzieć dane. Jeśli wszystkie REPOSITORIES są zamknięte, nie ma potrzeby startować deamon GIT, ponieważ cała komunikacja odbywa się za pomocą SSH. + +=== Gołe REPOSITORIES === + +Gołe (BARE) REPOSITORY jest tak nazywane, ponieważ nie posiada katalogu roboczego Posiada jedynie dane, które są zwykle schowane w podkatalogu .git. Innymi słowami, zarządza historią projektum, nie otrzymuje jednak nigdy jakiejkolwiek wersji + +BARE REPOSITORY przejmuje rolę głównego serwera w scentralizowanych systemach kontroli wersi: dom trojego projektu Programiści klonują twój projekt stamtąd i PUSHEN ostatnie oficjalne zmiany na niego. Często znajduje się ono na serwerze, który nie robi dużo więcej, niż rozdzielanie danych. Sama praca dzieje się w klonach projektu, w ten sposób domowe-REPOSITORY daje sobie radę nie korzystając z katalogu roboczego + +Wiele z poleceń GIT nie funkcjonuje na BARE REPOSITORIACH Jedynie w wypadku gdy zmienna systemowa GIT_DIR ustawiona zostanie na katalog roboczy albo opcja --bare zostanie przekazana. + +=== PUSH albo PULL === + +Dlaczego wprowadziliśmy polecenie PUSH, i nie pozostaliśmy przy znanym nam już PULL? Po pierwsze, ponieważ PULL nie działa z BARE REPOSITORIES: zamiast niego używaj FETCH, polecenie którym zajmiemy się później. Również gdybyśmy nawet używali normalnego REPOSITORY na serwerze centralnym, polecenie PULL stanowiłoby żmudną sprawę. Musielibyśmy najpierw zalogować się na serwerze i poleceniu PULL przekazać adres IP komputera z którego chcemy sciągnąć pliki. Mogłyby nam stanąć na przeszkodzie firewalls, nie wspominając już o braku uprawnień do konsoli. + +W każdymbądź razie, odradzamy z korzystania z polecenia PUSH do REPOSITORY Jeśli cel posiadałny katalog roboczy, mogłyby powstać nieścisłości. + +Krótko mówiąc, podczas gdy uczysz się korzystania z GIR, korzystaj z polecenia PUSH tylko, gdy cel jest BARE REPOSITORY, w wszystkich innych wypadkach z polecenia PULL + +=== FORK projektu === + +Jeśli nie masz już ochoty patrzeć na kierunek rozwoju w którym poszedł projekt Uważasz, że potrafisz to lepiej To po prostu zwób coś takiego na twoim serwerze: + +$ git clone git://haupt.server/pfad/zu/dateien + +No i poinformuj wszystkich o twoim fork projektu na twoim serwerze. + +W każdej późniejszej chwili możesz zmiany oryginalnego projektu MERGEN poprzez: + +$ git pull + +=== Ultymatywny backup danych === + +Chcesz posiadać liczne, wolne od manipulacji, redudante kopie bezpieczeństwa w różnych miejscach Jeśli projekt posiada wielu programistów, nie musisz niczego robić Ponieważ każdy klon twojego kodu jest pełnowartościową kopią bezpieczeństwa Nie tylko jedo aktualny stan, lecz również jego całą historię. Gdy jakikolwiek klon zostanie uszkodzony, dzięki kryptograficznemu hashowaniu, zostanie to natychmiast rozpoznane, jeśli tylko osoba ta będzie próbować komunikować się z innymi. + +Jeśli twój projekt nie jest zbyt mocno znany, spróbuj pozyskać tak wiele serwerów ile to możliwe, by umieścić tam klon + +Ci najbardziej paranoidalni powinni zawsze zapisać 20 bajtów SHA1 hash z HEAD i przechowywać na bezpiecznym miejscu Musi być bezpieczne, jednak nie musi być prywatne Na przykład można opublikować go w gazecie, ponieważ byłoby dość trudnym zadaniem zmanipulować każdą kopię gazety + +=== Multitasking z prędkością światła === + +Załóżmy, że chcesz pracować równocześnie nad wieloma funkcjami Wtedy COMMIT twój projekt i wykomaj: + +$ git clone . /irgendein/neuer/ordner + +Twardym linkom możemy podziękować, że lokalny klon potrzebuje dużo mniej czasu i pamięci niż zwykły backupq + +Możesz pracować nad dwoma funkcjami jednocześnie Na przykład możesz pracować nad klonem, podczas gdy drugi jest kompilowany W każdym momencie możesz COMMITEN i zmiany innego klonu PULLEN + +$ git pull /der/andere/clone HEAD + +=== Zarządzanie wersją w poddziemiu === + +Pracujesz nad projektem, który używa innego systemu kontroli wersji i tęsknisz za GIT? Utwórz GIT REPOSITORY w katalogu roboczym + + $ git commit -m "Erster Commit" + +następnie sklonuj go: + +$ git clone . /irgendein/neuer/ordner + +Przejdź teraz do nowego katalogu i pracuj według upodobania. Kiedyś zechcesz zsynchronizować pracę, idź więc do orginalnego katakogu zaktualizuj go najpierw z tym innym systemem kontroli wersji i wpisz: + +$ git add . $ git commit -m "Synchronisation mit den anderen" + +Następnie przejdź do dowego katalogu i podaj: + +$ git commit -a -m "Beschreibung der Änderungen" $ git pull + +Sposób w jaki przekaższ zmiany drugiemu systemowi zależy już od niego. Twoj nowy katalog posiada dane z przez ciebie wprowadzonymi zmianami Wykonaj konieczne kroki opisane w innym systemie, by przekazać dane do centralnego składu. + +Subversion, być może najlepszy z centralnych systemów, stosowany jest w wielu projektach. Der *git svn*-Befehl automatisiert den zuvor genannten Ablauf für Subversion 'Repositories' und kann auch benutzt werden um http://google-opensource.blogspot.com/2008/05/export-git-project-to-google-code.html[ein Git Projekt in ein Subversion 'Repository' zu exportieren]. + +=== Mercurial === + +Mercurial to podobny system kontroli wersji, który prawie bezproblemowo potrafi pracować z GIT Korzystając z rozszerzenia hg-git użytkownik Mercurial jest w stanie prawie bez większych strat PUSH i PULL ze składem GIT. + +Sciągnij sobie rozszerzenie hg-git za pomocą GIT: + +$ git clone git://github.com/schacon/hg-git.git + +albo Mercurial: + +$ hg clone http://bitbucket.org/durin42/hg-git/ + +Niestety nie są mi znane takie rozszerzenia dla GIT. Dlatego jestem za używaniem GIT jako centralnegoo składu, nawet gdy preferujesz Mercurial W projektach prowadzonych za pomocą Mercurial często znajdziemy woluntariusza, który równolegle prowadzi skład GIT, do którego za pomocą rozszerzenia hg-git, synchronizowany jest automatycznie z użytkownikami GIT + +To rozszerzenie potrafi również zmienić skład Mercurial w skład GIT, za pomocą komendy PUSH do pustego składu GIT Jeszcze łatwiej dokonamy tego skryptem hg-fast-export.sh, który możemy tu znaleźć: + +$ git clone git://repo.or.cz/fast-export.git + +Aby przekonwertować wejść do pustego katalogu: + +$ git init $ hg-fast-export.sh -r /hg/repo + +po uprzednim dodaniu skryptu do `$ PATH`. + +=== Bazaar === + +Wspomnijmy również pokrótce o Bazaar, ponieważ jest to najbardziej popularny darmowy rozproszony system kontroli wersji po Git i Mercurial. + +Bazar ponieważ jest to stosunkowo młody, posiada zaletę perspektywy czasu; jego twórcy mogli uczyć się na błędach z przeszłości i uniknąć historycznych naleciałości. Pozatem programiści byli świadomi popularności i wagi interakcji z innymi systemami kontroli wersji. + +Rozszerzenie `Bzr-git` pozwala użytkownikom Bazar dość łatwo pracować z repozytoriami Git Program `tailor` konwertuje składy Bazaar do składów Git i może zrobić na bieżąco, podczas gdy `bzr-fast-export` lepiej nadaje się do jednorazowej konwersji. + +=== Dlaczego korzystam z GIT === + +Zdecydowałem się pierwotnie do wyboru GIT, ponieważ słyszałem, że jest w stanie zarządzać tak zawiłym i rozległym projektem jak kod źródłowy Linuxa. Nie miałem jeszcze powodu do zmiany. Git służył mi znakomicie i jak na razoiie jeszcze nigdy mnie nie zawiódł. Ponieważ w pierwszej lini pracuje na linuksie, problemy innych platworm nie mają dla mnie znaczenia. + +Preferuję również programy C i skrypty bash w opozycji do na przykład Pythona: posiadają mniej zależności, jestem też spragniony szybkiego wykonywania kodu + +Myślałem też nad tym, jak można by ulepszyć GIT, poszło nawet tak daleko, że napisałem własną aplikacje podobną do GIT, w celu jednak wyłącznie ćwiczeń akademickich. Nawet gdybym zakończył mój projekt, mimo to pozostałbym przy GIT, bo ulepszenia byłyby zbyt minimalne by uzasadnić zastosowanie odosobnionego systemu. + +Oczywiście może się okazać, że twoje potrzeby i oczekiwania są zupełnie inne i być może wygodniej jest tobie z zupełnie innym systemem. Jakby jednak nie spojrzeć, stosując Git nie stanie ci się niz złego. \ No newline at end of file diff --git a/pl/omegat-tmp/target/drawbacks.txt b/pl/omegat-tmp/target/drawbacks.txt new file mode 100644 index 0000000..115c00c --- /dev/null +++ b/pl/omegat-tmp/target/drawbacks.txt @@ -0,0 +1,91 @@ +== Załącznik A: Wady GIT == + +O kilku problemach mogących wystąpić z GIT nie wspomniałem do tej pory. Niektóre z nich można łatwo rozwiązać korzystając ze skryptów i 'Hooks', inne wymagają reorganizacji i ponownego zdefiniowania całego projektu, a na rozwiązanie kilku innych uniedogodnień możesz tylko uzbroić sie w cierpliwość i czekać na rozwiązanie. Albo jeszcze lepiej, samemu się nimi zająć i spróbować pomóc. + +=== Słabości SHA1 === + +Z biegiem czasu kryptografowie odkrywają coraz więcej słabości systemu SHA1. Już dzisiaj byłoby możliwe dla przeciębiostw dysponujących odpowiednimi zosobami finansowymi znaleźć kolizje w hash-ach Za kilka lat możliwe, że całkiem normalny domowy PC będzie dysponował odpowiednim zasobem mocy obliczeniiowej, by skorumpować niepostrzeżenie repozytorium GIT- + +Miejmy nadzieję, że GIT przestawi sie na lepszą funkcje hash, zanim badania nad SHA1 zupełnie zrobią go bezużytecznym. + +=== Microsoft Windows === + +Korzystanie z GIT pod Microsoft Windows może być frustrujące: + +- http://cygwin.com/[Cygwin], eine Linux ähnliche Umgebung für Windows, enthält http://cygwin.com/packages/git/[eine Windows Portierung von Git]. + +- http://code.google.com/p/msysgit/[Git unter MSys] ist eine Alternative, die sehr wenig Laufzeitunterstützung erfordert, jedoch bedürfen einige Kommandos noch einer Überarbeitung. + +=== Pliki z brakiem odniesienia === + +Jeśli twój projekt jest bardzo duży i zawiera wiele plików, które nie są bezpośrednio ze sobą powiązane, mimo to jednak często zostają zmieniane, Git może tu oddziaływać bardziej negatywnie niż to jest w innych systemach, ponieważ nie prowadzi monitoringu poszczególnych plików. GIT kontrojuje zawsze całość projektu, co w normalnym wypadku jest zaletą. + +Jednym z możliwych rozwiązań mogłoby być podzielenie twojego projektu na kilka mniejszych, w których znajdują się jedynie od siebie zależne pliki. Korzystaj z *git submoduleć jeśli mimo to chcesz cały twój projekt mieć w tym samym repozytorium. + +=== Kto robi co? === + +Niektóre systemy kontroli wersji zmuszają cię, by w jakiś sposób oznaczyć pliki nad którymi pracujesz. Mimo że jest to bardzo uciążliwe gdy wymaga ciągłej komunikacji z serwerem centralnym, posiada to też swoje zalety: + +1. Różnice zostają szybko znalezione, ponieważ wystarczy skontrolować wyłącznie zaznaczone dane + +2. Każdy może sprawdzić kto właśnie nad jakim plikiem pracuje, sprawdzając na serwerze po prostu kto zaznaczył tą daną do obróbki + +Używając odpowiednich skryptów uda ci się to również przy pomocy GIT. Wymaga to jednak współdziałania programistów, ponieważ muszą również korzystać z tych skryptów podczas pracy nad plikiem. + +=== Historia pliku === + +Pomieważ Git loguje zmiany tylko dla całości projektu jako takiego, rekonstrukcja przebiegu zmian pojedyńczego pliku jest bardziej pracochłonna, niż w innych systemach, które kontrolują poledyńcze pliki. + +Te wady są w wieszości przypadków marginalne i nie są brane pod uwagę, ponieważ inne operacje są bardzo wydajne. Na przykład polecenie `git checkout` jest szybsze niż `cp -a`, zmiany w zakresie całego projektu daje się lepiej komprymować niż zbiór zmian na bazie pojedyńczych plików. + +=== Pierwszy klon === + +Wykonanie klonu jest bardziej kosztowniejsze niż w innych systemach kontrli wersji jeśli istnieje dłuższa historia. + +Początkowy koszt spłaca sie jednak na dłuższą metę ponieważ większość przyszłych operacji przeprowadzane są szybko i offline. Niemniej jednak istnieją sytuacje, w których lepiej utworzyć powierzchowny klon korzystając z opcji `--depth`. Trwa to o wiele krócej, nimniej jednak klon taki posiada tylko ograniczoną finkcjonalność. + +=== Niestałe projekty === + +Git został napisany z myślą optymalizacji prędkości działania przy dokonywaniu wielkich zmian. Ludzie robią jednak pomniejsze zmiany z wersji na wersję. Jakaś poprawka tutaj, jakaś nowa funkcja gdzie indziej, poprawienie komentarzy itd. Ale jeśli twoje dane znacznie się od siebie różnią pomiędzy następującymi po sobie wersjami, to chcąc nie chcąc przy każdym 'commit' projekt zwiększy się o twoje zmiany. + +Nie wymyślono jednak do tej pory niczego w żadnym systemie kontroli wersji, by móc temu zapobiec, tutaj jednak użytkownik GIT cierpi najbardziej, ponieważ w normalnym wypadku klonuje cały przebieg projektu. + +Powinno się w takim wypadku szukać powodów wystąpienia największych zmian. Ewentualnie można czasami zmienić format danych. Małe zmiany w projekcie powinny pociągać tylko minimalne zmiany na tak wąskiej grupie plików, jak to tylko możliwe. + +Może czasami bardziej wskazana byłaby baza danych, czy jakiś system archiwizacji zamiast systemu kontroli wersji. Na przykład nie jest dobrym sposobem zastosowanie systemu kontroli wersji do zarządzania zdjęciami wykonywanymi periodycznie przez kamerę internetową-. + +Jeśli dane ulegają ciągłym zmianom i naprawdę muszą być wersjonowane, jedną z możliwości jest zastosowanie Git w scentralizowanej formie. Każdy może dokonywać pobierznych klonów, które mało co lub wcale nie mają nic do czynienia z przebiegiem projektu. Oczywiście w takim wypadku wiele funkcji GIT nie bedzie dostępnych a zmiany muszą być przekazywane w formie 'patch'. Prawdopodobnie będzie to dość dobrze działać, mimo iż nie jest do końca jasne komu potrzebna jest znajomość przebiegu tak ogromnej ilości niestabilnych danych. + +Innym przykładem może być projekt, który zależny jest od firmware przyjmującej kształt wielkiej danej w formie binarej. Historia pliku firmware nie interesuje użytkownika, a zmiany nie pozwalają sie wygodnie komprymować, wielkość repozytorium wzrasta niepotrzebnie o nowe wersje binarnego pliku firmware. + +W takim wypadku należałoby trzymać w repozytorium wyłącznie kod źródłowy, a sam plik binarny pora nim. By ułatwić sobie życie, ktoś mógłby opracować skrypt, który Git wykorzystuje do klonowania kodu źródłowego i 'rsync' albo pobieżny klon dla samego firmware. + +=== Licznik globalny === + +Wiele systemów kontroli wersji udostępnia licznik, który jest zwiększany z każdym "commit". Git natomiast odwołuje się przy zmianach do hasha SHA1, który w wielu przypadkach jest lepszym rozwiązaniem. + +Niektórzy jednak przyzwyczaili się do tego licznika. Na szczęście, łatwo jest pisać skrypty, zwiększające stan licznika przy każdyej aktualizacji centralnego repozytorium GIT. Może jako forma taga, który powiązany jest z hashem SHA1 ostatniego 'commit'. + +Każdy klon mógłby posiadać taki licznik, jednak byłby on prawdopodobnie bezużyteczny, ponieważ tylko licznik centralnego repozytoriom ma znaczenie. + +=== Puste katalogi === + +Nie ma możliwości wersjonowania pustych katalogów. Aby obejść ten problem wystarczy utworzyć w takim katalogu plik dummy. + +To raczej obecna implementacja Git, a mniej jego konstrukcja, jest odpowiedzialna za to wadę. Przy odrobinie szczęścia, jeśli Git jeszcze bardziej sie upowszechni i więcej użytkowników żądać będzie tej funkcji, to jest być może zostanie dodana. + +=== Pierwszy 'commit' === + +Stereotypowegy informatyk liczy od 0 zamiast 1. Niestety, w kwestii 'commits' GIT nie podąża za tą konwencją. Wiele komend zachowuje sie zgrzędliwie przed wykonaniem pierwszego 'commit'. Dodatkowo, różnego rodzaju krańcowe przypadki muszą być traktowane specjalnie, jak 'rebase' dla 'branch' o różniącym sie pierwszym 'commit'. + +Git zyskałby na zdefiniowaniu tzw 0-'commit' zaraz po zainicjowaniu repozytorium 'HEAD' zostałby ustawiony na 20 bajtow hash Ten specjalny 'commit' reprezentuje puste drzewo, bez rodziców, być może pradziad wszystkich repozytorii + +Jeśli na przykład użytkownik wykonałby polecenie *git log*, zostałby poinformowany, że nie istnieje jeszcze żaden 'commit', gdzie w obecnym miejscu komenda wywoła błąd. Reprezentuje to również wszystkie inne polecenia. + +Każdy inicjujący 'commit' byłby pochodną tego zerowego 'commit'. + +Niestety występuje jeszcze kilka innych problemów. Jeśli chcemy scalić kilka 'branches' o różniących sie inicjalnych 'commits' i przeprowadzić 'rebase', musimy ręcznie ingerować. + +=== Charakterystyka zastosowania === + +Dla 'commits' A i B, znaczenie wyrażeń "A..B" i "A...B" zależy od tego, czy polecenie oczekuje dwóch punktów końcowych, czy zakresu. Sprawdź *git help diff* i *git help rev-parse*. \ No newline at end of file diff --git a/pl/omegat-tmp/target/grandmaster.txt b/pl/omegat-tmp/target/grandmaster.txt new file mode 100644 index 0000000..1398790 --- /dev/null +++ b/pl/omegat-tmp/target/grandmaster.txt @@ -0,0 +1,172 @@ +== Git dla zaawansowanych == + +W międzyczasie powinieneś umieć odnaleźć się na stronach *git help* i potrafić większość zrozumieć. Mimo to może okazać się dość mozolne odnalezienie odpowiedniej komendy dla rozwiązania pewnych zadań. Może uda mi się zaoszczędzić tobie trochę czasu: poniżej znajdziesz kilka recept, które były mi przydatne w przeszłości. + +=== +Publikowanie kodu źródłowego === + +Git zarządza w moich projektach dokładnie tymi danymi, które chcę archiwizować i dać do dyspozycji innym użytkownikom. Aby utworzyć archiwum tar kodu źródłowego, używam polecenia + +$ git archive --format=tar --prefix=proj-1.2.3/ HEAD + +=== Zmiany 'commit' === + +Powiadomienie GIT o dodaniu, skasowaniu czy zmianie nazwy plików może okazać sie przy niektórych projektach dość uciążliwą pracą. Zamiast tego można skorzystać z: + +$ git add . $ git add -u + +Git przyjży się danym w aktualnym katalogu i odpracuje sam szczegóły. Zamiast tego drugiego polecenia możemy użyć `git commit -a`, jeśli i tak mamy zamiar przeprowadzić 'comitt'. Sprawdź też *git help ignore*, by dowiedzieć się jak zdefiniować dane, króre powinny być ignorowane. + +Można to także wykonać za jednyym zamachem: + +$ git ls-files -d -m -o -z | xargs -0 git update-index --add --remove + +Opcje *-z* i *-0* zapobiegą przed niechcianymi efektmi ubocznymi przed niestandardowymi znakami w nazwach plików Ale ponieważ to polecenie dodaje również pliki które powinny być zignorowane, można dodać do niego jeszcze opcje `-x` albo `-X` + +=== Mój 'commit' jest za duży! === + +Od dłuższego czasu nie pamiętałeś o wykonaniu 'commit'? Tak namiętnie programowałeś, że zupełnie zapomniałeś o zarządzeniem kodu źródłowego? Przeprowadzasz serię niezależnych zmian, bo jest to w twoim stylu? + +Nie ma sprawy, wpisz polecenie: + +$ git add -p + +Dla każdej zmiany, której dokonałeś GIT pokaże ci pasaże z kodem, który uległ zmianom i spyta cię, czy mają zostać częścią następnego 'commit'. Odpowiedz po prostu "y" dla tak, albo "n" dla nie. Dysponujesz jeszcze innymi opcjami, na przykład dla odłożenie w czasie decyzji; naciśnij "?" by dowiedzieć się więcej. + +Jeśli jesteś zadowolony z wyniku, wpisz: + +$ git commit + +by dokładnie przez ciebie wybrane zmiany 'commit' (zainscenizowane zmiany) Uważaj tylko, by nie skorzystać z opcji *-a*, ponieważ wtedy git dokona 'commit' zawierający wszystkie zmiany. + +A co, jeśli pracowałeś nad wieloma danymi w wielu różnych miejscach? Sprawdzenie każdej danej z osobna jest frustrujące i męczące zarówno. W takim wypadku skorzystaj z *git add -i*, obsługa tego polecenia może nie jest zbyt łatwa, zato jednak bardzo elastyczna. Kilkoma naciśnięciami klawiszy możesz wiele zmienionych plików dodać ('stage') albo usunąć z 'commit' ('unstage'), jak również sprawdzić, czy dodać poszczególne dane. Alternaywnie możesz skorzystać z *git commit \--interactive*, polecenie to wykona automatycznie 'commit' gdy skończysz. + +=== Index: ruszkowanie gita === + +Do tej pory staraliśmy się omijać sławny 'index' GIT, jednak przyszedł czas się nim zająć, aby wyjaśnić wszystko to co poznaliśmy do tej pory. Index jest tymczasowym rusztowaniem Git rzadko wymienia dane bezpośrednio między twoim projektem a swoją historią wersji. Raczej zapisuje on dane najżierw w indexie, dopiero po tym kopiuje dane z indexu na ich właściwe miejsce przeznaczenia. + +na przykład polecenie *commit -a* jest właściwie procesem dwustopniowym. Pierwszy krok to stworzenie zrzutu bieżącego statusu każdego monitorowanego pliku w indeksie. Drugim krokiem jest trwałe zapamiętanie zrzutu, który znajduje się w index. Wykonanie 'commit' bez opcji *-a* wykona jedynie drugi wspomniany krok i ma jedynie sens, jeśli poprzednio wykonano komendę, która dokonała zmian w indexie, na przykład *git add*. + +Normalnie możemy ignorować indeks i udawać, że czytamy bezpośrednio z historii wersji lub do niej zapisujemy. W tym wypadku chcemy posiadać jednak większą kontrolę, więc manipulujemy index. Tworzymy obraz niektórych, jednak nie wszystkich zmian w indeksie i zapamiętujemy trwale starannie dobrany obraz. + +=== Nie trać głowy === + +Identyfikator 'HEAD' zachowuje się jak kursor, który zwykle wskazuje na najmłodszy 'commit' i z każdym nowym 'commit' zostaje przesunięty. Niektóre komendy git pozwolą ci nim manipulować. Na przyklad: + +$ git reset HEAD~3 + +przesunie identyfikator 'HEAD' o 3 'commits' spowrotem. Spowoduje to, że wszystkie następne komendy GIT będą reagować, jakby tych trzech ostatnich 'commits' wogóle nie było, podczas gdy twoje dane nie zmienią się. Na stronach pomocy git znajdziesz więcej zasosowań. + +Ale jak teraz wrócić znów do przyszłości? Poprzednie 'commits' nic nie wiedzą o jej istnieniu. + +Jeśli posiadasz klucz SHA1 orginalnego 'HEAD', wtedy możesz wrócić komendą: + +$ git reset 1b6d + +Wyobraź jednak sobie, że nigdy go nie notowałeś? Nie ma sprawy: Przy wykonywaniu takich poleceń GIT archiwizuje orginalny HEAD jako indentyfikator o nazwie ORIG_HEAD a ty możesz bezproblemowo wrócić używając: + +$ git reset ORIG_HEAD + +=== Łowcy głów === + +Może się zdarzyć, że ORIG_HEAD nie wystarczy. Może właśnie spostrzegłeś, iż dokonałeś kapitalnego błędu i musisz wrócić się do przestarego 'commit' w zapomnianym 'branch'. + +Standardowo GIT zapamiętuje 'commit' przez przynajmniej 2 tygodnie, nawet jeśli poleciłeś zniszczyć 'branch' w którym istniał. Problemem staje się tutaj odnalezienie odpowieniego klucza SHA1. Możesz po kolei testować wszystkie klucze SHA1 w `.git/objects` i w ten sposób próbować odnaleźć szukany 'commit' Istnieje jednak dużo prostszy sposób. + +Git zapamiętuje każdy obliczony klucz SHA1 dla odpowiednich 'commit' w `.git/logs` Podkatalog `refs` zawieza przebiek wszystkich aktywności we wszystkich 'branches', podczas gdy `HEAD` wszystkie klucze SHA1 które kiedykolwiek posiadały ten opis. Ostatnie możemy zastosować do odnalezienia kluczy SHA1 tych 'commits' które znajdowały się w nieuważnie usuniętym 'branch'. + +Polecenie 'reflog' daje nam do dyspozycji przyjazny interfejs do tych właśnie logów. Wypróbuj polecenie: + +$ git reflog + +Zamiast kopiować i wklejać klucze z 'reflog', możesz: + +$ git checkout "@{10 minutes ago}" + +Albo przywołaj 5 ostatnich 'commits' za pomocą: + +$ git checkout "@{5}" + +Jeśli chciałbyś pogłębić wiedze na ten temat przeczytaj sekcję ``specifying revisions`` w *git help rev-parse*. + +Byś może zechcesz zmienić czas łaski dla pogrzebanych 'commits'. Na przyklad: + +$ git config gc.pruneexpire "30 days" + +znaczy, że skasowany 'commit' zostanie nieuchronnie wykasowany dopiero po 30 dniach od wykonania polecenia *git gc*. + +Jeśli chcałbyś zapobiec automatyycznemu wykonywaniu *git gc*: + +$ git config gc.auto 0 + +wtedy 'commits' będą tylko wtedy usuwane, gdy wykonasz ręcznie polecenie *git gc*. + +=== Budować na git === + +W prawdziwym świecie UNIX konstrukcja GIT pozwala, iż w prosty sposób, jako komponent niskiego poziomu, może być wykorzystywany przez inne aplikacje, jak na przykład interfejsy graficzne i aplikacje internetowe, alternatywne narzędzia konsoli, narzędzia patchujące, narzędzia pomocne w importowaniu i konwertowaniu i tak dalej. Nawek same polecenia git są czasami malutkimi skryptami, jak krasnoludki na ramieniu olbrzyma. Przykładając trochę ręki możesz adoptować git do twoich własnych potrzeb. + +Prostą sztuczką może być korzystanie z zintegrowanej w git funkcji aliasu, by skrócić najczęściej stosowane polecenia: + +$ git config --global alias.co checkout $ git config --global --get-regexp alias # display current aliases alias.co checkout $ git co foo # same as 'git checkout foo' + +Czymś troszeczkę innym będzie nazwa aktualnego 'branch' w prompcie lub jako nazwa okna. Polecenie: + +$ git symbolic-ref HEAD + +pokaże nazwę aktualnego 'branch'. W praktyce chciałbyś raczej usunąć "refs/heads/" i ignorować błędy: + +$ git symbolic-ref HEAD 2> /dev/null | cut -b 12- + +Podkatakog +contrib+ jest wielkim znaleziskiem narzędzi zbudowanych dla git. Z czasem niektóre z nich mogą uzyskać status oficjalnych poleceń. W dystrybucji debian i ubuntu znajdziemy ten katalog pod +/usr/share/doc/git-core/contrib+. + +Ulubionym przedstawicielem jest +workdir/git-new-workdir+. Poprzez sprytne przelinkowania skrypt ten tworzy nowy katalog roboczy, który dzieli swoją historię wersji z orginalnym repozytorium: + +$ git-new-workdir ein/istniejacy/repo nowy/katalog + +Ten nowy katalog i znajdujące się w nim pliki można sobie wyobrazić jako klon, z tą różnicą, że ze względu na wspólną niepodzieloną historie obje wersje pozostaną zsynchronizowane. Synchronizacja za pomocą 'merge', 'push', czy 'pull' nie będzie konieczna. + +=== Śmiałe wyczyny === + +Obecnie git dość dobrze chroni użytkownika przed przypadkowym zniszczeniem danych. Ale, jeśli wiemy co robić, możemy obejść środki ochrony najczęściej stosowanych poleceń. + +*Checkout*: nie wersjonowane zmiany doprowadzą do niepowodzenia polecenia 'checkout'. Aby mimo tego zniszczyć zmiany i przywołać istniejący 'commit', możemy skorzystać z opcji 'force': + +$ git checkout -f HEAD^ + +Jeśli poleceniu 'checkout' podamy inną ścieżkę, środki ochrony nie znajdą zastosowania. Podana ścieżka zostanie bez pytania zastąpiona. Bądź ostrożny stosując 'checkout' w ten sposób. + +*reset*: reset odmówi pracy, jeśli znajdzie niewersjonowane zmiany. By zmusić dgo do tego, możesz użyć: + +$ git reset --hard 1b6d + +*Branch*: Skasowanie 'branches' też się nie powiedzie, jeśli mogłyby przez to zostać utracone zmiany. By wymusić skasowanie, podaj: + +$ git branch -D dead_branch # zamiast -d + +Również nie uda się próba przesunięcia 'branch' poleceniem 'move', jeśliby miałoby to oznaczać utratę danych. By wymusić przesunięcie, podaj: + +git branch -M zrodlo cel # zamiast -m + +Inaczej niż w przypadku 'checkout' i 'reset', te oba polecenia przesuną zniszczenie danych. Zmiany te zostaną zapisane w podkatalogu .git i mogą znów zostać przywrócone, jeśli znajdziemy odpowiedni kluch SHA1 w `.git/logs` (zobacz "Łowcy głów" powyżej). Standardowo dane te pozostają jeszcze przez 2 tygodnie. + +*clean*: różnorakie polecenia git nie chcą się powieźć, ponieważ podejżewają konflikty z niewersjonowanymi danymi. Jeśli jesteś pewny, że wszystkie niezwersjonowane pliki i katalogi są zbędne, skasujesz je bezlitośnie poleceniem: + +$ git clean -f -d + +Następnym razem te uciążliwe polecenia zaczną znów być posłuszne. + +=== Zapobiegaj złym 'commits' === + +Głupie błędy zaśmiecają moje repozytoria. Najbardziej fatalny jest brak plików spowodu zapomnianych *git add*. Mniejszymi usterkami mogą być spacje na końcu linii i nierozwiązane konflikty poleceń 'merge': mimo iż nie są groźne, życzyłbym sobie, by nigdy nie wystąpiły publicznie. + +Gdybym tylko zabezpieczył się, stosując prosty _hook_, który alarmowałby przy takich problemach. + +$ cd .git/hooks $ cp pre-commit.sample pre-commit # Older Git versions: chmod +x pre-commit + +I już 'commit' przerywa, jeśli odkryje niepotrzebne spacje na końcu linii albo nierozwiązane konflikty 'merge'. + +Na początku *pre-commit* tego 'hook' umieściłbym dla ochrony przed rozdrobnieniem: + +if git ls-files -o | grep '\.txt$'; then echo FAIL! untracket.txt files. exit 1 fi + +Wiele z operacji git pozwala na używanie 'hooks'; zobacz też: *git help hooks*. We wcześniejszcm rozdziale "git poprzez http" przytoczyliśmy przykład 'hook' dla *post-update*, który wykonywany jest zawsze, jeśli znacznik 'HEAD' zostaje przesunięty. Ten przykładowy 'post-update' skrypt aktualizuje dane, które potrzebne są do komunikacji poprzez 'Git-agnostic transports', jak na przykład HTTP. \ No newline at end of file diff --git a/pl/omegat-tmp/target/history.txt b/pl/omegat-tmp/target/history.txt new file mode 100644 index 0000000..a0ebe43 --- /dev/null +++ b/pl/omegat-tmp/target/history.txt @@ -0,0 +1,142 @@ +== Lekcja historii == + +Jedną z charakterystycznych cech podzielnej natury git jest to, że jego kronika historii może być zmieniana. Ale jeśli masz zamiar manipulować przeszłpścią, bądź ostrożny: zmieniaj tylko tą część historii, którą wyłącznie jedynie ty sam posiadasz. Tak samo jak Narody ciągle dyskutują, który jakie popełnił okrucieństwa, popadniesz w kłopoty przy synchronizacji, jeśli ktoś inny posiada klon z różniącą się historią i jeśli te odgałęzienia mają sie wymieniać. + +Niektórzy programiści zarzekają sie w kwestii nienaruszalności historii - ze wszystkimi jej błędami in niedociągnięciami. Inni uważają, ze odgałęzienia powinny dobrze się prezenotować nim zostaną przedstawione publicznie. Git jest wyrozumiały dla oby dwuch stron. Tak samo jak 'clone', 'branche' czy 'merge', możliwość zmian korniki historii to tylko kolejna siła, jaką obdarza cię git. Stosowanie tej możliwości zależy od ciebie + +=== Wycofuję wszystko co na ten temat powiedziałem. === + +Właśnie wykonałeś 'commit', ale chętnie chciałbyś podać inny opis? Wpisujesz: + +$ git commit --amend + +by zmienić ostatni opis. Zauważasu, że zapomniałeś dodać jakiegoś pliku? Wykonak *git add*, by go dodać a następnie poprzedzającą instrukcje. + +Chcesz wprowadzić jeszcze inne zmiany do ostatniego 'commit'? Wykonaj je i wpisz: + +$ git commit --amend -a + +=== ... i tak dalej. === + +Możemy teraz założyć, że poprzedni problem będzie 10 razy gorszy. Po dłuższej sesji zrobiłeś całą masę 'commits'. Nie jesteś jednak szczęśliwy z takiego zorganizowania a niektóre z 'commits' mogłyby być inaczej sformuowane. Wpisujesz: + +$ git rebase -i HEAD~10 + +i ostatnie 10 'commits' pojawią się w preferowanym przez ciebie edytorze. Przykładowy wyciąg: + +pick 5c6eb73 Link repo.or.cz dodany pick a311a64 zreorganizowano analogie w "Pracuj jak ci sie podoba" pick 100834f dodano cel do Makefile + +Wtedy: + +- usuń 'commits' poprzez skasowanie lini. - przeorganizuj 'commits' przesuwając linie. - zamień `pick` na: * `edit` by zaznaczyć 'commit' do 'amends'. * `reword`, by zmienić opisy logu. * `squash` by połączyć 'commit' z poprzednim ('merge'). * `fixup` by połączyć 'commit' z poprzednim ('merge') i usunąć zapisy z logu. + +Zapamietaj i zakończ. Jeśli zaznaczyłeś jakiś 'commit' poprzez 'edit', wpisz: + +$ git commit --amend + +W przeciwnym razie: + +$ git rebase --continue + +A więc, stosuj polecenie 'commit' wcześnie i często: możesz później posprzątać za pomocą 'rebase'. + +=== Końcowe lokalne zmian === + +Pracujesz nad aktywnym projektem. Z biegiem czasu nagromadziła się wiele 'commits' i wtedy za pomocą 'merge' z oficjalną gałęzią. Ten cykl powtarza się kilka razy zanim jesteś gotowy na 'push' do centralnego drzewa. + +Teraz jednak historia w twoim lokalnym klonie jest chaotychnym pomieszaniem twoich zmian i zmian z oficjalnego drzewa. Chciałbyś raczej widzieć twoje zmiany uporządkowane chronologichnie w jednej sekcji i za oficjalnymi zmianami. + +To zadanie dla *git rebase*, jak wyżej opisane. W wielu przypadkach możesz skorzystać z przełącznika *--onto* by zapobiec interakcji. + +Przeczytaj też *git help rebase* dla zapoznania sie z obszernymi przykładami tej zadziwiającej funkcji. Możesz również podzielć 'commits'. Możesz nawet przeorganizować 'branches' w repozytorium. + +=== Przepisanie historii === + +Czasami potrzebny ci rodzaj systemu zarządzania porównywalnego do wyretuszowania osób z oficjalnego zdjęcia, by w stalinistowski sposób wymazać je z historii. Wyobraź sobie, że chcesz opublikować projekt, jednak zawiera on pewny plik, który z jakiegoś powodu musi pozostać prywatnym. Być może zapisałem numer karty kredytowej w danej tekstowej i nieumyślnie dodałem do projektu? Skasowanie tej danej nie ma sensu, ponieważ poprzez starsze 'commits' można nadal ją przywołać. Musimy ten plik usunąć ze wszystkich 'commits': + +$ git filter-branch --tree-filter 'rm bardzo/tajny/plik' HEAD + +Sprawdź *git help filter-branch*, gdzie przykład ten został wytłumaczony i przytoczona została jeszcze szybsza metoda. Ogólnie poprzez *filter-branch* da się dokonać zmian w dużych zakresach historii poprzez tylko jedno polecenie. + +Po tej operacji katalog +.git/refs/original+ opisuje stan przed jej wykonaniem. Sprawdź czy 'filter-branch' zrobił to, co od niego oczekiwałeś, następnie skasuj ten katalog zanim wykonasz następne polecenia 'filter-branch'. + +Wreszcie zamień wszystkie klony twojego projektu na zaktualizowaną wersję, jeśli masz zamiar prowadzić z nimi wymianę. + +=== Tworzyć historię === + +[[makinghistory]] Masz zamiar przenieść projekt do git? Jeśli twój projekt był dotychczas zarządzany jednym z bardziej znanch systemów, to istnieje duże prawdopodobieństwo, że ktoś napisał już odpowiedni skrypt, który umożliwi ci eksportowanie do git całej historii. + +W innym razie przyjrzyj się funkcji *git fast-import*, która wczytuje tekst w specjalnym formacie by następnie odtworzyć całą historię od początku. Często taki skrypt pisany jest pośpiesznie i służy do jednorazowego wykorzystania, aby tylko w jednym przebiegu udało się migracja projektu. + +Utwórz na przykład z następującej listy tymczasowy plik, na przykład: `/tmp/history`: ---------------------------------- commit refs/heads/master committer Alice Thu, 01 Jan 1970 00:00:00 +0000 data < + +int main() { printf("Hallo, Welt!\n"); return 0; } EOT + + +commit refs/heads/master committer Bob Tue, 14 Mar 2000 01:59:26 -0800 data < + +nt main() { write(1, "Hallo, Welt!\n", 14); return 0; } EOT + +---------------------------------- + +Następnie utwórz repozytorium git z tymczasowego pliku poprzez wpisanie: + +$ mkdir project; cd project; git init $ git fast-import --date-format=rfc2822 < /tmp/history + +Aktualną wersję projektu możesz przywołać ('checkout') poprzez: + +$ git checkout master + +Polecenie *git fast-export* konwertuje każde repozytorium do formatu *git fast-import*, możesz przestudiować komunikaty tego polecenia, jeśli masz zamiar napisaś programy eksportujące a oprócz tego, by przekazywać repozytoria jako zwykłe pliki tekstowe. Na prawdę, to polecenie potrafi przekazywać repozytoria za pomocą zwykłego tekstu. + +=== Gdzie wszystko poszło źle? === + +Właśnie znalazłeś w swoim programie funkcję, która już nie chce działać, a jesteś pewna, że czyniła to jeszcze kilka miesięcy temu. Och! Skąd wziął się ten błąd? A gdybyś tylko lepiej przetestował ją wcześniej, zanim weszła do wersji produkcyjnej. + +Na to jest już za późno. Jakby nie było, pod warunkiem, że często używałeś 'commit', git może ci zdradzić gdzie szukać problemu. + +$ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d + +Git przywoła stan, który leży dokładnie pośrodku. Przetestuj funkcję, a jeśli ciągle jeszcze nie funkcjonuje: + + +$ git bisect bad + +Jeśli nie, zamień "bad" na "good". Git przeniesie cię znowu do stanu dokładnie pomiędzy znanymi wersjami "good" a "bad" i w ten sposób redukuje możliwości. Po kilku przejściach doprowadzą cię te poszukiwania do 'commit', który jest odpowiedzialny za kłopoty. Po skończeniu dochodzenia przejdź do orginalnego stanu: + +$ git bisect reset + +Zamiast sprawdzania zmian ręcznie, możesz zautomatyzowć poszukiwania za pomocą skryptu: + +$ git bisect run moj_skrypt + +Git korzysta tutaj z wartości zwróconej przez skrypt, by ocenić czy zmiana jest dobra ('good'), czy zła ('bad'): Skrypt powinien zwracać 0 dla 'good', 128, jeśli zmiana powinna być pominięta, i coś pomiędzy 1 - 127 dla 'bad'. Jeśli wartość zwrócona jest ujemna, program 'bisect' przerywa pracę. + +Możesz robić jeszcze dużo innych rzeczy: w pomocy znajdziesz w jaki sposób wizualizować działania 'bisect', które .............. + +=== Kto ponosi odpowiedzialność? === + +Jak i wiele innych systemów kontroli wersji posiada również i git polecenie 'blame'. + +$ git blame bug.c + +które komentuje każdą linię podanego pliku, by pokazać kto ją ostatnio zmieniał i kiedy. W przeciwieństwie do wielu innych systemów, funkcja ta działa offline, czytane jest tylko z lokalnego dysku. + +=== Osobiste doświadczenia === + +W scentralizowanym systemie kontroli wersji praca nad kroniką historii jest skomplikowanym zadaniem i zarezerwowanym głównie dla administratorom. Polecenia 'clone', 'branche' czy 'merge' nie są możliwe bez podłączenia do sieci. Również takie podstawowe funkcje, jak przeszukanie historii czy 'commit' jakiejś zmiany. W niektórych systemach użytkownik potrzebuje działającej sieci nawet by zobaczyć przez siebie dokonane zmiany, albo by wogóle otworzyć plik do edycji. + +Scentralizowane systemy wykluczają pracę offline i wymagają drogiej infrastruktura sieciowej, w szczególności gdy wzrasta liczba programistów. Najważniejsze jednak, że po z czasem wszystkie operacje stają się wolniejsze, z regóły do osiągnięcia punktu, gdzie użytkownicy unikają dodatkowych poleceń, aż staną się one absolutnie konieczne. W ekstremalnych przypadkach dotyczy to również poleceń podstawowych. Jeśli użytkownicy są zmuszeni do wykonywania powolnych poleceń, produktywność spada, ponieważ przerywany zostaje ciąg pracy. + +Dowiedziałem się o tym fenomenie z pierwszej ręki. Git był pierwszym systemem kontroli wersji którego używałem. Szybko dorosłem do tej aplikacji i przyjąłem wiele funkcji za oczywiste. Wychodziłem też z założenia, że inne systemy są podobne: wybór systemu kontroli wersji nie powinien zbyt bardzo odbiegać od wyboru edytora tekstu, czy przeglądarki internetowej. + +Byłem zszokowany, gdy musiałem później korzystać ze scentralizowanego systemu. Niesolidne połączenie internetowe ma niezbyt duży wpływ na git, praca staje się jednak prawie nie możliwa, gdy wymagana jest niezawodność porównywalny z lokalnym dyskiem. Pozatym sam łapałem sie na tym, że unikałem pewnych poleceń i związanym z nimi czasem oczekiwania, w sumie wszystko to wpływało mocno na wypracowany przeze mnie przebieg prac. + +Gdy musiałem wykonywać powolne polecenia, z powodu ciągłego przerywanie toku myślenia, zadawałem nieporównywalne szkody dla całego przebiegu pracy. Podczas oczekiwania na zakończenie komunikacji pomiędzy serwerami dla przeczekania zaczynałem robiłć coś innego, na przykład czytałem maile albo pisałem dokumentację. Gdy wracałem do poprzedniego zajęcia, po zakończeniu komunikacji, dawno straciłem wątek i czas by przypomnieć sobie co właściwie chciałem zrobić. Ludzie nie potrafią dobrze dostosować się do częstej zmiany kontekstu. + +Był też taki ciekawy efekt http://pl.wikipedia.org/wiki/Tragedia_wsp%C3%B3lnego_pastwiska[tragedii-wspólnego-pastwiska]: przypominający przeciążenia w sieci - pojedyńcze indywidua pochłaniają więcej pojemności sieci niż to konieczne, by uchronić się przed mogącymi ewentualnie wystąpić w przyszłości niedoborami. Suma tych starań pogarsza tylko przeciążenia, co motywuje jednostki do zużywania jeszcze większych zasobów, by ochronić się przed jeszcze dłuższymi czasami ozekiwania. \ No newline at end of file diff --git a/pl/omegat-tmp/target/intro.txt b/pl/omegat-tmp/target/intro.txt new file mode 100644 index 0000000..54e5224 --- /dev/null +++ b/pl/omegat-tmp/target/intro.txt @@ -0,0 +1,57 @@ +== Wprowadzenie == + +By wprowadzić w zagadnienie zarządzania wersją, posłużę się pewną analogią. Dla bardziej rozsądnego wyjaśnienia przeczytajcie http://pl.wikipedia.org/wiki/System_kontroli_wersji[Artykół Wikipedii na temat systemu kontroli wersji]. + +=== Praca jest zabawą === + +Gram w gry komputerowe przez całe moje życie. W przeciwieństwie do tego, systemy kontroli wersji zacząłem używać dopiero jako dorosły. Przypuszczam, że nie jestem tu w odosobnieniu, a porównanie to pomoże mi w prosty sposób ten konzept wytłumaczyć i zrozumieć. + +Wyobraź sobie pracę nad twoim kodem albo dokumentami jak granie na komputerze. Jeśli dobrze ci poszło, chciałabyś zabezpieczyć to co udało ci się osiągnąć. W tym celu klikasz na 'zapisz' w wybranym edytorze. + +Jednak, przepisze to poprzednią wersję. To jak w grach starej szkoły, które posiadały pamięć na zapisanie tylko jednego stanu: oczywiście, mogłeś zapamiętać, ale nigdy nie mogłeś wrócic do starszego stanu. To była hańba, bo być może poprzednio zabezpieczony stan był w jakimś bardzo interesującym miejscu gry, do którego chętnie chciałbyś jeszcze wrócić. Albo jeszcze gorzej, twój zabezpieczony stan utknął w miejsu nie do rozwiązania i musisz zaczynać wszystko od początku. + +=== Kontrola wersji === + +Podczas edytowania, by uchronić starą wersję, możesz poprzez wybranie 'zapisz jako ...' zapisać twój dokument pod inną nazwą lub zapamiętać w innym miejscu. Poza tym możesz je jeszcze spakować, by zaoszczędzić miejsce na dysku. Jest to prymitywna i pracochłonna forma kontroli wersji. Gry komputerowe robią tak już od długiego czasu, wiele z nich posiada automatycznie utworzone punkty opatrzone sygnaturą czasu. + +Skomplikujmy teraz trochę cały ten problem. Powiedzmy, że posiadasz całą masę plików, które w jakiś sposób są ze sobą powiązane, na przykład kod źródłowy jakiegoś projektu lub pliki strony internetowej. Jeśli chcesz otrzymać starszą wersję musisz archiwizować cały katalog. Archiwizowanie w ten sposób wielu wersji jest pracochłonne i szybko może stać się kosztowne. + +Niektóre gry komputerowe składały sie rzeczywiście z jednego katalogu pełnego plików. Gry ukrywały szczegóły przed graczem i prezentowały wygodny interfejs, do zarządzania różnymi wersjami katalogu. + +Systemy kontroli wersji nie różnią się tutaj zbytnio. Wszystkie posiadają wygodne interfejsy, aby zarządzać katalogami pełnymi plików. Możesz archiwizować stan katalogu tak często jak często chcesz i później możesz do każdego z tych punktów powrócić. W przeciwieństwie jednak do gier, są one z regóły wszystkie zoptymalizowane pod kątem oszczędności pamięci. W więlszości przypadków tylko niewiele danych ulega zmianie pomiędzy dwoma wersjami, a same zmiany nie są zbyt obszerne. Oszczędność miejsca na dysku polega głównie na zapamiętywaniu jedynie różnic, a nie kopii całego pliku. + +=== Rozproszona kontrola === + +Wyobraź sobie teraz bardzo skomplikowaną grę komputerową. Tak trudną, że wielu doświadczonych graczy na całym świecie postanawia o współnych siłach przejść grę, wymieniając się w tym celu swoimi zapamiętanymi wynikami. 'Speedruns' mogą posłużyć jako przykład z prawdziwego życia: gracze, którzy wyspecjalizowali się w różnych poziomach gry współpracują ze sobą dla uzyskania fascynujących wyników. + +W jaki sposób skonstruowałbyś taki system, który w prosty sposób jest w stanie otrzymywać archiwa od innych? Natomiast własne innym udostępni? + +Kiedyś każdy projekt korzystał z własnego scentralizowanego systemu kontroli wersji. Jeden serwer zapamiętywał wszystkie gry, nikt inny. Każdy gracz posiadał jedynie kilka zapamiętanych na swoim komputerze gier. Jeśli jakiś gracz chciał popchać grę trochę do przodu, musiał najpierw zładować ze serwera aktualny stan, trochę pograć, zapisać własny stan, a następnie załadować na serwer, by mógł go wykorzystać ktoś inny. + +A gdy jakiś gracz z jakiegoś powodu chce otrzymać jakiś starszy stan? Może aktualnie zapamiętany stan gry nie jest do przejścia, bo ktoś na trzecim poziomie zapomniał zabrać jakiś objekt, i teraz próbują znaleźć stan startując od którego gra staje się znowu możliwa do przejścia. Albo chcecie porównać dwa stany, by sprawdzić ile jakiś gracz przyczynił się. + +Jest wiele powodów, dla których można chcieć zobaczyć straszy stan, wynik jednak jest zawsze taki sam. Za każdym razem trzeba ściągnąć wszystkie dane z serwera. Czym więcej gier zostało zapamiętanych, tym więcej wymaga to komunikacji. + +Nowa generacja systemów kontroli wersji, do których należy również git, nazywana jest systemami rozproszonymi i mogą być rozumiane jako uogólnienie systemów scentralizowanych. Jeśli gracze ładują teraz z serwera, otrzymują każdy zapisany stan, nie tylko ostatnio zapisany Wygląda to jak klonowanie serwera. + +Pierwszy klon może być drogi, przede wszystkim, jeśli posiada długą historię, ale na dłuższy okres opłaci się. Jedną z bezpośrednich zalet jest to, że gdykolwiek potrzebny będzie jakiś starszy stan, komunikacja z głównym serwerem będzie zbędna. + +=== Głupi przesąd === + +Szeroko rozpowszechnianym nieporozumieniem jest opinia, że rozproszony system nie nadaje się dla projektów wymagających oficjalnego centralnego repozytorium. Nic nie jest bardziej oddalone od rzeczywistości. Fotografując kogoś nie kradziemy jego duszy. Tym samym klonowanie centralnego repozytorium nie umniejsza jego znaczenia. + +Jednym z pierszych pozytywnych zbliżeń, jest to, iż wszystko co potrafi scentralizowany system kontroli wersji, dobrze dopracowany system rozproszony potrafi lepiej. Zasoby sieciowe są po prostu droższe niż zasoby lokalne. Również, gdy w późniejszym czasie dostrzeżemy wady systemów rozproszonych, można to przyjąć jako ogólną zasade mniej podatną na złe porównania. + +Mały projekt wykorzysta prawdopodobnie tylko ułamek możliwości systemu. Ale, by z tego powodu korzystać z prostego systemu, nie posiadającego możliwości rozszerzenia, to tak jak stosowanie rzymskich cyfr do przeprowadzania obliczeń na małych liczbach. + +Poza tym może sie zdarzyć, że twój projekt daleko przerośnie początkowe oczekiwania. Używając git od samego początku, to jak noszenie ze sobą scyzoryka szwajcarskiego, nawet gdy najczęściej posłuży do otwierania butelek. Być może pewnego dnia będziesz pilnie potrzebawała użyć śrubokrętu, ucieszysz się, że masz przy sobie coś więcej niż tylko zwykły otwieracz do butelek. + +=== Konflikty z 'merge' === + +Do przedstawienia tego punktu wykorzystanie analogii do gier komputerowych nie jest odpowiednia. Zamiast tego wyobraźmy sobie znowu, że edytujemy jakiś dokument. + +Wyobraź sobie, Alicja dodaje linijkę na początku dokunentu, natomiast Bob na jego końcu. Obydwoje ładują swoje zmiany na serwer. Większość systemów wybierze automatycznie rozsądną drogę: zaakceptuje obie zmiany i połączy je ze sobą, tym samym obje poprawki wpłyną do dokumentu. + +Wyobraź sobie jednak, że Alicja i Bob dokonują zmian w tej samej lini. W tym wypadku dalsze praca nie będzie możliwa bez ludzkiego udziału. Druga z osób, próbująca zładować dokument na serwer, zostanie poinformowana o wystąpieniu konfliktu 'merge' i musi zdecydować, która ze zmian zostanie przyjęta lub ponownie zrewidować całą linijkę. + +Mimo to mogą wystąpić dużo bardziej skomplikowane sytuacje. Systemy kontroli wersji potrafią poradzić sobie z prostymi przypadkami a te trudniejsze pozostawiają ludziom. Zazwyczaj ich zachowanie daje się ustawić. \ No newline at end of file diff --git a/pl/omegat-tmp/target/multiplayer.txt b/pl/omegat-tmp/target/multiplayer.txt new file mode 100644 index 0000000..2aec9c3 --- /dev/null +++ b/pl/omegat-tmp/target/multiplayer.txt @@ -0,0 +1,163 @@ +== Multiplayer Git == + +Na początku zastosowałem git przy prywatnym projekcie, gdzie byłem jedynym developerem. Z poleceń w związku z rozproszoną naturą git, potrzebowałem jedynie poleceń *pull* i *clone*, dzięki czemu mogłem trzymać ten sam projekt w kilku miejscach. + +Później chciałem opublikować mój kod za pomocą git i dołączyć zmiany kolegów Musiałem nauczyć się zarządzać projektami, nad którymi zaangażowani byli programiści z całego świata. Na szczęście jest to silną stroną git i chyba jego racją bytu. + +=== Kim jestem? === + +Każdy 'commit' otrzymuje nazwę i adres email autora, które zostaną pokazane w *git log*. Standardowo git korzysta z ustawień systemowych do wypełnienia tych pól. Aby wprowadzić te dane bezpośrednio, podaj: + +$ git config --global user.name "Jan Kowalski" $ git config --global user.email jan.kowalski@example.com + +Jeśli opóścisz przełącznik '--global' zmiany zostaną zastosowane wyłącznie do aktualnego repozytorium. + +=== Git przez SSH, HTTP === + +Załóżmy, posiadasz dostęp SSH do serwera stron internetowych, gdzie jednak git nie został zainstalowany. Nawet, jeśli jest to mniej efektywne jak własny protokół git, git potrafi komunikować się przez HTTP. + +Zładuj git, skompiluj i zainstaluj pod własnym kontem oraz utwórz repozytorium w twoim katalogu strony internetowej. + +$ GIT_DIR=proj.git git init $ cd proj.git $ git --bare update-server-info $ cp hooks/post-update.sample hooks/post-update + +Przy starszych wersjach git samo polecenie 'cp' nie będzie funkcjonować, wtedy musisz jeszcze: + +chmod a+x hooks/post-update + +Od teraz możesz publikować aktualizacje z każdego klonu poprzez SSH. + +$ git push web.server:/sciezka/do/proj.git master + +i każdy może teraz sklonować twój projekt przez: + +$ git clone http://web.server/proj.git + +=== Git ponad wszystko === + +Chciałbyś synchronizować repozytoria bez pomocy serwera czy nawet bez użycia sieci komputerowej? Musisz improwizować w nagłym wypadku? Widzieliśmym, że poleceniami <>. W ten sposób możemy transportować tego typu pliki za pomocą dowolnego medium, jednak bardziej wydajnym narzędziem jest *git bundle*. + +Nadawca tworzy 'bundle': + +$ git bundle create plik HEAD + +i transportuje 'bundle' +plik+ do innych zaangażowanych: przez email, stik-usb, *xxd* hexdump i skaner OCR, kod morse przez telefon, znaki dymne itd. Odbiorca wyciąga 'commits' z 'bundle' poprzez podanie: + + +$ git pull plik + +Odbiorca może to zrobić z pustym repozytorium. Mimo swojej wielkości +plik+ zawiera kompletny orginał repozytorium. + +W dużych projektach unikniesz śmieci danych, jeśli tylko zrobisz 'bundle' zmian brakujących w innych repozytoriach. Na przykład załóżmy, że 'commit' ``1b6d...'' jest najaktualniejszym, które posiadają obie partie: + + +$ git bundle create plik HEAD ^1b6d + +Jeśli robi się to regularnie, łatwo można zapomnieć, który 'commit' został wysłany ostatnio. Strony pomocy zalecają stosowanie tagów, by rozwiązać ten problem. To znaczy, po wysłaniu 'bundle', podaj: + +$ git tag -f ostatnibundle HEAD + +a nowy 'bundle' tworzymy następnie poprzez: + +$ git bundle create nowybundle HEAD ^ostatnibundle + +=== Patches: globalny środek płatniczy === + +'Patches' to jawne zobrazowanie twoich zmian, które mogą być jednocześnie rozumiane przez komputer i człowieka. Dodaje im to uniwersalnej mocy przyciągania. Możesz wysłać patch prowadzącym projekt, niezależnie od tego, jakiego używają systemu kontroli wersji. Doputy twoi współpracownicy potrafią czytać swoje maile, mogą widzieć również twoje zmiany. Również i z twojej strony wszystko, czego ci potrzeba to fukcjonujące konto mailowe: nie istnieje konieczność zakładania repozytorium online. + +Przypomnij sobie pierwszy rozdział: + +$ git diff 1b6d > moj.patch + +produkuje 'patch', który można dołączyć do maila dla dalszej dyskusji. W repozytorium git natomiast podajesz: + +$ git apply < moj.patch + +By zastosować patch. + +W bardziej oficjalnym środowisku, jeśli nawiska autorów i ich sygnatury powinny również być notowane, tworz 'patch' od pewnego punktu, po wpisaniu: + +git format-patch 1b6d + +Uzyskane w ten sposób dane mogą przekazane być do *git-send-mail* albo odręcznie wysłane. Możesz podać grupę 'commits' + +$ git format-patch 1b6d..HEAD^^ + +Po stronie odbiorcy zapamiętaj email jako daną i podaj: + +$ git am < email.txt + +Das wendet den eingegangenen 'Patch' an und erzeugt einen 'Commit', inklusive der Informationen wie z.B. den Autor. + +Mit einer Webmail Anwendung musst Du eventuell ein Button anklicken um die eMail in ihrem rohen Originalformat anzuzeigen, bevor Du den 'Patch' in eine Datei sicherst. + +Es gibt geringfügige Unterschiede bei mbox-basierten eMail Anwendungen, aber wenn Du eine davon benutzt, gehörst Du vermutlich zu der Gruppe Personen, die damit einfach umgehen können ohne Anleitungen zu lesen.! + +=== Entschuldigung, wir sind umgezogen. === + +Nach dem 'Clonen' eines 'Repositories', wird *git push* oder *git pull* automatisch auf die original URL zugreifen. Wie macht Git das? Das Geheimnis liegt in der Konfiguration, die beim 'Clonen' erzeugt wurde. Lasst uns einen Blick riskieren: + +$ git config --list + +Die +remote.origin.url+ Option kontrolliert die Quell-URL; ``origin'' ist der Spitzname, der dem Quell-'Repository' gegeben wurde. Wie mit der ``master'' 'Branch' Konvention können wir diesen Spitznamen ändern oder löschen, aber es gibt für gewöhnlich keinen Grund dies zu tun. + +Wenn das original 'Repository' verschoben wird, können wir die URL aktualisieren mit: + +$ git config remote.origin.url git://neue.url/proj.git + +Die +branch.master.merge+ Option definiert den Standard-Remote-'Branch' bei einem *git pull*. Während dem ursprünglichen 'clonen', wird sie auf den aktuellen 'Branch' des Quell-'Repository' gesetzt, so dass selbst dann, wenn der 'HEAD' des Quell-'Repository' inzwischen auf einen anderen 'Branch' gewechselt hat, ein späterer 'pull' wird treu dem original 'Branch' folgen. + +Diese Option gilt nur für das 'Repository', von dem als erstes 'gecloned' wurde, was in der Option +branch.master.remote+ hinterlegt ist. Bei einem 'pull' aus anderen 'Repositories' müssen wir explizit angeben, welchen 'Branch' wir wollen: + +$ git pull git://beispiel.com/anderes.git master + +Das obige erklärt, warum einige von unseren früheren 'push' und 'pull' Beispielen keine Argumente hatten. + +=== Entfernte 'Branches' === + +Wenn Du ein 'Repository' 'clonst', 'clonst' Du auch alle seine 'Branches'. Das hast Du vielleicht noch nicht bemerkt, denn Git versteckt diese: Du musst speziell danach fragen. Das verhindert, dass 'Branches' vom entfernten 'Repository' Deine lokalen 'Branches' stören und es macht Git einfacher für Anfänger. + +Zeige die entfernten 'Branches' an mit: + +$ git branch -r + +Du solltes etwas sehen wie: + +origin/HEAD origin/master origin/experimentell + +Diese Liste zeigt die 'Branches' und den HEAD des entfernten 'Repository', welche auch in regulären Git Anweisungen verwendet werden können. Zum Beispiel, angenommen Du hast viele 'Commits' gemacht und möchtest einen Vergleich zur letzten abgeholten Version machen. Du kannst die Logs nach dem entsprechenden SHA1 Hashwert durchsuchen, aber es ist viel einfacher folgendes einzugeben: + +$ git diff origin/HEAD + +Oder Du kannst schauen, was auf dem 'Branch' ``experimentell'' los war: + +$ git log origin/experimentell + +=== Mehrere 'Remotes' === + +Angenommen, zwei andere Entwickler arbeiten an Deinem Projekt und wir wollen beide im Auge behalten. Wir können mehr als ein 'Repository' gleichzeitig beobachten mit: + +$ git remote add other git://example.com/some_repo.git $ git pull other some_branch + +Nun haben wir einen 'Branch' vom zweiten 'Repository' eingebunden und wir haben einfachen Zugriff auf alle 'Branches' von allen 'Repositories': + +$ git diff origin/experimentell^ other/some_branch~5 + +Aber was, wenn wir nur deren Änderungen vergleichen wollen, ohne unsere eigene Arbeit zu beeinflussen? Mit anderen Worten, wir wollen ihre 'Branches' untersuchen ohne dass deren Änderungen in unser Arbeitsverzeichnis einfließen. Anstatt 'pull' benutzt Du dann: + +$ git fetch # Fetch vom origin, der Standard. $ git fetch other # Fetch vom zweiten Programmierer. + +Dies holt lediglich die Chroniken. Obwohl das Arbeitsverzeichnis unverändert bleibt, können wir nun jeden 'Branch' aus jedem 'Repository' in einer Git Anweisung referenzieren, da wir eine lokale Kopie besitzen. + +Erinnere Dich, dass ein 'Pull' hinter den Kulissen einfach ein *fetch* gefolgt von einem *merge* ist. Normalerweise machen wir einen *pull* weil wir die letzten 'Commits' abrufen und einbinden wollen. Die beschriebene Situation ist eine erwähnenswerte Ausnahme. + +Siehe *git help remote* um zu sehen wie man Remote-'Repositories' entfernt, bestimmte 'Branches' ignoriert und mehr. + +=== Meine Einstellungen === + +Für meine Projekte bevorzuge ich es, wenn Unterstützer 'Repositories' vorbereiten, von denen ich 'pullen' kann. Verschiedene Git Hosting Anbieter lassen Dich mit einem Klick deine eigene 'Fork' eines Projekts hosten. + +Nachdem ich einen Zweig abgerufen habe, benutze ich Git Anweisungen um durch die Änderungen zu navigieren und zu untersuchen, die idealerweise gut organisiert und dokumentiert sind. Ich 'merge' meine eigenen Änderungen und führe eventuell weitere Änderungen durch. Wenn ich zufrieden bin, 'pushe' ich in das zentrale 'Repository'. + +Obwohl ich nur unregelmäßig Beiträge erhalte, glaube ich, dass diese Methode sich auszahlt. Siehe http://torvalds-family.blogspot.com/2009/06/happiness-is-warm-scm.html[diesen Blog Beitrag von Linus Torvalds (englisch)]. + +In der Git Welt zu bleiben ist etwas bequemer als 'Patch'-Dateien, denn es erspart mir sie in Git 'Commits' zu konvertieren. Außerdem kümmert sich Git um die Details wie Autorname und eMail-Adresse, genauso wie um Datum und Uhrzeit und es fordert den Autor zum Beschreiben seiner eigenen Änderungen auf. \ No newline at end of file diff --git a/pl/omegat-tmp/target/preface.txt b/pl/omegat-tmp/target/preface.txt new file mode 100644 index 0000000..3ad1af5 --- /dev/null +++ b/pl/omegat-tmp/target/preface.txt @@ -0,0 +1,45 @@ += Git Magic = Ben Lynn August 2007 + +== Vorwort == + +http://git.or.cz/[Git] ist eine Art "Schweizer Taschenmesser" für Versionsverwaltung. Ein zuverlässiges, vielseitiges Mehrzweck-Versionsverwaltungswerkzeug, dessen außergewöhnliche Flexibilität es schwierig zu erlernen macht, ganz zu schweigen davon, es zu meistern. + +Wie Arthur C. Clarke festgestellt hat, ist jede hinreichend fortschrittliche Technologie nicht von Magie zu unterscheiden. Das ist ein großartiger Ansatz, um an Git heranzugehen: Anfänger können seine inneren Mechanismen ignorieren und Git als ein Ding ansehen, das mit seinen erstaunlichen Fähigkeiten Freunde verzückt und Gegner zur Weißglut bringt. + +Anstatt die Details aufzudecken, bieten wir grobe Anweisungen für die jeweiligen Funktionen. Bei regelmäßiger Anwendung wirst Du allmählich verstehen, wie die Tricks funktionieren und wie Du die Rezepte auf Deinen Bedarf zuschneiden kannst. + +.Übersetzungen + +- link:/\~blynn/gitmagic/intl/zh_cn/[Vereinfachtes Chinesisch]: von JunJie, Meng und JiangWei. Zu link:/~blynn/gitmagic/intl/zh_tw/[Traditionellem Chinesisch] konvertiert via +cconv -f UTF8-CN -t UTF8-TW+. - link:/~blynn/gitmagic/intl/fr/[Französich]: von Alexandre Garel, Paul Gaborit, und Nicolas Deram. Auch gehostet unter http://tutoriels.itaapy.com/[itaapy]. - link:/~blynn/gitmagic/intl/de/[Deutsch]: von Benjamin Bellee und Armin Stebich; Auch gehostet unter http://gitmagic.lordofbikes.de/[Armin's Website]. - http://www.slideshare.net/slide_user/magia-git[Portugiesisch]: von Leonardo Siqueira Rodrigues [http://www.slideshare.net/slide_user/magia-git-verso-odt[ODT-Version]]. - link:/~blynn/gitmagic/intl/ru/[Russisch]: von Tikhon Tarnavsky, Mikhail Dymskov, und anderen. - link:/~blynn/gitmagic/intl/es/[Spanisch]: von Rodrigo Toledo und Ariset Llerena Tapia. - link:/~blynn/gitmagic/intl/vi/[Vietnamesisch]: von Trần Ngọc Quân; Auch gehostet unter http://vnwildman.users.sourceforge.net/gitmagic.html[seiner Website]. + +.Andere Ausgaben + +- link:book.html[Einzelne Webseite]: reines HTML, ohne CSS. - link:book.pdf[PDF Datei]: druckerfreundlich. - http://packages.debian.org/gitmagic[Debian Packet], http:://packages.ubuntu.com/gitmagic[Ubuntu Packet]: Für eine schnelle und lokale Kopie dieser Seite. Praktisch, http://csdcf.stanford.edu/status/[wenn dieser Server offline ist]. - http://www.amazon.com/Git-Magic-Ben-Lynn/dp/1451523343/[Gedrucktes Buch [Amazon.com]]: 64 Seiten, 15.24cm x 22.86cm, schwarz/weiß. Praktisch, wenn es keinen Strom gibt. + +=== Danke! === + +Ich bin erstaunt, dass so viele Leute an der Übersetzung dieser Seiten gearbeitet haben. Ich weiß es zu würdigen, dass ich, dank der Bemühungen der oben genannten, einen größeren Leserkreis erreiche. + +Dustin Sallings, Alberto Bertogli, James Cameron, Douglas Livingstone, Michael Budde, Richard Albury, Tarmigan, Derek Mahar, Frode Aannevik, Keith Rarick, Andy Somerville, Ralf Recker, Øyvind A. Holm, Miklos Vajna, Sébastien Hinderer, Thomas Miedema, Joe Malin, und Tyler Breisacher haben Korrekturen und Verbesserungen beigesteuert. + +François Marier unterhält das Debian Packet, das ursprünglich von Daniel Baumann erstellt wurde. + +Meine Dankbarkeit gilt auch vielen anderen für deren Unterstützung und Lob. Ich war versucht, euch hier alle aufzuzählen, aber das könnte Erwartungen in unermesslichem Umfang wecken. + +Wenn ich Dich versehentlich vergessen habe, sag' mir bitte Bescheid oder schicke mir einfach einen Patch! + +.Kostenloses Git Hosting + +- http://repo.or.cz/[http://repo.or.cz/] hostet freie Projekte. Die allererste Git Hosting Seite. Gegründet und betrieben von einem der ersten Git Entwickler. - http://gitorious.org/[http://gitorious.org/] ist eine andere Git Hosting Seite, bevorzugt für Open-Source Projekte. - http://github.com/[http://github.com/] hostet Open-Source Projekte kostenlos und geschlossene Projekte gegen Gebühr. + +Vielen Dank an alle diese Seiten für das Hosten dieser Anleitung. + +=== Lizenz === + +Diese Anleitung ist unter der http://www.gnu.org/licenses/gpl-3.0.html[GNU General Public License Version 3] veröffentlicht. Natürlich wird der Quelltext in einem Git 'Repository' gehalten und kann abgerufen werden durch: + +$ git clone git://repo.or.cz/gitmagic.git # Erstellt "gitmagic" Verzeichnis. + +oder von einem der Mirrorserver: + +$ git clone git://github.com/blynn/gitmagic.git $ git clone git://gitorious.org/gitmagic/mainline.git \ No newline at end of file diff --git a/pl/omegat-tmp/target/secrets.txt b/pl/omegat-tmp/target/secrets.txt new file mode 100644 index 0000000..174a838 --- /dev/null +++ b/pl/omegat-tmp/target/secrets.txt @@ -0,0 +1,131 @@ +== Aufgedeckte Geheimnisse == + +Wir werfen einen Blick unter die Motorhaube und erklären, wie Git seine Wunder vollbringt. Ich werde nicht ins Detail gehen. Für tiefer gehende Erklärungen verweise ich auf das http://www.kernel.org/pub/software/scm/git/docs/user-manual.html[englischsprachige Benutzerhandbuch]. + +=== Unsichtbarkeit === + +Wie kann Git so unauffällig sein? Abgesehen von gelegentlichen 'Commits' und 'Merges' kannst Du arbeiten, als würde die Versionsverwaltung nicht existieren. Das heißt, bis Du sie brauchst. Und das ist, wenn Du froh bist, dass Git die ganze Zeit über Dich gewacht hat. + +Andere Versionsverwaltungssysteme zwingen Dich ständig Dich mit Verwaltungskram und Bürokratie herumzuschlagen. Dateien sind können schreibgeschützt sein, bis Du einem zentralen Server mitteilst, welche Dateien Du gerne bearbeiten möchtest. Die einfachsten Befehle werden bis zum Schneckentempo verlangsamt, wenn die Anzahl der Anwender steigt. Deine Arbeit kommt zum Stillstand, wenn das Netzwerk oder der zentrale Server weg sind. + +Im Gegensatz dazu hält Git seinen Verlauf einfach im `.git` Verzeichnis von Deinem Arbeitsverzeichnis. Das ist Deine eigene Kopie der Versionsgeschichte, damit kannst Du so lange offline bleiben, bis Du mit anderen kommunizieren willst. Du hast die absolute Kontrolle über das Schicksal Deiner Dateien, denn Git kann jederzeit einfach einen gesicherten Stand aus `.git` wiederherstellen. + +=== Integrität === + +Die meisten Leute verbinden mit Kryptographie die Geheimhaltung von Informationen, aber ein genau so wichtiges Ziel ist es Informationen zu sichern. Die richtige Anwendung von kryptographischen Hash-Funktionen kann einen versehentlichen oder bösartigen Datenverlust verhindern. + +Einen SHA1-Hash-Wert kann man sich als eindeutige 160-Bit Identitätsnummer für jegliche Zeichenkette vorstellen, welche Dir in Deinem ganzen Leben begegnen wird. Sogar mehr als das: jegliche Zeichenfolge, die alle Menschen über mehrere Generationen verwenden. + +Ein SHA1-Hash-Wert selbst ist eine Zeichenfolge von Bytes. Wir können SHA1-Hash-Werte aus Zeichenfolgen generieren, die selbst SHA1-Hash-Werte enthalten. Diese einfache Beobachtung ist überraschend nützlich: suche nach 'hash chains'. Wir werden später sehen, wie Git diese nutzt um effizient die Datenintegrität zu garantieren. + +Kurz gesagt, Git hält Deine Daten in dem `.git/objects` Unterverzeichnis, wo Du anstelle von normalen Dateinamen nur Identitätsnummern findest. Durch die Verwendung von Identitätsnummern als Dateiname, zusammen mit ein paar Sperrdateien und Zeitstempeltricks, macht Git aus einem einfachen Dateisystem eine effiziente und robuste Datenbank. + +=== Intelligenz === + +Woher weiß Git, dass Du eine Datei umbenannt hast, obwohl Du es ihm niemals explizit mitgeteilt hast? Sicher, Du hast vielleicht *git mv* benutzt, aber das ist exakt das selbe wie *git rm* gefolgt von *git add*. + +Git stöbert Umbenennungen und Kopien zwischen aufeinander folgenden Versionen heuristisch auf. Vielmehr kann es sogar Codeblöcke erkennen, die zwischen Dateien hin und her kopiert oder verschoben wurden! Jedoch kann es nicht alle Fälle abdecken, aber es leistet ordentliche Arbeit und diese Eigenschaft wird immer besser. Wenn es bei Dir nicht funktioniert, versuche Optionen zur aufwendigeren Erkennung von Kopien oder erwäge einen Upgrade. + +=== Indizierung === + +Für jede überwachte Datei speichert Git Informationen wie deren Größe, ihren Erstellzeitpunkt und den Zeitpunkt der letzten Bearbeitung in einer Datei die wir als 'Index' kennen. Um zu ermitteln, ob eine Datei verändert wurde, vergleicht Git den aktuellen Status mit dem im Index gespeicherten. Stimmen diese Daten überein, kann Git das Lesen des Dateiinhalts überspringen. + +Da das Abfragen des Dateistatus erheblich schneller ist als das Lesen der Datei, kann Git, wenn Du nur ein paar Dateien verändert hast, seinen Status im Nu aktualisieren. + +Wir haben früher festgestellt, dass der Index ein Bereitstellungsraum ist. Warum kann ein Haufen von Dateistatusinformationen ein Bereitstellungsraum sein? Weil die 'add' Anweisung Dateien in die Git Datenbank befördert und die Dateistatusinformationen aktualisiert, während die 'commit' Anweisung, ohne Optionen, einen 'Commit' nur auf Basis der Dateistatusinformationen erzeugt, weil die Dateien ja schon in der Datenbank sind. + +=== Git's Wurzeln === + +Dieser http://lkml.org/lkml/2005/4/6/121['Linux Kernel Mailing List' Beitrag] beschreibt die Kette von Ereignissen, die zu Git geführt haben. Der ganze Beitrag ist eine faszinierende archäologische Seite für Git Historiker. + +=== Die Objektdatenbank === + +Jegliche Version Deiner Daten wird in der Objektdatenbank gehalten, welche im Unterverzeichnis `.git/objects` liegt; Die anderen Orte in `.git/` enthalten weniger wichtige Daten: den Index, 'Branch' Namen, Bezeichner ('tags'), Konfigurationsoptionen, Logdateien, die Position des aktuellen 'HEAD Commit' und so weiter. Die Objektdatenbank ist einfach aber trotzdem elegant und sie ist die Quelle von Git's Macht. + +Jede Datei in `.git/objects` ist ein 'Objekt'. Es gibt drei Arten von Objekten die uns betreffen: 'Blob'-, 'Tree'-, und 'Commit'-Objekte. + +=== Blobs === + +Zuerst ein Zaubertrick. Suche Dir einen Dateinamen aus, irgendeinen. In einem leeren Verzeichnis: + +$ echo sweet > DEIN_DATEINAME $ git init $ git add . $ find .git/objects -type f + +Du wirst folgendes sehen: +.git/objects/aa/823728ea7d592acc69b36875a482cdf3fd5c8d+. + +Wie konnte ich das wissen, ohne den Dateiname zu kennen? Weil der SHA1-Hash-Wert von: + +"blob" SP "6" NUL "sweet" LF + +aa823728ea7d592acc69b36875a482cdf3fd5c8d ist. Wobei SP ein Leerzeichen ist, NUL ist ein Nullbyte und LF ist ein Zeilenumbruch. Das kannst Du kontrollieren, durch die Eingabe von: + +$ printf "blob 6\000sweet\n" | sha1sum + +Git ist 'assoziativ': Dateien werden nicht nach Ihren Namen gespeichert, sondern eher nach dem SHA1-Hash-Wert der Daten, welche sie enthalten, in einer Datei, die wir als 'Blob'-Objekt bezeichnen. Wir können uns den SHA1-Hash-Wert als eindeutige Identnummer des Dateiinhalts vorstellen, was sinngemäß bedeutet, dass die Dateien über ihren Inhalt adressiert werden. Das führende `blob 6` ist lediglich ein Vermerk, der sich aus dem Objekttyp und seiner Länge in Bytes zusammensetzt; er vereinfacht die interne Verwaltung. + +So konnte ich einfach vorhersagen, was Du sehen wirst. Der Dateiname ist irrelevant: nur der Dateiinhalt wird zum Erstellen des 'Blob'-Objekt verwendet. + +Du wirst Dich fragen, was mit identischen Dateien ist. Versuche Kopien Deiner Datei hinzuzufügen, mit beliebigen Dateinamen. Der Inhalt von +.git/objects+ bleibt der selbe, ganz egal wieviele Dateien Du hinzufügst. Git speichert den Dateiinhalt nur ein einziges Mal. + +Übrigens, die Dateien in +.git/objects+ sind mit zlib komprimiert, Du solltest sie also nicht direkt anschauen. Filtere sie durch http://www.zlib.net/zpipe.c[zpipe -d], oder gib ein: + +$ git cat-file -p aa823728ea7d592acc69b36875a482cdf3fd5c8d + +was Dir das Objekt im Klartext anzeigt. + +=== 'Trees' === + +Aber wo sind die Dateinamen? Sie müssen irgendwo gespeichert sein. Git kommt beim 'Commit' dazu sich um die Dateinamen zu kümmern: + +$ git commit # Schreibe eine Bemerkung. $ find .git/objects -type f + +Du solltest nun drei Objekte sehen. Dieses mal kann ich Dir nicht sagen, wie die zwei neuen Dateien heißen, weil es zum Teil vom gewählten Dateiname abhängt, den Du ausgesucht hast. Fahren wir fort mit der Annahme, Du hast eine Datei ``rose'' genannt. Wenn nicht, kannst Du den Verlauf so umschreiben, dass es so aussieht als hättest Du es: + +$ git filter-branch --tree-filter 'mv DEIN_DATEINAME rose' $ find .git/objects -type f + +Nun müsstest Du die Datei +.git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9+ sehen, denn das ist der SHA1-Hash-Wert ihres Inhalts: + +"tree" SP "32" NUL "100644 rose" NUL 0xaa823728ea7d592acc69b36875a482cdf3fd5c8d + +Prüfe, ob diese Datei tatsächlich dem obigen Inhalt entspricht, durch Eingabe von: + +$ echo 05b217bb859794d08bb9e4f7f04cbda4b207fbe9 | git cat-file --batch + +Mit zpipe, ist es einfach den SHA1-Hash-Wert zu prüfen: + +$ zpipe -d < .git/objects/05/b217bb859794d08bb9e4f7f04cbda4b207fbe9 | sha1sum + +Die SHA1-Hash-Wert Prüfung mit 'cat-file' ist etwas kniffliger, da dessen Ausgabe mehr als die rohe unkomprimierte Objektdatei enthält. + +Diese Datei ist ein 'Tree'-Objekt: eine Liste von Datensätzen, bestehend aus dem Dateityp, dem Dateinamen und einem SHA1-Hash-Wert. In unserem Beispiel ist der Dateityp 100644, was bedeutet, dass `rose` eine normale Datei ist und der SHA1-Hash-Wert entspricht dem 'Blob'-Objekt, welches den Inhalt von `rose` enthält. Andere mögliche Dateitypen sind ausführbare Programmdateien, symbolische Links oder Verzeichnisse. Im letzten Fall zeigt der SHA1-Hash-Wert auf ein 'Tree'-Objekt. + +Wenn Du 'filter-branch' aufrufst, bekommst Du alte Objekte, welche nicht länger benötigt werden. Obwohl sie automatisch über Bord geworfen werden, wenn ihre Gnadenfrist abgelaufen ist, wollen wir sie nun löschen, damit wir unserem Beispiel besser folgen können. + +$ rm -r .git/refs/original $ git reflog expire --expire=now --all $ git prune + +Für reale Projekte solltest Du solche Anweisungen üblicherweise vermeiden, da Du dadurch Datensicherungen zerstörst. Wenn Du ein sauberes 'Repository' willst, ist es am besten, einen neuen Klon anzulegen. Sei auch vorsichtig, wenn Du +.git+ direkt manipulierst: was, wenn zeitgleich ein Git Kommando ausgeführt wird oder plötzlich der Strom ausfällt? Generell sollten Referenzen mit *git update-ref -d* gelöscht werden, auch wenn es gewöhnlich sicher ist +refs/original+ von Hand zu löschen. + +=== 'Commits' === + +Wir haben nun zwei von drei Objekten erklärt. Das dritte ist ein 'Commit'-Objekt. Sein Inhalt hängt von der 'Commit'-Beschreibung ab, wie auch vom Zeitpunkt der Erstellung. Damit alles zu unserem Beispiel passt, müssen wir ein wenig tricksen: + +$ git commit --amend -m Shakespeare # Ändere die Bemerkung. $ git filter-branch --env-filter 'export GIT_AUTHOR_DATE="Fri 13 Feb 2009 15:31:30 -0800" GIT_AUTHOR_NAME="Alice" GIT_AUTHOR_EMAIL="alice@example.com" GIT_COMMITTER_DATE="Fri, 13 Feb 2009 15:31:30 -0800" GIT_COMMITTER_NAME="Bob" GIT_COMMITTER_EMAIL="bob@example.com"' # Manipuliere Zeitstempel und Autor. $ find .git/objects -type f + +Du solltest nun +.git/objects/49/993fe130c4b3bf24857a15d7969c396b7bc187+ finden, was dem SHA1-Hash-Wert seines Inhalts entspricht: + +"commit 158" NUL "tree 05b217bb859794d08bb9e4f7f04cbda4b207fbe9" LF "author Alice 1234567890 -0800" LF "committer Bob 1234567890 -0800" LF LF "Shakespeare" LF + +Wie vorhin, kannst Du 'zpipe' oder 'cat-file' benutzen um es für Dich zu überprüfen. + +Das ist der erste 'Commit' gewesen, deshalb gibt es keine Eltern-'Commits'. Aber spätere 'Commits' werden immer mindestens eine Zeile enthalten, die den Eltern-'Commit' identifiziert. + +=== Von Magie nicht zu unterscheiden === + +Git's Geheimnisse scheinen zu einfach. Es sieht so aus als müsste man nur ein paar Kommandozeilenskripte zusammenmixen, einen Schuß C-Code hinzufügen und innerhalb ein paar Stunden ist man fertig: eine Mischung von grundlegenden Dateisystemoperationen und SHA1-Hash-Berechnungen, garniert mit Sperrdateien und Synchronisation für Stabilität. Tatsächlich beschreibt dies die früheste Version von Git. Nichtsdestotrotz, abgesehen von geschickten Verpackungstricks um Speicherplatz zu sparen und geschickten Indizierungstricks um Zeit zu sparen, wissen wir nun, wie Git gewandt ein Dateisystem in eine Datenbank verwandelt, das perfekt für eine Versionsverwaltung geeignet ist. + +Angenommen, wenn irgendeine Datei in der Objektdatenbank durch einen Laufwerksfehler zerstört wird, dann wird sein SHA1-Hash-Wert nicht mehr mit seinem Inhalt übereinstimmen und uns sagen, wo das Problem liegt. Durch Bilden von SHA1-Hash-Werten aus den SHA1-Hash-Werten anderer Objekte, erreichen wir Integrität auf allen Ebenen. 'Commits' sind elementar, das heißt, ein 'Commit' kann niemals nur Teile einer Änderung speichern: wir können den SHA1-Hash-Wert eines 'Commits' erst dann berechnen und speichern, nachdem wir bereits alle relevanten 'Tree'-Objekte, 'Blob'-Objekte und Eltern-'Commits' gespeichert haben. Die Objektdatenbank ist immun gegen unerwartete Unterbrechungen wie zum Beispiel einen Stromausfall. + +Wir können sogar den hinterhältigsten Gegnern widerstehen. Stell Dir vor, jemand will den Inhalt einer Datei ändern, die in einer älteren Version eines Projekt liegt. Um die Objektdatenbank intakt aussehen zu lassen, müssten sie außerdem den SHA1-Hash-Wert des korrespondierenden 'Blob'-Objekt ändern, da die Datei nun eine geänderte Zeichenfolge enthält. Das heißt auch, dass sie jeden SHA1-Hash-Wert der 'Tree'-Objekte ändern müssen, welche dieses Objekt referenzieren und demzufolge alle SHA1-Hash-Werte der 'Commit'-Objekte, welche diese 'Tree'-Objekte beinhalten, zusätzlich zu allen Abkömmlingen dieses 'Commits'. Das bedeutet auch, dass sich der SHA1-Hash-Wert des offiziellen HEAD von dem des manipulierten 'Repository' unterscheidet. Folgen wir dem Pfad der differierenden SHA1-Hash-Werte, finden wir die verstümmelte Datei, wie auch den 'Commit', in dem sie erstmals auftauchte. + +Kurz gesagt, so lange die 20 Byte, welche den SHA1-Hash-Wert des letzen 'Commit' repräsentieren sicher sind, ist es unmöglich ein Git 'Repository' zu fälschen. + +Was ist mit Git's berühmten Fähigkeiten? 'Branching'? 'Merging'? 'Tags'? Nur Kleinigkeiten. Der aktuelle HEAD wird in der Datei +.git/HEAD+ gehalten, welche den SHA1-Hash-Wert eines 'Commit'-Objekts enthält. Der SHA1-Hash-Wert wird während eines 'Commit' aktualisiert, genauso bei vielen anderen Anweisungen. 'Branches' sind fast das selbe: sie sind Dateien in +.git/refs/heads+. 'Tags' ebenso: sie stehen in +.git/refs/tags+ aber sie werden durch einen Satz anderer Anweisungen aktualisiert. \ No newline at end of file diff --git a/pl/omegat-tmp/target/translate.txt b/pl/omegat-tmp/target/translate.txt new file mode 100644 index 0000000..8866411 --- /dev/null +++ b/pl/omegat-tmp/target/translate.txt @@ -0,0 +1,17 @@ +== Anhang B: Diese Anleitung übersetzen == + +Ich empfehle folgende Schritte um diese Anleitung zu übersetzen, damit meine Skripte einfach eine HTML- und PDF-Version erstellen können. Außerdem können so alle Übersetzungen in einem 'Repository' existieren. + +'Clone' die Quelltexte, dann erstelle ein Verzeichnis mit dem Namen des IETF Sprachkürzel der übersetzten Sprache: siehe http://www.w3.org/International/articles/language-tags/Overview.en.php[den W3C Artikel über Internationalisierung]. Zum Beispiel, Englisch ist "en", Japanisch ist "ja". Kopiere alle +txt+-Dateien aus dem "en"-Verzeichnis in das neue Verzeichnis und übersetze diese. + +Um zum Beispiel die Anleitung auf http://de.wikipedia.org/wiki/Klingonische_Sprache[Klingonisch] zu übersetzen, mußt du folgendes machen: + +$ git clone git://repo.or.cz/gitmagic.git $ cd gitmagic $ mkdir tlh # "tlh" ist das IETF Sprachkürzel für Klingonisch. $ cd tlh $ cp ../en/intro.txt . $ edit intro.txt # übersetze diese Datei. + +und das machst du für jede txt-Datei. + +Bearbeite das Makefile und füge das Sprachkürzel zur Variable `TRANSLATIONS` hinzu. Nun kannst Du Deine Arbeit jederzeit wie folgt überprüfen: + +$ make tlh $ firefox book-tlh/index.html + +'Committe' deine Änderungen oft und wenn du fertig bist, gib bitte Bescheid. GitHub hat eine Schnittstelle, die das erleichtert: Erzeuge deine eigene 'Fork' vom "gitmagic" Projekt, 'pushe' deine Änderungen, dann gib mir Bescheid, deine Änderungen zu 'mergen'. \ No newline at end of file -- 2.11.4.GIT