Git同步上游代码实现方式

 更新时间:2026年04月24日 09:12:45   作者:niuyougan  
本文介绍了如何正确同步Fork的代码,步骤包括添加上游仓库、执行同步三部曲(拉取、合并、推送)等注意事项,这是有助于保持代码不落伍,是开源协作中的的良好实践

在日常的开源项目学习或协作开发中,我们通常会使用 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,这套组合拳是开源协作的基石。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • git版本回退方式(git reset、git revert、git stash)

    git版本回退方式(git reset、git revert、git stash)

    这篇文章主要介绍了git版本回退方式(git reset、git revert、git stash),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Chrome浏览器中清除特定网站的Cookie数据三种方法

    Chrome浏览器中清除特定网站的Cookie数据三种方法

    当我们在使用电脑浏览网页时,服务器会生成一个证书并将其返回给电脑,这个证书是cookie,也可以称为浏览器缓存,这篇文章主要给大家介绍了关于Chrome浏览器中清除特定网站的Cookie数据三种方法,需要的朋友可以参考下
    2023-10-10
  • GitHub入门教程 手把手教你最简单的开源项目托管

    GitHub入门教程 手把手教你最简单的开源项目托管

    这篇文章主要介绍了GitHub入门教程 手把手教你最简单的开源项目托管,需要的朋友可以参考下
    2016-12-12
  • 解决SecureCRT通过SSH连接Ubuntu时vi命令有多余的m的问题

    解决SecureCRT通过SSH连接Ubuntu时vi命令有多余的m的问题

    小编遇到这样一个问题用vi命令来编辑文件的时候,在开头和结尾有多余的字母出现:在开头会有多余的“m”出现,结尾有多余的“2m”,这篇文章主要介绍了解决SecureCRT通过SSH连接Ubuntu时vi命令有多余的m的问题,需要的朋友可以参考下
    2022-09-09
  • 前端常用的Chrome调试技巧最全汇总

    前端常用的Chrome调试技巧最全汇总

    作为一个前端开发者,我们每时每刻都跟浏览器打交道,在开发的过程中,我们需要不断的在浏览器中查看编写的成果,合理使用浏览器的控制台功能,这篇文章主要给大家介绍了关于前端常用Chrome调试技巧的相关资料,需要的朋友可以参考下
    2024-09-09
  • Git分支参数 -u 和 -m 的具体使用

    Git分支参数 -u 和 -m 的具体使用

    本文介绍了Git中两个常用参数-u和-m的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-03-03
  • HTML5的<input>标签的`type`属性值详解和代码示例

    HTML5的<input>标签的`type`属性值详解和代码示例

    HTML5的`<input>`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、多行文本输入、单选按钮、复选框、下拉选择框、数值输入、日期选择、文件上传到提交、重置、普通按钮等,每种类型都有其特定的用途和使用场景
    2025-12-12
  • Git 教程之远程仓库详解

    Git 教程之远程仓库详解

    本文主要介绍Git 远程仓库的知识,这里整理了相关资料,及命令详解,图文并茂的介绍该部分内容,有需要的小伙伴可以参考下
    2016-09-09
  • yum安装telnet的步骤

    yum安装telnet的步骤

    Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式,Telnet是常用的远程控制Web服务器的方法,本文给大家分享yum安装telnet的步骤,感兴趣的朋友一起看看吧
    2020-05-05
  • 使用Git实现revert的完整操作步骤

    使用Git实现revert的完整操作步骤

    文章介绍了git revert命令的使用,包括其核心概念、完整操作步骤、进阶场景以及与git reset的区别,git revert是一种安全的代码回退方式,适用于已推送的代码,通过生成新的提交来抵消目标提交的修改,保留历史记录并便于追溯,需要的朋友可以参考下
    2026-01-01

最新评论