7、Gitee的分支操作


分支的理解

我們先說一個簡單的案例,團隊開發一個項目時,A同事想要增加一個新的功能,假設需要一周完成,但是A同時寫了其中的30%,先提交到了主分支,其他人就無法提交自己改的,因為其他人提交上去的話,就被覆蓋了,所以需要等到A同事寫完才能提交上去,但是大家又看不到他的進度,也不能繼續干活,這怎么辦呢?

需要就出現了分支管理的辦法,A同事需要新增功能的話,就創建一個屬於他的分支,比如dev,A同事只需要在dev分支上干活就好了,也不會影響到master主分支,那么所有人都可以正常工作。

分支合並

創建分支

假設自己的A同事,現在需要增加功能,那么就創建一個dev分支,並將代碼上傳到dev分支上。

如下圖所示,我們創建了dev分支,但是HEAD指針還是指向了master主分支

 git checkout命令加上-b參數表示創建並切換分支上。

git checkout -b dev

切換分支

要通過dev分支提交並pull,所以需要切換到dev分支上

git checkout dev
git branch -a # 查看所有分支情況

 git branch -a命令可以查看所有分支,現在我們HEAD指針便指向dev分支,大家可以在上圖中看到dev分支上有個*號。

合並分支

1、創建一個temp.txt文件,通過master提交並push到遠程倉庫

 

2、切換到dev分支,修改temp.txt內容並提交

  • 該項目有一個測試文件 temp.txt,我們修改它的內容,並通過dev分支提交一下。

vim temp.txt
cat temp.txt
git add temp.txt
git commit -m "dev commit"

 

3、切換回master分支,查看temp.txt文件是否有修改

git checkout master
cat temp.txt

 大家可以看到我們剛才增加的一行內容不見了,嘿嘿。因為那個提交是在dev分支上,而master分支沒有變化。好了,下面我們來演示一下合並分支。

 

4、合並分支(快速合並)

  • 現在,我們把dev分支的工作成果合並到master分支上,如下圖:

 

大家注意到上面的 Fast-forward 信息,Git告訴我們,這次合並是“快進模式”,也就是直接把master指向dev的當前提交,所以合並速度 非常快。當然,也不是每次合並都能Fast-forward,我們后面會將其他方式的合並。合並完成后,就可以放心地刪除dev分支了

分支刪除

下面我們來演示一下刪除分支,如下圖:

git branch -d dev    # 刪除dev分支
git branch -a # 查看所有分支

小結

大家在實際操作中可以發現在我們創建、合並、刪除分支的速度非常快吧,這和直接在master分支上工作效果是一樣的,但過程更安全,更可靠。下面我們來簡單的總結一下:

  • 查看分支 git branch -a

  • 創建分支 git branch name

  • 切換分支 git checkout name

  • 創建並切換 git checkout -b name

  • 合並某分支到當前分支 git merge name

  • 刪除分支 git branch -d name

分支合並沖突

1)下面我們來演示一下不同分支修改同一個文件產生沖突問題,下面我們來創建一個新的分支,繼續開發新功能:

git checkout -b new1
vim temp.txt
cat temp.txt
git add temp.txt
git commit -m "new1 修改"

 2)現在我們將分支切換到master分支上修改temp.txt內容並提交,如下圖:

git checkout master
vim temp.txt
cat temp.txt
git add temp.txt
git commit -m "master 修改"

3、快速合並及解決沖突

這種情況下,Git無法執行“快速合並”,只能試圖把各自的修改合並起來,但這種合並就可能會有沖突,如下圖:

  • 並且后面的分支顯示變成了 (master|MERGING)

 果然沖突了,Git告訴我們temp.txt文件存在沖突,必須手動解決沖突后再提交。下面我們用git status查看一下狀態:

 我們發現temp.txt的內容,合並了new1分支和master主分支修改過的信息

所以這個時候就需要團隊的人員進行商討,要保留誰的

  • 保留了new1分支的內容,並重新提交了

好了,到這我們的分支合並沖突就講解完成了,下面我們來刪除分支。

最后,我們可以用 git log --graph --pretty=oneline --abbrev-commit 命令,查看一下分支合並。如下圖:

分支提交

(1)新建分支

git branch xxx (xxx填寫你的分支名稱)

(2)查看所有分支

git branch -a

(3)切換到某一分支

git checkout xxx (xxx填寫要切換的分支名稱)

(4)添加修改代碼到緩存(注意最后的"."前面有個空格

git add .

(5)添加提交代碼的備注

git commit -m "xxx" (xxx為本次提交代碼的備注)

(6)提交代碼到指定分支

git push origin xxx (xxx為要提交代碼的分支名稱)

測試結果

 

 

 

 

具體分支講解,請參考博客

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM