Git上fork後的程式碼倉庫如何與原倉庫進行同步
問題場景:最近公司專案組不允許個人在遠端倉庫建分支,要求每個人fork一個倉庫,以後就在自己fork的倉庫裡提交程式碼,通過pull request將程式碼合併到主倉庫。
這裡的問題在於,原來的主倉庫更新後自己fork的倉庫並不會自動同步,導致兩個倉庫的版本不一致。
1.複製專案到自己的倉庫
在原專案的地址,比如https://gitee.com/A/xxxx.git上,點選fork按鈕,即將專案複製到了自己的倉庫中,地址是https://gitee.com/B/xxxx.git
2.下載專案到本地
下載到本地的專案會有一個預設的遠端名origin
,但這個遠端名並不指向A倉庫,而是指向自己fork的B倉庫,也就是說之後進行的pull、push操作都是在B倉庫上進行的。這個時候就需要將A、B兩個倉庫進行關聯了
3.關聯兩個倉庫
執行命令git remote -v
檢視遠端倉庫路徑,如果只返回了兩行結果,說明這時A、B兩個倉庫還未進行關聯
origin https://gitee.com/B/xxxx.git (fetch)
origin https://gitee.com/B/xxxx.git (push)
執行命令git remote add upstream https://gitee.com/A/xxxx.git
將A倉庫設為B的上游程式碼庫,upstream的名稱可以隨便取,寫abc也可以,之後B就用upstream這個名字與A進行聯絡。再次檢視遠端倉庫路徑,檢查是否設定成功
upstream https://gitee.com/A/xxxx.git (fetch)
upstream https://gitee.com/A/xxxx.git (push)
origin https://gitee.com/B/xxxx.git (fetch)
origin https://gitee.com/B/xxxx.git (push)
4.拉取合併程式碼
執行命令git fetch upstream
獲取A上的更新(此時並不會修改原生程式碼)。然後執行git merge upstream/master
將程式碼合併到自己的master分支上。或者直接使用git pull upstream master
命令。
5.push程式碼到fork的倉庫
通過之前的操作,只是將自己的本地庫和原來的遠端庫進行了同步,所以還需要將fork的倉庫也進行同步才行。git push origin master
,將程式碼push到B倉庫,到這裡才算將程式碼全部同步。
相關文章
- Github程式碼fork之後,如何與原倉庫進行同步?Github
- git 同步fork的倉庫程式碼Git
- 【Git】fork遠端倉庫,fork倉庫同步和提交pull requestGit
- Git自學成才——fork倉庫保持同步Git
- github同步fork倉庫Github
- Github Fork倉庫的衝突與同步管理Github
- git本地倉庫與GitHub的同步Github
- Fork倉庫
- Git同步兩個遠端倉庫的分支程式碼Git
- git 上傳程式碼到遠端倉庫Git
- Git 本地倉庫和裸倉庫Git
- git倉庫修改遠端倉庫Git
- Git 倉庫Git
- 在CentOS上搭建git倉庫伺服器以及mac端進行克隆和提交到遠端git倉庫CentOSGit伺服器Mac
- git 自動上傳程式碼到遠端倉庫Git
- git使用步驟——斷開與原來遠端倉庫的連線,連線新倉庫並上傳Git
- Git提交程式碼倉庫的兩種方式Git
- git 修改本地倉庫的遠端倉庫地址Git
- SVN程式碼倉庫主從同步方案主從同步
- Git 建立倉庫Git
- Git 簡介與倉庫使用Git
- git本地倉庫關聯遠端倉庫Git
- git使用命令列保留原分支遷移程式碼倉庫Git命令列
- git倉庫與專案原始碼分離Git原始碼
- 自動同步 Github 倉庫到 Gitee 倉庫GithubGitee
- 與遠端倉庫保持同步
- 本地倉庫推送到遠端倉庫的git操作Git
- 在centos7搭建git程式碼倉庫CentOSGit
- Git 倉庫程式碼遷移步驟記錄Git
- Linux構建Git程式碼倉庫與自動部署LinuxGit
- git倉庫配置git sshGit
- gitee建立倉庫如何提交程式碼Gitee
- 在本地搭建 SVN倉庫 和 git 倉庫 (倉庫僅限在本地使用)Git
- git 遠端倉庫Git
- GIT倉庫匯入Git
- git換倉庫命令Git
- 如何修改 Git 遠端倉庫 URLGit
- 讓 fork 出來的 Github 倉庫從遠端倉庫拖取最新的修改Github