In diesem Artikel geht es darum, Gitlab zu erlernen und darüber zu sprechen, wie man einen geschützten Branch einrichtet und eine PR an seinen Leiter sendet. Ich hoffe, dass er für alle hilfreich ist!
Wozu dient ein geschützter Zweig?
Wie wir bereits im Git-Flow-Workflow vorgestellt haben, ist der Zweig master|main
der Online-Zweig, wenn jeder Entwickler nach Belieben Code in den Hauptzweig pushen kann, sofern er online ist Wenn ein Entwickler versehentlich Code, den er zum Online-Gehen nicht benötigt (was viele Fehler aufweisen kann), versehentlich in den Hauptzweig schiebt und ihn beim Online-Gehen mitbringt, kann der verursachte Schaden manchmal irreparabel sein. Daher müssen wir den Hauptzweig so einstellen, dass Push nicht zulässig ist, und wir können unseren Code nur über PR in den Hauptzweig einbinden. master|main
(主分支)分支是上线分支,如果每个开发人员都能随意的在主分支push代码,假如上线的时候,哪个开发不小心把自己不需要上线的代码(有可能有很多bug)push到了主分支,上线的时候一起带上去了,那么造成的损失有可能无法挽回。所以我们需要设置主分支不允许push,只能通过PR的方式把自己的代码合并到主分支。
下面我们来操作一下。在项目中找settings
->Repository
->Protected branches
,选择受保护的分支,这里我们的主分支是main,然后选择merge权限为Maintainers,不允许任何人push代码到主分支。最后点击profect
下面我们来push一下代码试试
可以很明显的看到,已经不让任何人推送代码了。要推送代码,只能另外新建分支去推送到远程,然后把代码合并到主分支。
为什么会有Merge reqeust呢?
前面提到,main分支是我们的保护分支,已经不需要本地push代码,那么我们的代码如何合并到主分支呢?这时候就需要开发人员发起一个Merge reqeust
来把我们的代码合并到main分支了。Merge request还有一个用途非常重要,那就是code review
。
何为code review
呢?
code review
翻译过来就是代码审查。一个公司,一个团队,对代码是有规范的,对代码是有要求的,对质量是有要求的,你写的代码是要经过你的leader审查的,才能合并到主分支,所以这一步操作在你主管合并之前,会吧你写的代码肉眼过一遍,确保不会出现重大线上问题才会给你合并,如果有问题,会让你重新改代码重新提交Merge requst
,直到符合上线要求。这样做的目的呢,也是为了保证上线不出问题,毕竟出了重大的线上bug,你的leader是要承担责任和风险的,问题严重的部门领导也跟着倒霉。所以,我们写代码的同时也要非常的严谨。
讲了这么多,下面我们实际操作一下。
在本地新建一个dev
分支,然后修改一些东西push
到远程,首次推送需要使用git push -u origin dev
,因为远程没有这个分支。
刷新页面可以看到,我们现在在main分支,上面显示一个Create merge request
按钮,这里就是我们发起merge请求的地方,点击一下
进入到merge页面,这里我们可以看到我们现在是想把dev
分支merge到main
分支,如果想合并其他的分支,点击change branches
即可修改。title
和description
可以填写你提交merge相关的功能描述。
Assignee
和Reviewer
为受让人和审查人员,直白一点就是想的代码谁给你审查,你就选择谁。
这里可以看到你本次合并提交的commit信息和修改内容
最后,点击Create merge request
,即可发起一个merge请求,剩下的事情就是你的leader审查代码了。
你的leader看到的merge信息是这样子的,这里他可以看到你的commits和changes,从而看到你的代码的修改内容。如何没有问题,点击Merge
Einstellungen
->Repository
-Geschützte Zweige
und wählen Sie hier den Hauptzweig aus die Merge-Berechtigung als Maintainer, um niemandem zu erlauben, Code in den Hauptzweig zu pushen. Klicken Sie abschließend auf profect🎜🎜 Lassen Sie uns den Code pushen und ausprobieren. 🎜🎜 „faul“/>Man sieht deutlich, dass niemand den Code pushen darf. Um Code zu übertragen, können Sie nur einen neuen Zweig erstellen, um ihn an die Fernbedienung zu übertragen, und dann den Code mit dem Hauptzweig zusammenführen. 🎜Merge-Anforderung
initiieren, um unseren Code in den Hauptzweig einzufügen. Die Zusammenführungsanforderung hat einen weiteren sehr wichtigen Zweck, nämlich die Codeüberprüfung
. 🎜🎜🎜Was ist 🎜Codeüberprüfung
🎜? 🎜🎜🎜Codeüberprüfung
bedeutet Codeüberprüfung. Ein Unternehmen, ein Team, hat Standards für Code, Anforderungen an Code und Anforderungen an die Qualität. Der von Ihnen geschriebene Code muss von Ihrem Leiter überprüft werden, bevor er in den Hauptzweig integriert werden kann. Daher ist dieser Schritt erledigt, bevor Sie die Verantwortung übernehmen Beim Zusammenführen werde ich den Code, den Sie geschrieben haben, mit bloßem Auge durchgehen, um sicherzustellen, dass es keine größeren Online-Probleme gibt, bevor ich ihn für Sie zusammenführe. Wenn es Probleme gibt, werden Sie aufgefordert, den Code zu ändern und Merge erneut einzureichen requst
, bis die Online-Anforderungen erfüllt sind. Der Zweck besteht darin, sicherzustellen, dass es online keine Probleme gibt. Denn wenn ein schwerwiegender Online-Fehler auftritt, trägt Ihr Vorgesetzter die Verantwortung und das Risiko, und auch Abteilungsleiter mit schwerwiegenden Problemen geraten in Schwierigkeiten. Daher müssen wir beim Schreiben von Code sehr streng sein. 🎜🎜 Nachdem wir so viel gesagt haben, lassen Sie es uns in der Praxis umsetzen. 🎜🎜Erstellen Sie lokal einen neuen dev
-Zweig und ändern Sie dann einige Dinge mit push
auf der Fernbedienung. Sie müssen git push -u origin dev
verwenden für den ersten Push, weil Die Fernbedienung hat diesen Zweig nicht. 🎜🎜Aktualisieren Sie die Seite und Sie können sehen, dass wir uns jetzt im Hauptzweig befinden, auf dem die Schaltfläche Zusammenführungsanfrage erstellen
angezeigt wird. Klicken Sie darauf img src="https://img.php.cn/upload/article/000/000/024/ab1c9858c06edaee725766875e54be46-2.png" alt="" Loading="lazy"/>🎜🎜Betreten Sie die Zusammenführungsseite, hier sind wir können Sie sehen, was wir jetzt wollen. Führen Sie den Zweig dev
mit dem Zweig main
zusammen. Wenn Sie andere Zweige zusammenführen möchten, klicken Sie auf Zweige ändern
, um ihn zu ändern . title
und description
können die Funktionsbeschreibung im Zusammenhang mit der von Ihnen übermittelten Zusammenführung ausfüllen. 🎜🎜🎜🎜Beauftragter
und Reviewer
sind Beauftragte und Prüfer. Um es ganz klar auszudrücken: Sie wählen aus, wer den Code überprüft, den Sie möchten. 🎜🎜🎜🎜Sie können es sehen hier Die Commit-Informationen und Änderungen, die Sie für diese Zusammenführung übermittelt haben🎜🎜🎜🎜🎜 🎜Klicken Sie abschließend auf Zusammenführungsanforderung erstellen
, um eine Zusammenführungsanforderung zu initiieren. Der Rest muss von Ihrem Vorgesetzten überprüft werden. 🎜🎜Die Zusammenführungsinformationen, die Ihr Leiter sieht, sehen folgendermaßen aus: Hier kann er Ihre Commits und Änderungen und somit die Änderungen an Ihrem Code sehen. Wenn es kein Problem gibt, klicken Sie zum Zusammenführen auf die Schaltfläche Zusammenführen
. 🎜Das Obige ist ein Prozess der Vervollständigung Merge reqeust
und seine Bedeutung.
Der Zusammenführungsprozess kann auch einige CI/CD-Arbeiten umfassen, wie z. B. die Lint-Überprüfung von Codespezifikationen, Code-Unit-Tests usw., die später einzeln besprochen werden.
(Teilen von Lernvideos: Basic Programming Video)
Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie einen geschützten Zweig einrichten und eine PR in Gitlab einreichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!