Git Fork 技巧


日常工作中,經(jīng)常會遇到一種情況,看到別人寫的好的 repo 希望能夠?qū)W習(xí)瞻仰,一番觀摩之后發(fā)現(xiàn)一些問題,因而需要對代碼做一波修改,修改之后希望能夠貢獻(xiàn)在源代碼上,但是又因為沒有權(quán)限無法提交,這時候就可以使用 Fork了。


Fork 的主要作用

  1. 對該項目提出改動意見。
  2. 使用其它的人的項目作為自己項目的起點。
    這樣你就可以在遵守Open source license的前提下任意修改這個項目了。

常用場景

  1. 對 repoA 進(jìn)行 Fork,然后就可以在自己的github下看到該工程了,名為 repoB
  2. 若直接 clone repoB
  • 進(jìn)行瀏覽或修改,commit之后可以直接提交在自己的 repoB 中;
  • 若希望修改也發(fā)生在 repoA中,則通過提 PR 的方式,則原 repoA accept后即可修改;
  1. 若直接 clone repoA
  • 進(jìn)行瀏覽或修改,commit之后沒有代碼 push 權(quán)限,因為此時本地的 repo 關(guān)聯(lián)的是 repoA;git remote -v可以查看
  • 則需要將 repoB也設(shè)為本地 repo 的遠(yuǎn)端代碼,并設(shè)置遠(yuǎn)端repo的名字<fork_repo>
    git remote add <fork_repo> <repoB_git_address>
    之后則可以像步驟2 一樣進(jìn)行其他的操作。
Tips
  1. 通常我們在分支上push代碼時,會直接使用gp命令,這里其實是git push origin <branch_name> 的縮寫,代表將當(dāng)前分支push到origin遠(yuǎn)端分支上;
  2. 當(dāng)我們在步驟3中為本地repo添加了第二個遠(yuǎn)端源之后,則當(dāng)前repo有兩個關(guān)聯(lián)的遠(yuǎn)端repo,分別為originfork_repo,這時在分支上提交代碼時不能再使用 gp, 需要使用 git push fork_repo <branch_name>來完成push;

涉及知識點

  1. 使用 git remote -v 查看遠(yuǎn)程狀態(tài)
git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

通常 fetch 和 push 的兩個遠(yuǎn)端源是同一個,當(dāng)然也可以設(shè)置成不同的遠(yuǎn)端源,如從A源進(jìn)行fetch,而去B源push提交。

  1. 為本地repo添加一個遠(yuǎn)端repo
git remote add <remote_repo_name> <remote_repo_github_address>
git remote -v
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
  1. Push 本地代碼到遠(yuǎn)端repo
git push <remote_repo_name> <branch_name>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容