1、当我在一个项目(下面就叫它源项目)中fork出来一个分支自己在上面开发,在协同开发过程中,我想时刻得到其他小组成员上传的最新的代码,就需要与源项目保持同步,google了一些解答,总结了一下。
2、项目 fetch 到本地,通过命令行的方式 merge
在我们本地的项目中打开git bash输入下面的命令查看查看远程信息:
git remote -v
会看到如下信息:
foolf@DESKTOP-N53SFFK MINGW64 /j/SoftGateway (master)
$ git remote -v
origin http://172.18.69.52/YuZiyong/SoftGateway.git (fetch)
origin http://172.18.69.52/YuZiyong/SoftGateway.git (push)
跟上游仓库同步代码之前,必须配置过 remote,指向上游仓库
如果我们的源项目的地址为
http://172.18.69.52/hhhh/SoftGateway.git
使用下面命令配置远程仓库
git remote add upstream http://172.18.69.52/hhhh/SoftGateway.git
从上游仓库获取到分支,及相关的提交信息,它们将被保存在本地的upstream/master
分支
git fetch upstream
这样就将源项目的分支获取到本地
$ git fetch upstream
remote: Counting objects: 1, done.
remote: Total 1 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (1/1), done.
From http://172.18.69.52/hhhh/SoftGateway
de69622..f2da06e master -> upstream/master
3、如果你在其他分支,需要想切换到本地master分支
git checkout master
# Switchedto branch 'master'
4、把 upstream/master 分支合并到本地的 master 分支,本地的 master 分支便跟上游仓库保持同步了,并且没有丢失你本地的修改。
git merge upstream/master
END
这样就可以和fork的源仓库保持同步了。