1. 前提说明

某一时刻,仓库A更新了。仓库B需要同步上游分支的更新。

2. 本地操作

// 1 查看远程分支
➜  omp git:(master) git remote -v
origin	http://gitlab.tt.cc:30000/wangdd/omp.git (fetch)
origin	http://gitlab.tt.cc:30000/wangdd/omp.git (push)

// 2 添加一个远程同步的上游仓库
➜  omp git:(master) git remote add upstream http://gitlab.tt.cc:30000/fe/omp.git
➜  omp git:(master) git remote -v
origin	http://gitlab.tt.cc:30000/wangdd/omp.git (fetch)
origin	http://gitlab.tt.cc:30000/wangdd/omp.git (push)
upstream	http://gitlab.tt.cc:30000/fe/omp.git (fetch)
upstream	http://gitlab.tt.cc:30000/fe/omp.git (push)

// 3 拉去上游分支到本地,并且会被存储在一个新分支upstream/master
➜  omp git:(master) git fetch upstream
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From http://gitlab.tt.cc:30000/fe/omp
 * [new branch]      master     -> upstream/master

// 4 将upstream/master分支合并到master分支,由于我已经在master分支,此处就不在切换到master分支
➜  omp git:(master) git merge upstream/master
Updating 29c098c..6413803
Fast-forward
 README.md | 1 +
 1 file changed, 1 insertion(+)

// 5 查看一下,此次合并,本地有哪些更新
➜  omp git:(master) git log -p

// 6 然后将更新推送到仓库B
➜  omp git:(master) git push

3. 总结

通过上述操作,仓库B就同步了仓库A的代码。整体的逻辑就是将上游分支拉去到本地,然后合并到本地分支上。就这么简单。