git分支應用和多人協(xié)作
1.知識百科
Git(讀音為/g?t/)是一個開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項目版本管理。 也是Linus Torvalds為了幫助管理Linux內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件。
git 包含了完善的客戶端和服務端,客戶端和服務端之間通過某種安全通信 協(xié)議(HTTPS 或者 SSH)進行文件的上傳和下載。
git工具安裝和基本使用參考:https://blog.csdn.net/weixin_44453694/article/details/123999289
2.git分支
分?就是科幻電影??的平?宇宙,當你正在電腦前努?學習Git的時候,另?個你正在另?個平?宇宙?努?學習SVN。兩者之間可以同時執(zhí)行。
分?在實際中有什么?呢?假設你準備開發(fā)?個新功能,但是需要兩周才能完成,第?周你寫了50%的代碼,如果?刻提交,由于代碼還沒寫完,若直接提交則會導致代碼不完整影響其他人工作。但若等所有代碼寫完再一次性提交,?存在丟失每天進度的巨??險。而有了分支的產(chǎn)生,就可以創(chuàng)建一個屬于自己的分支,只有自己才能看到分支內(nèi)容,別?看不到,還繼續(xù)在原來的分?上正常?作,?你在??的分?上干活,想提交就提交,直到開發(fā)完畢后,再?次性合并到原來的分?上,這樣,既安全,又可以多人協(xié)作開發(fā),互不影響。
在沒有分支之前,master分?是?條線,Git?master指向最新的提交,再?HEAD指向master,就能確定當前分?,以及當前分?的提交點:
??每次提交,master分?都會向前移動?步,這樣,隨著你不斷提交,master分?的線也越
來越?。
??當我們創(chuàng)建新的分?,例如dev時,git新建了?個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表?當前分?在dev上:
??當有了dev分支,我們就可以通過改變HEAD指向來操作不同分支,當HEAD指向dev分支時則只能操作dev。當我們工作完成后,就可以將master和dev分支合并,即直接讓master指向dev提交分支。甚至可以直接刪除dev分支。
3.創(chuàng)建分支
$ git branch dev //創(chuàng)建分支
$ git checkout dev //切換分支
$ git branch //查看分支
* dev
master
$ git branch -d dev //刪除分支
$ git checkout -b dev //創(chuàng)建一個分支dev,并切換到當前分支下
??*表示當前所處于的分支位置。
3.1 創(chuàng)建分支示例
$ touch 1.txt //創(chuàng)建新文件
$ git checkout -b dev //創(chuàng)建dev分支并切換當當前分支下
$ git add 1.txt //添加1.txt
$ git commit -m "分支應用實例" //編寫提交說明
[dev 8873ebd] 分支應用實例
1 file changed, 1 insertion(+)
create mode 100644 1.txt
$ git push origin dev //提交到dev分支
3.2 合并分支并提交
$ git checkout master //切換到主分支
$ git merge dev -m "分支合并" //合并分支,將dev分支合并到主分支
更新 38d25e9..8873ebd
Fast-forward
1.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 1.txt
$ git add -A
$ git push origin master //將合并內(nèi)容提交到主分支
??合并并且提交到主分支成功后則可刪除dev分支
$ git branch -d dev
已刪除分支 dev(曾為 8873ebd)。
4.分支沖突問題
4.1 創(chuàng)建dev分支并提交
$ git checkout -b dev //創(chuàng)建分支并切換到dev分支下
$ vim 1.txt //打開1.txt 添加內(nèi)容
git 分支測試
git 分支沖突測試
$ git add 1.txt //添加1.txt
$ git commit -m "分支沖突測試"
$ git push origin dev //提交到dev分支
4.2 修改主分支并提交
$ git checkout master //切換到主分支
$ vim 1.txt //修改1.txt文件
git 分支測試
主分支測試
$ git add 1.txt
$ git commit -m "主分支提交測試"
$ git push origin master //修改內(nèi)容提交到主分支
4.3 合并分支
$ git merge dev -m "分支合并" //合并分支
自動合并 1.txt
沖突(內(nèi)容):合并沖突于 1.txt
自動合并失敗,修正沖突然后提交修正的結果。
$ git status //查看狀態(tài)
位于分支 master
您的分支與上游分支 'origin/master' 一致。
您有尚未合并的路徑。
(解決沖突并運行 "git commit")
(使用 "git merge --abort" 終止合并)
未合并的路徑:
(使用 "git add <文件>..." 標記解決方案)
雙方修改: 1.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
??打開1.txt文件可查看到主分支和dev分支的修改內(nèi)容。
??由于主分支和dev分支都對1.txt文字做出修改,導致分支自動合并失敗,此時就需要手動解決分支沖突問題。我們打開1.txt文件就可以看到主分支和dev分支的修改狀況,我們需要手動合并。
?當我們在合并分支時,遇到自動合并失敗,則可以通過git status 查看狀態(tài)信息,查看出現(xiàn)合并失敗的問題文件,然后收合并分支,再次添加提交文件,編寫提交說明重新提交即可。
在實際開發(fā)中,我們應該按照?個基本原則進?分?管理: ?先,master分?應該是?常穩(wěn)定的,也就是僅?來發(fā)布新版本,平時不能在上?干活; 那在哪干活呢?干活都在dev分?上,也就是說,dev分?是不穩(wěn)定的,到某個時候,?如 1.0版本發(fā)布時,再把dev分?合并到master上,在master分?發(fā)布1.0版本; 你和你的?伙伴們每個?都在dev分?上干活,每個?都有??的分?,時不時地往dev分 ?上合并就可以了。
所以,團隊合作的分?看起來就像這樣:
5.多人協(xié)作
??Git是一個開源的分布式版本控制系統(tǒng),可以有效的完成版本管理和多人協(xié)作開發(fā)。要實現(xiàn)多人協(xié)作則需要在服務器端添加協(xié)作人員。
??在倉庫管理中可以添加開發(fā)者人員,設置代碼審核人員和分支合并審核。
-
控制系統(tǒng)
+關注
關注
41文章
6604瀏覽量
110574 -
開源
+關注
關注
3文章
3309瀏覽量
42471 -
Git
+關注
關注
0文章
198瀏覽量
15755
發(fā)布評論請先 登錄
相關推薦
評論