git如何同步fork的项目

git同步fork的项目

文章目录

  • git同步fork的项目
    • 操作步骤
    • 参考链接


我们在使用git时,经常会需要fork别人的项目,然后通过git clone,git push等操作来在本地进行项目的修改,这时候如果源项目发生了变化,我们又想同步这种变化,要怎么做呢?
此时源项目中已发生变化,我们fork的项目有我们自己所做的修改。
注意,如果直接同步的话,会失去自己所做的修改,解决办法如下。


操作步骤

首先,我们要配置远程分支,指向源项目,这是我们同步源项目中修改的前提:

  1. 打开git bash,查看当前已配置好的远程库:
git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
  1. 添加远程upstream 仓库:
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
  1. 检查远程库:
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的同步:

  1. 首先获取源项目中的修改,被存储在分支upstream/master中:
git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
 * [new branch]      master     -> upstream/master
  1. 切换到master分支:
git checkout master
Switched to branch 'master'
  1. 把分支upstream/master的内容merge到本地master:
git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
 README                    |    9 -------
 README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md

完成这个操作后,本地项目就会同步源项目中的变化,而自己所做的修改不会丢失
4. 把修改上传到github中自己的项目,直接git push即可,无需git addgit commit

参考链接

https://help.github.com/articles/syncing-a-fork/
https://help.github.com/articles/configuring-a-remote-for-a-fork/

你可能感兴趣的:(git)