Najlepszy samouczek Git oddział zarządzania W 2024 r. W tym samouczku możesz dowiedzieć się Git oddział zarządzania,
Prawie każdy systemy kontroli wersji wspierać jakąś formę oddziału. Oznacza to, że można użyć oddział z głównej linii rozwoju w celu oddzielenia i nie wpływa na główną linię przy jednoczesnym kontynuowaniu pracy.
Ktoś Git rozgałęzienia model o nazwie "Charakterystyka nirwana", ale właśnie dlatego, że różni się od systemu kontroli wersji Git dla rodziny.
Tworzenie instrukcji rozgałęzienia:
git branch (branchname)
Oddział polecenie przełączenia:
git checkout (branchname)
Po przełączeniu oddziałów, Git użyje Oddziału Oświadczenia końcowe migawek zastąpić zawartość katalogu roboczego, stwardnienie oddziału nie wymaga wiele katalogów.
Scalanie Gałęzie polecenie:
git merge
Można połączyć w jednolitą branży wiele razy, można również wybrać, aby usunąć bezpośrednio po połączeniu należy włączyć oddziały.
Podstawowe polecenia są wymienione w branży:
git branch
Gdy bez argumentów, git branch zostaną wymienione w lokalnym oddziale.
$ git branch * master
W tym przypadku oznacza to, że nazwaliśmy "master" oddział, a oddział jest obecny oddział.
Po uruchomieniu git init domyślny Git stworzy "master" oddział dla Ciebie.
Jeśli chcemy, aby ręcznie utworzyć oddział i przełączyć. Wykonaj oddział git (BRANCHNAME) może być.
$ git branch testing $ git branch * master testing
Teraz widzimy, że z nowym testing.
Po przesłaniu aktualizacji w ten sposób w ciągu ostatnich utworzony nowy oddział, jeśli później również przesłać aktualizacje, a następnie przejść do "testowania" oddział, Git przywróci swój katalog roboczy wyglądać po utworzeniu oddziału
Następnie pokażemy Ci, jak przełączyć oddziałów, możemy przełączane kasie git (oddziału), który chcemy zmodyfikować gałąź.
$ ls README $ echo 'w3cschool.cc' > test.txt $ git add . $ git commit -m 'add test.txt' [master 048598f] add test.txt 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 hello.php create mode 100644 test.txt $ ls README test.txt $ git checkout testing Switched to branch 'testing' $ ls README hello.php
Kiedy przełączony na "testing" oddziału, dodamy nowy plik test.txt został usunięty, oryginalny plik zostanie usunięty hello.php plik pojawiły. Przełączenie z powrotem do oddziału "master", mają ponownie pojawiły.
$ git checkout master Switched to branch 'master' $ ls README test.txt
polecenia git checkout -b (BRANCHNAME) Możemy również użyć do utworzenia nowego oddziału i natychmiast przełącza się na oddział, w celu prowadzenia w tej branży.
$ git checkout -b newtest Switched to a new branch 'newtest' $ git rm test2.txt rm 'test2.txt' $ ls README test.txt $ git commit -am 'removed test2.txt' [newtest 556f0a0] removed test2.txt 1 file changed, 1 deletion(-) delete mode 100644 test2.txt $ git checkout master Switched to branch 'master' $ ls README test.txt test2.txt
Jak widać, udało nam się stworzyć oddział, usunąć niektóre pliki w kontekście tego oddziału, a następnie powrócić do głównej gałęzi, te pliki z powrotem.
Użyj osobnego oddziału cięcia będzie działać, tak, że możemy robić rzeczy, w różnych kontekstach i przełączać.
Usuń z instrukcją oddziału:
git branch -d (branchname)
Na przykład chcemy usunąć "testing" oddział:
$ git branch * master testing $ git branch -d testing Deleted branch testing (was 85fc7e7). $ git branch * master
Gdy oddział posiada samodzielną treść, w końcu chcą połączyć go z powrotem do głównej gałęzi. Można użyć następującego polecenia do dowolnego oddziału połączone w obecnym zjeździe do:
git merge
$ git branch * master newtest $ ls README test.txt test2.txt $ git merge newtest Updating 2e082b7pl556f0a0 Fast-forward test2.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test2.txt $ ls README test.txt
Powyższe przykłady będziemy newtest połączone w głównej gałęzi na gałąź, test2.txt plik zostanie usunięty.
W połączeniu, a nie po prostu dodać plik operację usunięte, Git będzie również scalić zmiany.
$ git branch * master $ cat test.txt w3cschool.cc
Najpierw tworzymy katalog o nazwie "change_site" przełączanie oddział w przeszłości, będziemy treści www.w3cschool.cc.
$ git checkout -b change_site Switched to a new branch 'change_site' $ vim test.txt $ head -1 test.txt www.w3cschool.cc $ git commit -am 'changed the site' [change_site d7e7346] changed the site 1 file changed, 1 insertion(+), 1 deletion(-)
Zmodyfikowany treści przekazane "change_site" oddział. Teraz, jeśli wrócisz do "master" oddziału, że możemy wrócić do zobaczyć zawartość naszych modyfikacji, zanim znowu zmodyfikować plik test.txt.
$ git checkout master Switched to branch 'master' $ head -1 test.txt w3cschool.cc $ vim test.txt $ cat test.txt w3cschool.cc 新增加一行 $ git diff diff --git a/test.txt b/test.txt index 704cce7plf84c2a4 100644 --- a/test.txt +++ b/test.txt @@ -1 +1,2 @@ w3cschool.cc +新增加一行 $ git commit -am '新增加一行' [master 14b4dca] 新增加一行 1 file changed, 1 insertion(+)
Teraz te zmiany zostały zapisane w mojej "master" oddziału. Dalej będziemy "change_site" Konsolidacja gałęzi na drugą.
$ git merge change_site Auto-merging test.txt CONFLICT (content): Merge conflict in test.txt Automatic merge failed; fix conflicts and then commit the result. $ cat test.txt <<<<<<< HEAD w3cschool.cc 新增加一行 ======= www.w3cschool.cc >>>>>>> change_site
Będziemy połączyć przed odgałęzieniem do "master" oddziału, powstaje konflikt korespondencji seryjnej, a następnie musimy zmodyfikować je ręcznie.
$ vim test.txt $ cat test.txt www.w3cschool.cc 新增加一行 $ git diff diff --cc test.txt index f84c2a4,bccb7c2pl0000000 --- a/test.txt +++ b/test.txt @@@ -1,2 -1,1 +1,2 @@@ - w3cschool.cc + www.w3cschool.cc +新增加一行
W Git git dodać, że możemy użyć, aby powiedzieć Git konflikt plik został rozwiązany
$ git status -s UU test.txt $ git add test.txt $ git status -s M test.txt $ git commit [master 88afe0e] Merge branch 'change_site'
Teraz udało nam się rozwiązać konflikty scalania i przedstawia wyniki.