使用git同步一个fork

前言

搭了个Hexo博客, 然后把NexT主题fork了一下。
本文记录下从被fork的项目更新fork的操作。

添加一个远程仓库

1
2
3
4
5
6
$ git remote add upstream 原始项目地址  # 添加一个名为upstream的远程项目
$ git remote -v # 查看远程仓库, origin是默认仓库名, 一般是自己的github项目
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)

从原始项目同步

1
2
3
$ git fetch upstream  # 下载原始项目upstream的所有变动
$ git checkout master # 确保切换到本地master分支
$ git merge upstream/master # 合并upstream仓库的master分支到当前分支

解决冲突

一般可以自动解决冲突问题。
但是复杂的冲突就需要手动解决。

直接编辑文件
手动打开冲突的文件, 冲突的部分是bbbbbbbccccccc, 也就是特殊符号之间的字符串。

1
2
3
4
5
6
7
aaaaaaa
<<<<<<< HEAD
bbbbbbb
=======
ccccccc
>>>>>>> ddddddd
eeeeeee

图形界面

1
$ git mergetool # 用预先配置的Beyond Compare解决冲突

参考资料