文章

GitFork更新

GitFork更新

本文介绍 Git Fork 更新。

Git Fork 更新

当你 fork 了一个 GitHub 仓库后,你的仓库是原仓库的一个副本,但不会自动同步更新。如果你想把原仓库(即 upstream 仓库)中的更新同步到你自己的分支,需要做以下操作

1. 添加原仓库为远程

这个只需要添加一次,以 Chirpy 为例,upstream 为分支名可以自定义。

1
2
3
4
5
# 添加原仓库为远程
git remote add upstream git@github.com:cotes2020/chirpy-starter.git

# 查看是否添加成功
git remote -v

2. 获取原仓库的更新

这一步会把原仓库(upstream)的分支拉到你本地

1
git fetch upstream

3. 合并或变基更新到你的分支

3.1. 方式一:使用 merge 合并(保留提交历史)

1
2
git checkout main
git merge upstream/main

3.2. 方式二:使用 rebase(让历史更整洁)

1
2
git checkout main
git rebase upstream/main

4. 推送更新

1
2
3
4
5
# 方式一直接推送
git push

# 方式二变基需要强制推送,单人维护分支
git push --force-with-lease

5. 问题

5.1. 子模块冲突

如果使用 git submodule update 更新过子模块,导致 rebase 冲突,然后不能解决冲突提交,可以直接删除再 rebase

1
2
3
4
# 删除缓存
git rm --cached assets/lib
git add assets/lib
git rebase --continue
本文由作者按照 CC BY 4.0 进行授权