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 进行授权