fork 了别人的仓库后,,如何将自己的代码和原仓库保持一致?
假设远程源仓库为A,自己fork后的远程仓库为B,自己本地的代码仓库为C
1. 给 fork 配置一个 remote
一般来说从自己远程仓库B去拉代码后就会有remote
使用 git remote -v 查看远程状态。
git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
2. 添加一个将被同步给 fork 远程的上游仓库A
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
再次查看状态确认是否配置成功。
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)
3.更新fork远程的上游仓库A
$ git pull upstream develop
From http://git.inspur.com/mesp/mepm.web
* branch develop -> FETCH_HEAD
* [new branch] develop -> upstream/develop
Already up-to-date.
4.执行合并upstream操作
使用git merge upstream/master命令,把 upstream/master 分支合并到本地 master 上
如果想同步远程仓库A非master源的代码到自己仓库B上来,比如说远程远有两个分支,master和dev则
合并非master分支的代码, 使用git merge upstream/dev命令,把 upstream/dev 分支合并到本地 dev 上
5.push本地代码到自己的远程仓库
执行git push origin master将本地仓库master分支的代码推送到自己远程仓库B的master分支上
或者git push origin dev:dev将本地仓库dev分支的代码推送到自己远程仓库B的dev分支上