Inhaltsverzeichnis
第一个场景:正常开发迭代
Das zweite Szenario ist die Online-Fehlerbehebung
Heim Entwicklungswerkzeuge Idiot Teilen Sie eine elegante Art, den Git-Workflow zu spielen

Teilen Sie eine elegante Art, den Git-Workflow zu spielen

Jan 13, 2023 pm 03:44 PM
前端 git 后端

In der Entwicklung, egal ob es sich um ein Team handelt, das gemeinsam ein Projekt entwickelt, oder darum, ein Projekt unabhängig zu entwickeln. Es ist unabdingbar, sich mit git auseinanderzusetzen. Angesichts unterschiedlicher Entwicklungsszenarien verfügt möglicherweise jedes Team über seinen eigenen Git-Workflow. Hier möchte ich den git-Workflow basierend auf gitlab teilen, den mein Team derzeit verwendet. Lass uns gemeinsam reden. git打交道。面对不同的开发场景,或许每个团队都有自己的git工作流。这里,我想分享一下我的团队目前正在使用的基于gitlabgit工作流。一起交流一下。

规范化的git流程能降低我们的出错概率,也不会经常遇到git问题,然后去搜一堆git高阶用法。我们的这套git玩法儿,其实只要会基本的git操作就行了,然后规范化操作,基本不会遇到git问题,这样大家就可以将时间用于业务上。最终,希望大家研究git的时候是在感兴趣的时候,而不是遇到问题,紧急去寻找答案的时候

我们的这种git工作流玩儿法呢,主要是分为下面几个分支:

  • master分支   最新的稳定代码
  • vx.x.x分支   版本分支,x.x.x是此次开发的版本号。
  • feat-xxx分支 特性(新的功能)分支
  • fix-xxx分支  修复分支

上面的这些分支呢,就是我们在开发中需要经常去创建并使用的分支。下面详细说说每个分支代表的意思。

master分支代表的是最新的稳定版本的代码,一般是版本分支或者修复分支的代码上线后合并过来的。

feat-xxx

Der standardisierte Git-Prozess kann unsere Fehlerwahrscheinlichkeit verringern, und wir werden nicht oft auf Git-Probleme stoßen und dann nach einer Reihe fortgeschrittener Git-Nutzung suchen. Unsere Git-Methode erfordert eigentlich nur, dass Sie die grundlegenden Git-Operationen kennen und diese dann standardisieren, und Sie werden grundsätzlich nicht auf Git-Probleme stoßen, sodass jeder seine Zeit mit dem Geschäft verbringen kann. Letztendlich hoffe ich, dass jeder Git studiert, wenn er interessiert ist, und nicht, wenn er auf Probleme stößt und dringend nach Antworten sucht🎜
🎜Unsere Git-Workflow-Methode ist hauptsächlich in die folgenden Bereiche unterteilt: 🎜
  • master branch Der neueste stabile Code
  • vx.x.x branch version branch, x.x.x ist die Versionsnummer des Entwicklungszweigs.
  • feat-xxx Branch Feature (neues Feature) Branch
  • fix-xxx Branch Repair Branch
  • 🎜Die oben genannten Zweige sind die Zweige, die wir während der Entwicklung häufig erstellen und verwenden müssen. Lassen Sie uns im Folgenden ausführlich über die Bedeutung der einzelnen Zweige sprechen. 🎜🎜Der Zweig master stellt die neueste stabile Version des Codes dar, die normalerweise zusammengeführt wird, nachdem der Code des Versionszweigs oder Reparaturzweigs online geht. 🎜🎜feat-xxx branch stellt einen Zweig dar, der erstellt wurde, um eine neue Funktion einer bestimmten Version zu entwickeln. 🎜

    vx.x.x stellt den Versionszweig dar, den wir vor dem Start jeder Version von master unter dem Namen dieser Versionsnummer erstellen 2.0.1, dann ist der Versionszweig v2.0.1. Warten Sie dann, bis die neuen Funktionen dieser Version in feat-xxx entwickelt sind und den Rauchtest bestehen, und senden Sie dann einen mr merge auf gitlab an dieser Versionszweig. Nachdem jeder Umgebungstest bestanden wurde, führen Sie den Code des Versionszweigs in master zusammen und löschen Sie dann diesen Versionszweig. vx.x.x代表的是版本分支,这个是我们在每个版本开始前,以此次版本号为名从master创建的分支,比如版本号是 2.0.1,那么版本分支则为 v2.0.1。然后等到该版本的各个新功能在feat-xxx开发完成并冒烟测试通过后,就到gitlab上提一个mr合并到该版本分支上。等到各个环境测试通过后,就将版本分支的代码合并到master上,然后就可以删除本次的版本分支了。

    fix-xxx表示的是修复分支,通常在处理线上问题时,创建一个以缺陷名称命名的分支,在缺陷测试通过后,通过mr合并到master分支去

    注意:这里有个细节是,在特性分支上开发提交的commit信息,一般认为是无用信息,会在合并给版本分支的时候给合并到一个commit(由于我们是使用gitlab来合并,所以在发起mr请求时勾选squash选项就好了),而在提测后不论是修复测试过程中bug,或者是优化功能的commit则会全部保留,这个目的是一个警示,因为我希望最好的情况是提测即上线,虽然达到这个目标有难度,但是这些留下的commit信息可以帮助我们复盘

    各个分支的作用如上面所描述的那样,接着聊聊我们开发的一些经典场景该怎么做:

    第一个场景:正常开发迭代

    我们以本次需要开发一个 1.0.0版本为例,这个其中有两个功能模块,一个是需要添加一个按钮,一个是需要添加一个表格

    sequenceDiagram
    master->>v1.0.0: 从master切出 v1.0.0
    master->>feat-add-button: 从master切出 feat-add-button
    master->>feat-add-form: 从master切出 feat-add-button
    feat-add-form->>feat-add-form: 开发完成
    feat-add-button->>feat-add-button: 开发完成
    feat-add-button->>v1.0.0: 在gitlab发起mr到v1.0.0,并合并所有commit
    feat-add-form->>v1.0.0: 在gitlab发起mr到v1.0.0,并合并所有commit
    v1.0.0->>v1.0.0: 提测
    feat-add-button->>feat-add-button: 修复测试bug
    feat-add-button->>v1.0.0: 将修复的 commit cherry pick到 v1.0.0
    v1.0.0->>master: 在gitlab上mr到master,并将合并信息改成 v1.0.0
    Nach dem Login kopieren

    Teilen Sie eine elegante Art, den Git-Workflow zu spielen

    通过上面的时序图,可以看到,我们以我们即将开始的版本命名了一个版本分支 v1.0.0,并且也根据这个版本下面的两个功能创建了两个特性分支 feat-add-buttonfeat-add-form,然后等功能开发完成后再通过gitlab发起mr(注意,这里要把合并commit选项勾选上)合并到 v1.0.0,那么 v1.0.0分支的代码就会从dev环境开始流转,直到生产环境。这其中,如果有需要修复或者优化的地方,也是先修改特性分支,然后再cherry pick

    fix-xxx stellt einen Reparaturzweig dar. Normalerweise wird bei der Bearbeitung von Online-Problemen ein Zweig erstellt, der nach dem Fehlernamen benannt ist. Nachdem der Fehlertest bestanden wurde, wird mr zusammengeführt der master-Zweig

    Hinweis: Hier gibt es ein Detail: Die von der Entwicklung im Feature-Zweig übermittelten commit-Informationen werden im Allgemeinen als nutzlose Informationen betrachtet und in den zusammengeführt Version Wenn Sie verzweigen, führen Sie es in einem commit zusammen (da wir zum Zusammenführen gitlab verwenden, überprüfen Sie daher squash, wenn Sie eine <code>mr-Anfrage ausgeben <). Die Option /code> ist in Ordnung), und nach der Übermittlung des Tests werden alle commit-Befehle ausgeführt, unabhängig davon, ob es darum geht, Fehler während des Testvorgangs zu beheben oder die Optimierungsfunktion zu commit Dieser Zweck ist eine Warnung, da ich hoffe, dass die beste Situation darin besteht, sofort nach dem Start des Tests online zu gehen. Obwohl es schwierig ist, dieses Ziel zu erreichen, können die commit-Informationen zurückbleiben Helfen Sie uns bei der Überprüfung

    Teilen Sie eine elegante Art, den Git-Workflow zu spielenDie Funktionen jedes Zweigs sind wie oben beschrieben. Lassen Sie uns dann darüber sprechen, wie wir einige klassische Szenarien umsetzen, die wir entwickelt haben:

    Das erste Szenario: normale Entwicklungsiteration

    Wir nehmen uns diese Zeit, um eine Version 1.0.0 als Beispiel zu entwickeln. Es gibt zwei Funktionsmodule, eines dient zum Hinzufügen einer Schaltfläche und das andere zum Hinzufügen eines Formulars

    sequenceDiagram
    master->>fix-button-click: 从master切出 fix-button-click
    fix-button-click->>fix-button-click: 修复问题并测试
    fix-button-click->>master: 从gitlab发起mr合并到master
    Nach dem Login kopieren

    Es gibt eine weitere Szene im normalen Iterationsprozess. Das heißt, während des Entwicklungsprozesses kam plötzlich PM vorbei und sagte, dass aufgrund höherer Gewalt eine Funktion unterbrochen werden müsse. Wenn der Code zu diesem Zeitpunkt noch nicht getestet wurde oder die Funktion relativ einfach ist, ist die Handhabung nicht allzu mühsam. Wenn ja, werden Ihre Funktion und der Code anderer Kollegen bereits getestet und einige Fehler wurden behoben. Die Commits sind alle miteinander verflochten, insbesondere die Anforderungen, die das Ändern vieler Dateien erfordern. , müssen Sie sich nicht nur den Code anderer Leute ansehen, sondern auch darauf achten, keine Fehler in Ihrem eigenen Code zu machen. Zu diesem Zeitpunkt ist es in unserem Prozess sehr einfach, die vorhandenen Versionszweige zu löschen und dann die Funktionszweige neu zu gruppieren, die online sein müssen. Es ist ersichtlich, dass Versionszweige durch Feature-Zweige kombiniert werden, was bedeutet, dass Versionszweige durch verschiedene Feature-Zweige beliebig kombiniert werden können. Dies ist bequemer zu handhaben

    Das zweite Szenario ist die Online-Fehlerbehebung

    Wir nehmen als Beispiel das Klickereignis einer Schaltfläche, die online repariert werden muss

    rrreee

    Tatsächlich unterscheidet sich der Prozess hier nicht wesentlich vom oben , aber hier gibt es Dinge zu beachten, Online-Problembehebungen, ein Commit pro Fehler und Commits werden beim Zusammenführen in den Master nicht zusammengeführt. Und die Zusammenführungsinformationen müssen auf diese Versionsnummer geändert werden. Diesmal ist es beispielsweise v1.0.1

    🎜Das dritte Szenario ist die parallele Entwicklung mehrerer Versionen🎜🎜Dieses Szenario unterscheidet sich nicht vom normalen Iterationsszenario. Es hängt nur davon ab, ob Sie mehrere Versionen haben. Erstellen Sie also einfach die entsprechende Version Zweig. Befolgen Sie einfach den normalen Iterationsprozess für jeden Versionszweig. 🎜🎜Q&A🎜🎜F: Warum gibt es keine Zweige, die der Umgebung wie Dev und Test entsprechen, sodass eine Push-Bereitstellung erreicht werden kann? 🎜🎜A: Unser Prozess hat die Verwendung dieser festen Zweige aufgegeben. Dafür gibt es mehrere Gründe, 🎜
    • Nachdem der Code getestet wurde, von der Entwicklungs- zur Test- und sogar zur uat-Umgebung (Vorabversion), wenn es Codeänderungen in verschiedenen Umgebungen gibt, muss der Code geändert werden, um den Code dieser Zweige konsistent zu halten Die Verzweigung muss mit jeder Umgebung synchronisiert werden, was etwas mühsam ist. Dieses Problem besteht bei Versionszweigen nicht. Es gibt nur einen Versionszweig, der verschiedenen Umgebungen entsprechen kann.

    • Erleichtert die parallele Entwicklung mehrerer Versionen. Es können mehrere Versionszweige erstellt werden, was die Bereitstellung in verschiedenen Testumgebungen während der parallelen Entwicklung bequemer macht. Wenn die Module zwischen den Versionen nicht eng miteinander verbunden sind, können Sie sie auch parallel testen.

    • Semantisch. Mithilfe von Versionszweigen können Sie anhand des Zweignamens erkennen, welche Zweige sich derzeit in der Entwicklung befinden.

    F: So gehen Sie mit Änderungen im Master-Zweig um

    A: Wenn es Änderungen im Master-Zweig gibt, führen Sie diese rechtzeitig in Ihren eigenen Funktionszweig ein, um Konflikte mit den Codes anderer Mitglieder zu vermeiden

    Empfohlenes Lernen: „Git-Video-Tutorial“

Das obige ist der detaillierte Inhalt vonTeilen Sie eine elegante Art, den Git-Workflow zu spielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So installieren Sie Deepseek So installieren Sie Deepseek Feb 19, 2025 pm 05:48 PM

Es gibt viele Möglichkeiten, Deepseek zu installieren, einschließlich: kompilieren Sie von Quelle (für erfahrene Entwickler) mit vorberechtigten Paketen (für Windows -Benutzer) mit Docker -Containern (für bequem am besten, um die Kompatibilität nicht zu sorgen), unabhängig von der Methode, die Sie auswählen, bitte lesen Die offiziellen Dokumente vorbereiten sie sorgfältig und bereiten sie voll und ganz vor, um unnötige Schwierigkeiten zu vermeiden.

Zusammenfassung der FAQs für die Verwendung von Deepseek Zusammenfassung der FAQs für die Verwendung von Deepseek Feb 19, 2025 pm 03:45 PM

Deepseekai Tool User Guide und FAQ Deepseek ist ein leistungsstarkes KI -Intelligent -Tool. FAQ: Der Unterschied zwischen verschiedenen Zugriffsmethoden: Es gibt keinen Unterschied in der Funktion zwischen Webversion, App -Version und API -Aufrufen, und App ist nur ein Wrapper für die Webversion. Die lokale Bereitstellung verwendet ein Destillationsmodell, das der Vollversion von Deepseek-R1 geringfügig unteren ist, das 32-Bit-Modell theoretisch 90% Vollversionsfunktion. Was ist eine Taverne? SillyTervern ist eine Front-End-Oberfläche, die das KI-Modell über API oder Ollama anruft. Was ist Breaking Limit

Was sind die KI-Tools? Was sind die KI-Tools? Nov 29, 2024 am 11:11 AM

Zu den KI-Tools gehören: Doubao, ChatGPT, Gemini, BlenderBot usw.

Was sind die Graustufenverschlüsselungsfonds? Was sind die Graustufenverschlüsselungsfonds? Mar 05, 2025 pm 12:33 PM

Grayscale -Investitionen: Der Kanal für institutionelle Anleger, um den Kryptowährungsmarkt zu betreten. Das Unternehmen hat mehrere Krypto -Trusts auf den Markt gebracht, was die weit verbreitete Marktaufmerksamkeit auf sich gezogen hat, die Auswirkungen dieser Mittel auf die Tokenpreise jedoch erheblich variieren. In diesem Artikel werden einige der wichtigsten Krypto -Vertrauensfonds von Grayscale ausführlich vorgestellt. Grayscale Major Crypto Trust Funds, die auf einer Blick Grayscale-Investition erhältlich sind (gegründet von DigitalCurrencyGroup im Jahr 2013), verwaltet eine Vielzahl von Crypto Asset Trust Funds und bietet institutionelle Anleger und Einzelpersonen mit hohem Nettel mit konformen Investitionskanälen. Zu den Hauptfonds gehören: Zcash (ZEC), Sol,

Welche Auswirkungen auf die Branche haben die Top -Markthersteller in den Kryptomarkt? Welche Auswirkungen auf die Branche haben die Top -Markthersteller in den Kryptomarkt? Mar 04, 2025 pm 08:03 PM

Der Einstieg des Makers von Top -Market Maker Castle in den Bitcoin Market Maker ist ein Symbol für die Reife des Bitcoin -Marktes und ein wichtiger Schritt für traditionelle Finanzkräfte, um um zukünftige Vermögenswerte zu konkurrieren. Nach Angaben von Bloomberg versucht Citadel Securities am 25. Februar, ein Liquiditätsanbieter für Kryptowährungen zu werden. Das Unternehmen zielt darauf ab, sich der Liste der Markthersteller an verschiedenen Börsen anzuschließen, einschließlich Börsen, die von CoinbaseGlobal, BinanceHoldings und Crypto.com betrieben werden, sagten mit der Angelegenheit, die mit der Angelegenheit vertraut sind. Nach der Genehmigung von der Börse plante das Unternehmen zunächst, ein Markthersteller -Team außerhalb der USA einzurichten. Dieser Schritt ist nicht nur ein Zeichen

Delphi Digital: Wie kann man die neue KI -Wirtschaft verändern, indem sie die neue Elizaos V2 -Architektur analysiert? Delphi Digital: Wie kann man die neue KI -Wirtschaft verändern, indem sie die neue Elizaos V2 -Architektur analysiert? Mar 04, 2025 pm 07:00 PM

ElizaOSV2: Erleichterung der KI und Führung der neuen Wirtschaft von Web3. Dieser Artikel wird sich mit den wichtigsten Innovationen von Elizaosv2 befassen und wie er eine KI-gesteuerte zukünftige Wirtschaft prägt. KI -Automatisierung: Es war ursprünglich ein KI -Framework, der sich auf Web3 -Automatisierung konzentrierte. Mit der V1 -Version kann AI mit intelligenten Verträgen und Blockchain -Daten interagieren, während die V2 -Version erhebliche Leistungsverbesserungen erzielt. Anstatt nur einfache Anweisungen auszuführen, kann KI Workflows unabhängig verwalten, Geschäft betreiben und finanzielle Strategien entwickeln. Architektur -Upgrade: Verbessert a

Das Geheimnis hinter O1/Deepseek-R1 kann auch in multimodalen großen Modellen verwendet werden Das Geheimnis hinter O1/Deepseek-R1 kann auch in multimodalen großen Modellen verwendet werden Mar 12, 2025 pm 01:03 PM

Forscher der Shanghai Jiaotong University, Shanghai Ailab und der chinesischen Universität von Hongkong haben das Open-Source-Projekt zur Visual-RFT (visuelle Verbesserung der Feinabstimmung) gestartet, für das nur eine geringe Datenmenge erforderlich ist, um die Leistung des visuellen Sprachen-Big-Modells (LVLM) signifikant zu verbessern. Visual-RFT kombiniert geschickt die regelbasierte Verstärkungslernansatz von Deepseek-R1 mit dem RFT-Paradigma (Verstärkung der Verstärkung der Verstärkung) und erweitert diesen Ansatz erfolgreich vom Textfeld auf das Gesichtsfeld. Durch die Gestaltung der entsprechenden Regelprämien für Aufgaben wie die visuelle Unterkategorisierung und Objekterkennung überwindet die visuelle RFT die Einschränkungen der Deepseek-R1-Methode, die auf Text, mathematisches Denken und andere Bereiche beschränkt ist und eine neue Möglichkeit für das LVLM-Training bietet. Vis

Bitweise: Unternehmen kaufen Bitcoin einen vernachlässigten großen Trend Bitweise: Unternehmen kaufen Bitcoin einen vernachlässigten großen Trend Mar 05, 2025 pm 02:42 PM

Wöchentliche Beobachtung: Unternehmen, die Bitcoin horten - ein Brauenwechsel Ich weise oft auf einige übersehene Markttrends in wöchentlichen Memos. Der Schritt von MicroStrategy ist ein starkes Beispiel. Viele Menschen mögen sagen: "Microstrategy und Michaelsaylor sind bereits bekannt, worauf werden Sie achten?" Diese Ansicht ist einseitig. Eingehende Untersuchungen zur Einführung von Bitcoin als Reserve-Vermögenswert in den letzten Monaten zeigen, dass dies kein isolierter Fall ist, sondern ein wichtiger Trend, der sich herausstellt. Ich gehe davon aus, dass in den nächsten 12 bis 18 Monaten Hunderte von Unternehmen dem Beispiel folgen und große Mengen Bitcoin kaufen werden

See all articles