在日常的开源项目学习或协作开发中,我们通常会使用 github 或 gitee 的 fork 功能,将别人的仓库复制一份到自己的账号下进行修改。
但随之而来的一个常见问题是:当原作者更新了代码,我该如何把这些最新的改动同步到我自己的仓库中?
这就是下面所要介绍的内容。
如何正确同步fork的代码?
1、确定远程仓库别名
执行 git remote -v 查看当前的远程地址。
通常情况下,git会默认将你克隆的仓库地址命名为 origin (也就是自己的fork) 。此时,你还没有配置原作者的仓库地址。
2、添加“上游”仓库
我们需要告诉 git,原作者的仓库在哪里。我们通常将其命名为 upstream(意为“上游”)。
# 格式:git remote add upstream <原作者仓库地址> git remote add upstream https://gitee.com/zhangsan/demo.git
3、执行同步“三部曲”
以后只要原作者更新了代码,你只需要在本地执行以下三条命令:
- 拉取(fetch):下载上游的最新数据,但不合并。
git fetch upstream
- 合并(merge):将上游的主分支合并到你当前的分支。
git checkout master # 确保你在主分支 git merge upstream/master # 合并上游的改动
注:如果一切顺利,你会看到 fast-forward 的提示,代表合并成功。
- 推送(push):将合并后的最新代码,推送到你自己的远程仓库(origin)。
git push origin master
总结
- 善用 upstream:在 fork 项目中,配置
upstream是保持代码不落伍的最佳方式。 - 标准流程:
fetch->merge->push,这套组合拳是开源协作的基石。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论