平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Git同步上游代码实现方法方式”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
结合项目来看,在日常的开源项目学习或协作开发里,我们通常会采用 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,这套组合拳是开源协作的基石。
以上为个人经验,希望能给大家一个参考,也希望大家多多兼容脚本之家。
- idea代码同步Gitee实现过程
- Pycharm项目代码同步到Gitee的图文步骤
- nodejs制作一个文档同步工具自动同步到gitee中的实现代码
- IntelliJ IDEA本地代码提交到github网站不显示与本地不同步问题的解决办法

