天天看點

git團隊開發使用流程概述和注意點

重新溫習了一下

git

,這篇文章主要總結一下使用

git

做開發的整體流程,是以不會做過多的

git

指令的詳細說明。

整體流程

這裡我在本地進行模拟,我希望模拟達到的效果是,一共有4個端。project是一個倉庫,manager是項目負責人、zs和ls是開發人員,他們3個都參與項目,都是項目貢獻者,分别在他們各自的電腦上進行開發,這是我本地的目錄結構:

| project // 路徑是   D:\桌面\project 
| zs      // 路徑是   D:\桌面\zs 
| ls      // 路徑是   D:\桌面\ls
| manager // 路徑是   D:\桌面\manager 
           

首先manager建立這個項目,建立了一個project檔案夾,然後使用

git init --bare

,建立一個裸倉庫。然後manager傳回自己的電腦(也就是上面提到的manager目錄),執行

git clone D:\桌面\project

,然後manager建立

README.md

檔案,簡單初始完畢master分支之後執行。

git add README.md
git commit -m '初始化項目,添加README檔案'
git push
// 上面這兩句就是簡單初始化一個master分支然後push上去
git branch dev
git switch dev
// 上面這兩句就是基與master分支建立dev分支,然後manager切換到dev去初始化項目架構啥的
           

manager在dev分支建立好架構之後告訴zs和ls,我項目初始化完畢了,你們拉取代碼開發。這個時候zs和ls應該基與dev分支建立屬于自己的分支。比如說zs這個人進入到自己的電腦(也就是上面提到的zs目錄),進行一下的操作:

git clone D:\桌面\project // 這個時候預設本地隻有master分支
git switch dev // 這句指令是切換到dev分支,因為本地沒有dev分支,是以會看遠端有沒有,如果有,就會建立本地dev分支,并且拉取遠端dev分支内容

git brnach zs // 這個時候是在dev分支建立的zs分支
git switch zs // 切換到zs這個分支,進行對應的代碼開發
           

zs代碼如果開發完畢了就可以執行

ls這個人也會和zs有着相同的操作,就不贅述了。

如果zs和ls都開發完畢了。manager就可以把zs和ls分支的代碼合并到dev了,manager再次進入到他的電腦,執行一下操作:

git switch zs // 切換到zs分支
git pull // 拉取zs分支的代碼

git switch dev // 切換到dev分支
git merge zs // 那zs的代碼合并到dev分支

git switch ls // 切換到ls分支
git pull // 拉取ls分支的代碼

git switch dev // 切換到dev分支
git merge ls // 那ls的代碼合并到dev分支
           

基本這樣就ok了,然後進行測試,測試的話可能會有bug,bug修複的話,可以基與dev分支建立bugfix分支,然後再用dev分支去合并bugfix分支,bug修複完畢之後,切換進入master分支,基本master分支合并dev分支,master分支的代碼就是線上環境的代碼了。然後可以再master上打

tag

,相當于是一個裡程碑:

git tag -a v0.1.0 -m '第一個版本' // 打标簽
git tag // 檢視标記
git push origin 'v1.0' // 把tag推送到遠端伺服器
           

當然可能還有一些其他的場景。

場景一

zs這個時候正在在他自己的分支上開發,但是manager告訴在dev分支上有一個bug,很緊急,必須停下手上現有的活去修複bug。這個時候你可能會想,很簡單嘛。直接切換到dev分支,然後拉一下最新代碼,在基與dev分支切出一個bugfix分支進行修複bug,開發完畢在切回dev,合并bugfix不就ok了嗎?确實是這樣,但是還有一個細節,當你切換到dev的時候,你在zs這個分支上可能還有一些代碼仍在工作區或者暫緩區,那應該怎麼把這些東西處理完畢呢?直接執行

git commit

嗎?,感覺不是太好。我們可以先執行

git add .

,然後執行

git stash

然後修複完bug之後切回zs分支,執行

git stash apply

恢複之前的代碼,繼續開發

git stash pop // 會變更stash裡面的棧
git stash apply // 不會變更stash裡面的棧
           

場景二

manager在dev分支上合并zs分支,發現合并完畢之後有一些沖突,然後manager嘗試解決這些沖突,但是發現有些沖突好像搞不定,需要zs自己搞,然後manager執行

git merge --abort

,也就是我不合并了,恢複合并zs這個分支之前的樣子,然後通知zs,讓他自己解決沖突,這個時候zs該如何操作呢?

zs切換到dev分支,然後拉取最新代碼,然後再切換回zs分支,執行

git merge dev

,然後解決沖突完畢,在zs分支執行

git push

,然後通知manager沖突解決完畢了,現在可以合并zs分支了。然後manager切換到zs分支,拉取最新代碼,然後再切回dev分支,然後基于dev分支,繼續merge zs這個分支。