Latest web development tutorials

Git-Zweigs Management

Fast unterstützen alle Versionskontrollsysteme eine Form der Niederlassung. Es bedeutet, dass Sie einen Zweig von der Hauptentwicklungslinie können zu trennen und wirkt sich nicht auf die Hauptlinie, während weiter zu arbeiten.

Jemand Git Verzweigung Modell "Nirwana Merkmale" genannt, aber gerade weil sie aus dem Git Versionskontrollsystem für die Familie aus.

Erstellen Sie einen Sprungbefehl:

git branch (branchname)

Zweigschaltbefehl:

git checkout (branchname)

Wenn Sie Zweige wechseln, wird Git die Niederlassung des endgültigen Einreichungen Schnappschüsse verwenden Sie den Inhalt Ihres Arbeitsverzeichnis ersetzen, hat mehrere Zweig nicht mehrere Verzeichnisse erfordern.

Merge Branches Befehl:

git merge 

Sie können oft in eine einheitliche Zweig zusammenführen, können Sie auch Zweige zu löschen wählen Sie direkt nach der Fusion eingebracht.


Git-Zweigs Management

Listen Zweig

Basic-Befehle werden in der Branche aufgeführt:

git branch

Wenn keine Argumente, git Zweig wird in Ihrem lokalen Niederlassung aufgeführt werden.

$ git branch
* master

In diesem Fall bedeutet dies, dass wir einen "Master" Zweig genannt haben, und der Zweig ist der aktuelle Zweig.

Wenn Sie git init ausführen, wird der Standard-Git "master" Branch für Sie erstellen.

Wenn wir wollen, um manuell einen Zweig erstellen und wechseln. Führen Sie git branch (branch) sein kann.

$ git branch testing
$ git branch
* master
  testing

Jetzt können wir mit einem neuen Zweig Prüfung sehen.

Wenn Sie ein Update auf diese Weise in dem eine Niederlassung erstellt zuletzt einreichen, wenn später auch Aktualisierungen einreichen, und wechseln Sie dann auf den Zweig "testing", wird Git Arbeitsverzeichnis wiederherstellen aussehen, wenn Sie einen Zweig erstellen

Als nächstes werden wir Ihnen zeigen, wie Zweige zu wechseln, wechselten wir mit git checkout (Zweig), die wir den Zweig zu ändern möchten.

$ 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

Wenn wir auf die "Prüfung" Zweig geschaltet, fügen wir eine neue Datei test.txt entfernt wurde, wird die Originaldatei gelöscht Datei hello.php entstanden ist. Zurückschalten zum "Master" Zweig, haben sie wieder aufgetaucht.

$ git checkout master
Switched to branch 'master'
$ ls
README		test.txt

Wir können auch git checkout -b (branch) Befehl verwenden, um einen neuen Zweig zu erstellen und sofort auf den Zweig eingeschaltet, um in dieser Branche zu arbeiten.

$ 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

Wie Sie sehen können, haben wir eine Filiale erstellt haben, einige Dateien im Zusammenhang mit dieser Branche, zu entfernen und dann zu unserem Hauptzweig zurückschalten, diese Dateien zurück.

Verwenden Sie separate Schneidezweig arbeiten, so dass wir die Dinge in verschiedenen Kontexten tun können, und hin und her schalten.

entfernen Sie Zweige

Entfernen Sie den Sprungbefehl:

git branch -d (branchname)

Zum Beispiel wollen wir "Test" Zweig zu entfernen:

$ git branch
* master
  testing
$ git branch -d testing
Deleted branch testing (was 85fc7e7).
$ git branch
* master

Merge Zweig

Sobald ein Zweig unabhängigen Inhalt hat, werden Sie schließlich es Zweig zurück in Ihr Master zusammenführen möchten. Sie können den folgenden Befehl verwenden, um jede Niederlassung in den aktuellen Zweig zusammengeführt:

git merge
$ git branch
* master
  newtest
$ ls
README		test.txt	test2.txt
$ git merge newtest
Updating 2e082b7..556f0a0
Fast-forward
 test2.txt | 1 -
 1 file changed, 1 deletion(-)
 delete mode 100644 test2.txt
$ ls
README		test.txt

Die obigen Beispiele werden wir in die Haupt Ast zu Ast fusionierte testNeu wird test2.txt Datei gelöscht.

Konflikte beim Zusammen

In Kombination und nicht einfach eine Datei hinzufügen, die Operation entfernt wurde, wird Git verschmelzen auch die Änderungen.

$ git branch
* master
$ cat test.txt
w3cschool.cc

Erstens haben wir ein Verzeichnis namens "change_site" Zweigschalten in der Vergangenheit schaffen, werden wir zufrieden sein, zu 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(-)
 

Der modifizierte Inhalt eingereicht Zweig "change_site". Nun, wenn Sie auf den "Master" Zweig zurückschalten, die wir zurückkommen können den Inhalt unserer Änderungen zu sehen, bevor wir die Datei test.txt wieder ändern.

$ 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 704cce7..f84c2a4 100644
--- a/test.txt
+++ b/test.txt
@@ -1 +1,2 @@
 w3cschool.cc
+新增加一行
$ git commit -am '新增加一行'
[master 14b4dca] 新增加一行
 1 file changed, 1 insertion(+)
 

Nun wurden diese Veränderungen in meinem "Master" der Branche erfasst. Als nächstes werden wir "change_site" Zweig Konsolidierung über.

 $ 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

Wir verschmelzen vor einem Zweig zu "Master" Zweig, ein Merge Konflikt entsteht, dann müssen wir es manuell zu ändern.

$ vim test.txt 
$ cat test.txt 
www.w3cschool.cc
新增加一行
$ git diff
diff --cc test.txt
index f84c2a4,bccb7c2..0000000
--- a/test.txt
+++ b/test.txt
@@@ -1,2 -1,1 +1,2 @@@
- w3cschool.cc
+ www.w3cschool.cc
 +新增加一行

In Git, git hinzufügen, dass wir Git Dateikonflikt zu sagen können, wurde behoben

$ git status -s
UU test.txt
$ git add test.txt 
$ git status -s
M  test.txt
$ git commit
[master 88afe0e] Merge branch 'change_site'

Jetzt haben wir erfolgreich merge Konflikte gelöst und die Ergebnisse vorzulegen.