一、什么是分支
1.在版本控制系統(tǒng)(如Git)中,分支(Branch)是代碼庫的不同線路或路徑,用于同時進行不同的開發(fā)工作。分支可以將代碼庫的狀態(tài) ‘‘復制’’ 到一個獨立的環(huán)境中,使得在這個分支上進行的更改不會影響到其他分支。
2.使用分支的好處是可以同時進行多個并行的開發(fā)任務(wù),每個任務(wù)都在自己的分支上進行。這樣可以有效地隔離不同的功能開發(fā)、修復bug或其他任務(wù),而不會互相干擾。完成一個任務(wù)后,可以將該分支的更改合并回主分支(通常是"master"或"main"分支),從而將新功能或修復應用到代碼庫的主干中。
3.分支讓開發(fā)團隊能夠更靈活地管理代碼的開發(fā)和發(fā)布過程。它們可以同時處理多個功能或任務(wù),并且在開發(fā)過程中可以頻繁地創(chuàng)建、合并和刪除分支,以適應不同的開發(fā)需求。
4.在分支內(nèi)部,所有與該分支相關(guān)的更改都是相對獨立的,因此可以在不影響其他分支的情況下進行實驗、測試和修改。分支也有助于團隊合作,因為不同的開發(fā)人員可以在各自的分支上獨立工作,而不會相互干擾。
5.總之,分支是版本控制系統(tǒng)中的一個重要概念,它提供了并行開發(fā)、隔離工作和代碼管理的機制,使得團隊能夠更加高效地協(xié)同工作和管理代碼庫。
-
總結(jié):分支就是基于主支創(chuàng)建出來的一個"副本"(不是簡單復制),在分支上修改的內(nèi)容不會直接影響主支,且各個分支的內(nèi)容相互獨立。在分支上更新調(diào)試好后在將分支與主支合并,完成更新。分支只存放修改和更新的內(nèi)容,而與主支一樣的內(nèi)容會直接引用。
-
內(nèi)容補充:
在 Git 中,創(chuàng)建分支并不是將代碼庫的完整副本復制一份,而只是創(chuàng)建了一個指向特定提交(commit)的指針。實際上,在創(chuàng)建分支時,Git 僅僅創(chuàng)建了一個新的指針,該指針指向當前所在分支的最后一個提交(commit)。這樣,新分支就可以獨立地進行新增、修改和刪除文件操作,而不會影響其他分支。由于 Git 使用的是基于快照(snapshot)的版本控制系統(tǒng),每次提交(commit)都會記錄項目的狀態(tài),因此創(chuàng)建新的分支并不需要復制整個代碼庫的副本。分支間共享大部分歷史提交(commits),只有新分支上的更改會產(chǎn)生新的提交記錄。因此,通過創(chuàng)建分支,您實際上是在給定的提交(commit)上創(chuàng)建了一個新的指針。這使得在不同的分支之間進行切換、合并和處理獨立的開發(fā)任務(wù)變得非常高效和靈活。
二、相關(guān)命令
-
查看分支
git branch
-
創(chuàng)建分支
git branch 分支名
-
刪除分支
git branch -d 分支名
-
切換分支
git checkout 分支名稱
-
分支合并(可能會產(chǎn)生沖突,需要手動解決)
git merge 合并分支的名稱
注意:切換分支在合并,會合并到自己所在分支
-
查看遠程分支
git branch -r
-
推送并創(chuàng)建遠程分支
git push origin 分支名字
-
將遠程分支的內(nèi)容拉回本地
git pull origin 分支名字
-
刪除遠程分支
git push origin --delete 分支名字
三、簡單實例演示
- 只在本地倉庫演示:
1. 新建一個文件夾,在該目錄下打開git命名
使用 git init 初始化本地倉庫 成功后會出現(xiàn) .git文件 (如果沒有點擊 菜單欄上的 查看–勾選 隱藏 項目)
然后 新建一個文件,如果沒有文件無法查看分支
新建文件內(nèi)容(方便與后面分支比較)
2.將新建文件添加到緩沖區(qū),然后提交
git add .
git commit -m “第一次提交,初始化倉庫”
3.查看分支
git branch
可以看到當前只有一個分支 master
4.新建一個dev分支
git branch dev
然后查看分支
git branch
可以看到已經(jīng)有dev 和 master 兩個分支,當前在master分支
5.切換分支到dev
git checkout dev
查看當前分支
git branch
如圖:已經(jīng)切換到 dev 分支
6.查看文件目錄,發(fā)現(xiàn)文件和以前一樣,因為dev分支是基于master的
打開index.js文件也是一樣
然后添加一些內(nèi)容:console.log(‘我是dev分支新加的內(nèi)容’);
7. 添加到緩存區(qū),然后提交(一定要有這一步)
git add .
git commit -m “dev-新增內(nèi)容”
8. 切換到master分支查看內(nèi)容
git checkout master
查看當前分支(只是確認切換成功)
git branch
9. 打開文件,查看index.js的內(nèi)容
內(nèi)容和以前一樣,說明在dev分支修改的內(nèi)容沒有影響到master
而切換回dev(git checkout dev)發(fā)現(xiàn)內(nèi)容是修改過的
10. 如果覺得dev分支已經(jīng)開發(fā)完成,可以合并,確保自己在master分區(qū)
注意:當前是在master分支,是將dev分支合并到master分支
git merge dev
情況一:(無沖突)
這里是master內(nèi)容沒有被修改,后面會有被修改的情況(第 12點)
(master:我還是以前的我)
11. 查看index.js內(nèi)容
發(fā)現(xiàn)新增的內(nèi)容已經(jīng)合并到master(沒有沖突)
情況二:(有沖突)
在合并之前,master被修改了,有其他分支或自己 commit 過
(master:我已經(jīng)不是以前的我了)
12. 合并dev分支前
修改index.js
13. 添加緩沖區(qū),提交 (再次提醒不要忘了這一步)
git add .
git commit -m “修改master”
14. 回到master分區(qū)后將dev分支合并
git merge dev
圖中出現(xiàn)的內(nèi)容明顯與上次合并出現(xiàn)不一樣
意思是說:在index.js文件中合并沖突,自動合并失敗;讓你修復沖突,然后提交結(jié)果。
(如果出現(xiàn)的是: Already up to date. 說明dev分支上次合并后沒有其他更新,不需要合并,可以到dev分支修改一下內(nèi)容,然后提交后在來合并,以此來驗證這種情況)
15. 根據(jù)提示:打開index.js文件
查看沖突,根據(jù)實際情況選擇需要保留的內(nèi)容
(一些編輯器可能沒有快捷的選項,可以他生成的特殊字段手動刪除,選擇)
這里我選擇后面?zhèn)魅氲母?br>
16. 解決沖突后,然后提交
git add .
git commit -m “解決沖突”
17.任務(wù)完成后可以刪除不需要的dev分支
git branch -d dev
完成!
四、其他
如果你在Git中意外刪除了某個分支,或者誤切換到了其他分支導致分支丟失,不用擔心,Git提供了幾種方法來恢復丟失的分支。
以下是幾種常見的方法來恢復分支:
使用git reflog命令查看分支歷史:git reflog命令可以查看所有分支的操作歷史記錄,包括被刪除的分支。通過查找特定的提交記錄或分支名稱,可以找到被刪除的分支的最后一次提交記錄的哈希值。
git reflog
使用git branch <branch_name> <commit_hash>命令創(chuàng)建新分支:根據(jù)找到的提交記錄的哈希值,可以使用該命令創(chuàng)建一個新的分支并將其指向該提交記錄。這樣就可以恢復被刪除的分支。
git branch <branch_name> <commit_hash>
使用git fsck --lost-found命令查找丟失的對象:該命令會掃描Git對象數(shù)據(jù)庫,查找沒有引用的丟失對象,其中可能包括被誤刪的分支。找到對應的分支后,可以使用第二步的方法來恢復它。
git fsck --lost-found
從遠程倉庫恢復分支:如果分支已經(jīng)推送到遠程倉庫,可以使用git fetch origin <branch_name>命令將遠程分支恢復到本地。文章來源:http://www.zghlxwxcb.cn/news/detail-841966.html
git fetch origin <branch_name>
這些方法中的每一種都有不同的應用場景和使用方式。你可以根據(jù)自己的實際情況選擇適合的方法來恢復分支。文章來源地址http://www.zghlxwxcb.cn/news/detail-841966.html
到了這里,關(guān)于Git 分支簡介-創(chuàng)建-合并-解決沖突-刪除的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!