Heim > Backend-Entwicklung > PHP-Tutorial > Standardprozess für die Git-Nutzung

Standardprozess für die Git-Nutzung

伊谢尔伦
Freigeben: 2023-03-01 11:40:01
Original
1207 Leute haben es durchsucht

Bei der Teamentwicklung ist es sehr wichtig, einem vernünftigen und klaren Git-Nutzungsprozess zu folgen.

Andernfalls wird jeder eine Reihe unorganisierter Commits einreichen und das Projekt wird schnell schwierig zu koordinieren und zu warten.

Das Folgende ist der Git-Nutzungsspezifikationsprozess von ThoughtBot. Ich habe viel daraus gelernt und empfehle Ihnen, Git auf die gleiche Weise zu verwenden.

Standardprozess für die Git-Nutzung

Schritt 1: Erstellen Sie einen neuen Zweig

Zunächst einmal sollten Sie jedes Mal, wenn Sie eine neue Funktion entwickeln, einen separaten Zweig erstellen (dazu Weitere Informationen finden Sie unter „Git Branch Management Strategy“).

# 获取主干最新代码
$ git checkout master
$ git pull
# 新建一个开发分支myfeature
$ git checkout -b myfeature
Nach dem Login kopieren

Schritt 2: Senden Sie den Zweig-Commit.

Nachdem der Zweig geändert wurde, können Sie den Commit senden.

$ git add --all
$ git status
$ git commit --verbose
Nach dem Login kopieren

Der all-Parameter des Befehls git add bedeutet, dass alle Änderungen gespeichert werden (einschließlich Neuerstellung, Änderung und Löschung). Ab Git 2.0 ist all der Standardparameter von git add, daher können Sie stattdessen auch git add verwenden.

 Der Befehl git status wird verwendet, um geänderte Dateien anzuzeigen.

Der ausführliche Parameter des Git-Commit-Befehls listet die Diff-Ergebnisse auf.

Schritt 3: Schreiben Sie die Übermittlungsnachricht

Wenn Sie einen Commit einreichen, müssen Sie eine vollständige und prägnante Übermittlungsnachricht angeben.

Present-tense summary under 50 characters
* More information about commit (under 72 characters).
* More information about commit (under 72 characters).
Nach dem Login kopieren

Die erste Zeile ist eine Zusammenfassung von nicht mehr als 50 Wörtern, und dann werden in einer leeren Zeile die Gründe für die Änderungen, größere Änderungen und Probleme aufgeführt, die Aufmerksamkeit erfordern. Geben Sie abschließend die entsprechende URL an (z. B. ein Bug-Ticket).

Schritt 4: Mit dem Stamm synchronisieren

Während des Entwicklungsprozesses von Zweigen ist es notwendig, immer mit dem Stamm zu synchronisieren.

$ git fetch origin
$ git rebase origin/master
Nach dem Login kopieren

Schritt 5: Commits zusammenführen

Nachdem die Zweigentwicklung abgeschlossen ist, wird es wahrscheinlich eine Reihe von Commits geben, aber beim Zusammenführen in den Stamm möchte man oft nur diese haben ein (oder höchstens zwei oder drei) Commit, was nicht nur klar, sondern auch einfach zu verwalten ist.

Wie können Sie also mehrere Commits zusammenführen? Dies erfordert den Befehl git rebase.

$ git rebase -i origin/master
Nach dem Login kopieren

Der i-Parameter des Git-Rebase-Befehls zeigt an, dass er interaktiv ist. Zu diesem Zeitpunkt öffnet Git eine interaktive Schnittstelle für den nächsten Schritt.

Im Folgenden wird am Beispiel von Tute Costa erläutert, wie Commits zusammengeführt werden.

Der i-Parameter des Git-Rebase-Befehls zeigt an, dass er interaktiv ist. Zu diesem Zeitpunkt öffnet Git eine interaktive Schnittstelle für den nächsten Schritt.

Im Folgenden wird am Beispiel von Tute Costa erläutert, wie Commits zusammengeführt werden.

pick 07c5abd Introduce OpenPGP and teach basic usage
pick de9b1eb Fix PostChecker::Post#urls
pick 3e7ee36 Hey kids, stop all the highlighting
pick fa20af3 git interactive rebase, squash, amend
# Rebase 8db7e8b..fa20af3 onto 8db7e8b
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Nach dem Login kopieren

Die obige interaktive Oberfläche listet zunächst die letzten 4 Commits des aktuellen Zweigs auf (je niedriger die Commits sind, desto neuer sind sie). Vor jedem Commit steht ein Operationsbefehl. Der Standardwert ist „pick“, was bedeutet, dass der Commit in dieser Zeile ausgewählt ist und neu basiert werden muss.

Unter den vier Commits befinden sich viele Kommentare, in denen die Befehle aufgeführt sind, die verwendet werden können.

pick:正常选中
reword:选中,并且修改提交信息;
edit:选中,rebase时会暂停,允许你修改这个commit(参考这里)
squash:选中,会将当前commit与上一个commit合并
fixup:与squash相同,但不会保存当前commit的提交信息
exec:执行其他shell命令
Nach dem Login kopieren

Unter den oben genannten 6 Befehlen können Squash und Fixup zum Zusammenführen von Commits verwendet werden. Ändern Sie zunächst das Verb vor dem Commit, das zusammengeführt werden muss, in Squash (oder s).

pick 07c5abd Introduce OpenPGP and teach basic usage
s de9b1eb Fix PostChecker::Post#urls
s 3e7ee36 Hey kids, stop all the highlighting
pick fa20af3 git interactive rebase, squash, amend
Nach dem Login kopieren

Mit dieser Änderung sind nach der Ausführung nur noch zwei Commits im aktuellen Zweig übrig. Die Commits in der zweiten und dritten Zeile werden mit dem Commit in der ersten Zeile zusammengeführt. Die Übermittlungsinformationen umfassen auch die Übermittlungsinformationen dieser drei Commits.

# This is a combination of 3 commits.
# The first commit's message is:
Introduce OpenPGP and teach basic usage
# This is the 2nd commit message:
Fix PostChecker::Post#urls
# This is the 3rd commit message:
Hey kids, stop all the highlighting
Nach dem Login kopieren

Wenn Sie den Squash-Befehl in der dritten Zeile in den Fixup-Befehl ändern.

pick 07c5abd Introduce OpenPGP and teach basic usage
s de9b1eb Fix PostChecker::Post#urls
f 3e7ee36 Hey kids, stop all the highlighting
pick fa20af3 git interactive rebase, squash, amend
Nach dem Login kopieren

Die laufenden Ergebnisse sind immer noch die gleichen. Die Commits in der zweiten und dritten Zeile werden mit dem Commit in der ersten Zeile zusammengeführt. In den neuen Übermittlungsinformationen wird jedoch die dritte Zeile der Commit-Informationen auskommentiert.

# This is a combination of 3 commits.
# The first commit's message is:
Introduce OpenPGP and teach basic usage
# This is the 2nd commit message:
Fix PostChecker::Post#urls
# This is the 3rd commit message:
# Hey kids, stop all the highlighting
Nach dem Login kopieren

Die Befehle Squash und Fixup können auch als Befehlszeilenparameter verwendet werden, um Commits automatisch zusammenzuführen.

$ git commit --fixup  
$ git rebase -i --autosquash
Nach dem Login kopieren

Bitte lesen Sie diesen Artikel für diese Verwendung, die hier nicht erklärt wird.

Schritt 6: Push an Remote-Lager

  合并commit后,就可以推送当前分支到远程仓库了。

$ git push --force origin myfeature
Nach dem Login kopieren

  git push命令要加上force参数,因为rebase以后,分支历史改变了,跟远程分支不一定兼容,有可能要强行推送(参见这里)。

 第七步:发出Pull Request

  提交到远程仓库以后,就可以发出 Pull Request 到master分支,然后请求别人进行代码review,确认可以合并到master。


Verwandte Etiketten:
git
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage