fork 了别人的仓库后,原作者又更新了仓库,如何将自己的代码和原仓库保持一致?本文将给你解答。
假设远程源仓库为A,自己fork后的远程仓库为B,自己本地的代码仓库为C
给 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)
添加一个将被同步给 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)
执行同步fork操作
从上游仓库A fetch 分支和提交点,传送到本地,并会被存储在一个本地分支 upstream/master
git fetch upstream
默认会将远程所有的分支fetch下来
remote: Counting objects: 41, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 41 (delta 17), reused 0 (delta 0)
Unpacking objects: 100% (41/41), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
* [new branch] dev -> upstream/dev
* [new branch] master -> upstream/master
将upstream的代码合并到本地仓库C上
同步自己的远程仓库
从自己的远程仓库B上拉取最新的代码
git pull origin master
执行合并upstream操作
把 upstream/master 分支合并到本地 master 上
git merge upstream/master
如果想同步upstream/dev 分支的话执行
git merge upstream/dev
把 upstream/dev 分支合并到本地
push本地代码到自己的远程仓库
处理冲突代码,后提交到自己的远程仓库
git add .
git commit -m '描述'
git push
文章来自:shunyang