區(qū)別:1、fork是一個(gè)gitHub操作,可以克隆出一個(gè)倉(cāng)庫(kù)的新拷貝,branch是一個(gè)Git操作,可以開(kāi)啟另一個(gè)分支;2、fork操作得到的是一個(gè)新的的代碼倉(cāng),而branch操作得到的是代碼倉(cāng)的一個(gè)新的分支。
本文操作環(huán)境:Windows10系統(tǒng)、Git2.30.0版、Dell G3電腦。
git中fork與branch的區(qū)別是什么
fork
fork,英語(yǔ)翻譯過(guò)來(lái)就是叉子,動(dòng)詞形式則是分叉,如下圖,從左到右,一條直線變成多條直線
轉(zhuǎn)到git倉(cāng)庫(kù)中,fork則可以代表分叉、克隆 出一個(gè)(倉(cāng)庫(kù)的)新拷貝
包含了原來(lái)的倉(cāng)庫(kù)(即upstream repository,上游倉(cāng)庫(kù))所有內(nèi)容,如分支、Tag、提交
如果想將你的修改合并到原項(xiàng)目中時(shí),可以通過(guò)的 Pull Request 把你的提交貢獻(xiàn)回 原倉(cāng)庫(kù)
fork 其實(shí)并不是 Git 操作,而是一個(gè) github 操作
也就是說(shuō),對(duì)于原生的 Git 工具來(lái)說(shuō),是沒(méi)有 fork 的操作的,fork 是類似 GitHub、碼云等等在線代碼托管平臺(tái)提出來(lái)的功能。
fork 的作用,類似于當(dāng)你在托管平臺(tái)上看到了一個(gè)很有趣的項(xiàng)目,想要自己去改進(jìn)它,然后你 fork 了它(類似克隆),最后你改了一個(gè)很厲害的功能出來(lái),想要推給原 fork 項(xiàng)目,這時(shí)候你可以 pull request,一旦對(duì)方接受了你的 pull request,你的代碼就有可能會(huì)出現(xiàn)在原 fork 項(xiàng)目中了。
branch
branch,譯為分支,其作用簡(jiǎn)單而言就是開(kāi)啟另一個(gè)分支, 使用分支意味著你可以把你的工作從開(kāi)發(fā)主線上分離開(kāi)來(lái),以免影響開(kāi)發(fā)主線
Git 處理分支的方式十分輕量,創(chuàng)建新分支這一操作幾乎能在瞬間完成,并且在不同分支之間的切換操作也是一樣便捷
在我們開(kāi)發(fā)中,默認(rèn)只有一條master分支,如下圖所示:
通過(guò)git branch可以創(chuàng)建一個(gè)分支,但并不會(huì)自動(dòng)切換到新分支中去
通過(guò)git checkout可以切換到另一個(gè)testing分支
對(duì)于遠(yuǎn)端倉(cāng)庫(kù)來(lái)說(shuō),默認(rèn)有一個(gè) master 的分支,也叫作主干。當(dāng)你接到了一個(gè)新的需求,你可以拉一個(gè)分支出來(lái),在這上面修改代碼而不影響原主干代碼,等修改測(cè)試完畢后再合并到主干上去。
這也就是非常常見(jiàn)的 Git 分支管理的內(nèi)容。
區(qū)別:
-
fork 只能對(duì)代碼倉(cāng)進(jìn)行操作,且 fork 不屬于 git 的命令,通常用于代碼倉(cāng)托管平臺(tái)的一種“操作”
-
clone 是 git 的一種命令,它的作用是將文件從遠(yuǎn)程代碼倉(cāng)下載到本地,從而形成一個(gè)本地代碼倉(cāng)
-
branch 特征與 fork 很類似,fork 得到的是一個(gè)新的、自己的代碼倉(cāng),而 branch 得到的是一個(gè)代碼倉(cāng)的一個(gè)新分支
推薦學(xué)習(xí):《Git教程》