Git 把碼雲上被fork項目源碼merge到fork出來的分支項目
By:授客 QQ:1033553122
需求描述
被fork的項目有更新代碼,希望把更新的代碼merge到fork分支項目
解決方法
1、clone fork分支項目到本地,並入切換當前分支為目標分支。
2、增加被fork項目源碼倉庫地址到你項目遠程分支列表中),並將該倉庫地址命名為upstream(當然也可以是其它),如下:
git remote add upstream https://github.com/srcRepo.git
其中 srcReop為被fork項目
3、取回遠程主機被fork項目的全部更新
git fetch upstream
當然,也可以指定只取回目標分支
git fetch upstream remoteTargeBranch
4、合並取回的目標分支(例中為master)代碼到本地當前分支
git merge upstream/master
至此,完成了本地代碼的合並,接下來只需要push到fork項目的目標分支即可。
步驟3,步驟4也可以直接使用pull命令替代,合並為一個步驟,如下
git pull upstream master
實例
(例中使用ssh訪問倉庫)
進入對應項目的 git bash后執行的以下命令
cassmall@DESKTOP-O45PJTA MINGW64 /e/PrivateReops/CassTestManage (V2.0)
$ git remote add upstream git@gitee.com:xxxx/CassTestManage.git
cassmall@DESKTOP-O45PJTA MINGW64 /e/PrivateReops/CassTestManage (V2.0)
$ git remote -v
origin git@gitee.com:laiy/CassTestManage.git (fetch)
origin git@gitee.com:laiy/CassTestManage.git (push)
upstream git@gitee.com:xxxx/CassTestManage.git (fetch)
upstream git@gitee.com:xxxx/CassTestManage.git (push)
cassmall@DESKTOP-O45PJTA MINGW64 /e/PrivateReops/CassTestManage (V2.0)
$ git pull upstream master
remote: Enumerating objects: 64, done.
remote: Counting objects: 100% (64/64), done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 64 (delta 0), reused 58 (delta 0)
Unpacking objects: 100% (64/64), done.
From gitee.com3:xxxx/CassTestManage
* branch master -> FETCH_HEAD
* [new branch] master -> upstream/master
Merge made by the 'recursive' strategy.
mytest.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 mytest.txt
cassmall@DESKTOP-O45PJTA MINGW64 /e/PrivateReops/CassTestManage (V2.0)
$
說明
第二次開始,可以通過git客戶端界面進行代碼的合並操作,非常簡單,如下指定遠程主機和要pull的分支即可。