Heim > Artikel > Entwicklungswerkzeuge > Versionskontrolltool Git – Zweigstellenverwaltung
Branch ist eine Killeranwendung von Git. Im Gegensatz zu anderen Versionskontrolltools ist Git äußerst effizient beim Erstellen und Wechseln von Zweigen.
Zweigeinführung
Was ist ein Zweig? Beginnen wir mit einem Szenario, das wir sehr gut kennen. Ein Produkt, das nun auf den Markt gebracht wurde, muss um eine neue Funktion erweitert werden. Wenn wir zu diesem Zeitpunkt den ursprünglichen Zweig weiterentwickeln, ist dies sehr unpraktisch, da es sich um eine bereits gestartete Anwendung handelt, die getestet werden muss, bevor sie gestartet werden kann. Im Allgemeinen besteht unser Ansatz darin, einen neuen Zweig zu erstellen, neue Funktionen in diesem neuen Zweig zu entwickeln und sie dann nach dem Testen in den Hauptzweig zusammenzuführen.
Erstellung und Wechsel von Zweigen
Die aktuelle Situation meiner Repository-Zweige ist wie folgt:
Zweig erstellen
Jetzt erstellen wir einen neuen Zweig, dev. Die Befehle zum Erstellen eines Zweigs und zum Anzeigen des Zweigs lauten wie folgt:
git branch 分支名 git branch # git branch dev # git branch dev * master
Zweig wechseln
Der Zweig wurde erfolgreich eingerichtet. Wechseln wir nun zu einem neuen Zweig. Der Befehl zum Wechseln der Zweige lautet wie folgt: git checkout branch name
und wechseln Sie dann zum Hauptzweig, nehmen Sie einige Änderungen vor und senden Sie sie ab. Anschließend schauen wir uns den Status der Filiale an.# git checkout dev Switched to branch 'dev'
git vim config.php # 修改config.php文件 git add . && git commit -m 'add config.php' git checkout master # 切换到主分支 git vim config.php git add . && git commit -m 'change config.php'
Ein Befehl zum Erstellen und Wechseln von Zweigen
$ git log --oneline --decorate --graph --all * ca4589c (HEAD -> master) add config file | * 43a5a8f (dev) add config.php |/ * 19e3186 add index.php * 9cc82f9 first commit
Zusammenführen von Filialen
Stellen Sie zunächst ein Szenario vor, das sehr häufig vorkommt:git checkout -b 新分支名Nehmen Sie dann einige Änderungen am neuen Zweig vor. Zu diesem Zeitpunkt trat online ein schwerwiegender Fehler auf, der dringend behandelt werden musste. Nun, zuerst muss ich zum Hauptzweig wechseln. Beim Wechsel ist jedoch ein Fehler aufgetreten
git checkout -b devDer obige Fehler tritt häufig auf. Dies liegt daran, dass
Beim Zusammenführen von Zweigen der Arbeitsbereich und der Bereitstellungsbereich „sauber“ sein müssen. Es gibt zwei Möglichkeiten, die oben genannten Anforderungen zu erreichen
zu demonstrieren
$ git stash $ git checkout master Switched to branch 'master'
当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。
现在,我们新建fixbug分支,在这个分支上修复bug。
$ git checkout -b fixbug
合并分支
修复完成且测试通过时,就可以把它合并到master上了。合并使用git merge 分支名
$ git checkout master Switched to branch 'master' $ git merge fixbug
删除分支
这个时候,fixbug功能已经完成了,可以将它给删除掉了。
$ git branch -d fixbug Deleted branch fixbug (was cca73bb).
现在,我们可以继续在dev分支上工作了。我们需要把之前暂存的内容取出来。
$ git checkout dev $ git stash pop On branch dev Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: login.php no changes added to commit (use "git add" and/or "git commit -a") Dropped refs/stash@{0} (2f8476defbaa813e31f3e1b081f5b88416b2ff50)
新功能完成后,提交到版本库。
冲突解决
现在我们新的功能完成了,那么就可以把它合并到master分支上了。现在我们来演示合并时遇到冲突时,如何去解决。
$ git checkout master Switched to branch 'master' $ git merge dev Auto-merging index.php CONFLICT (content): Merge conflict in index.php Automatic merge failed; fix conflicts and then commit the result.
提示我index.php合并的时候有冲突,我们来看看该文件
$ cat index.php <?php <<<<<<< HEAD echo 'hello world'; ======= echo 'version 1.1 finished'; >>>>>>> dev
<br/>
$ cat index.php <?php echo 'version 1.1 finished';
然后再add并提交,最后在提交
$ git commit -m 'merge dev'
这个时候就合并成功了,现在就去删除dev分支吧。
$ git branch -d dev
Das obige ist der detaillierte Inhalt vonVersionskontrolltool Git – Zweigstellenverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!