首页 > 其他分享 >如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新?github_fork_update

如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新?github_fork_update

时间:2024-09-14 14:53:07浏览次数:11  
标签:Fork fork git 上游 仓库 合并 更新 GitHub upstream


如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新?

在 GitHub 上 Fork 了一个项目后,你可能会对项目进行一些修改,同时原作者也在不断更新。如果想要在保留自己修改的基础上,同步原作者的最新更新,很多人会不知所措。本文将详细讲解如何在不丢失自己改动的情况下,将上游仓库的更新合并到自己的仓库中。

问题描述

假设你在 GitHub 上 Fork 了一个项目,并基于该项目做了一些修改,随后你发现原作者对项目进行了更新。此时你希望能够将这些更新同步到自己的项目中,同时保留你所做的修改。这个过程包括以下几个步骤。


步骤一:添加上游仓库为远程仓库

在你 Fork 的项目中,你需要将原作者的项目添加为远程仓库。这个远程仓库通常被称为 “upstream”(上游仓库)。首先,进入你本地仓库所在的目录,然后执行以下命令:

git remote add upstream <原项目仓库的URL>

通过此命令,Git 会将原项目作为一个新的远程仓库记录下来。你可以通过以下命令验证上游仓库是否添加成功:

git remote -v

这会列出你当前的所有远程仓库,确保其中包含 upstream


步骤二:拉取上游仓库的最新更新

接下来,你需要从上游仓库获取最新的更改。执行以下命令:

git fetch upstream

这会将上游仓库的最新更新拉取到本地,但不会自动合并。


步骤三:将上游仓库的更新合并到本地分支

假设你在 main 分支上进行开发,你可以通过以下命令将上游仓库的更新合并到本地 main 分支:

git checkout main
git merge upstream/main

如果有新的提交,这一步会将上游项目的更改与本地项目进行合并。如果两者有冲突,Git 会提示你处理冲突。


步骤四:解决合并冲突(如果有)

在合并过程中,可能会出现冲突,这意味着上游的修改与本地的修改存在不兼容之处。Git 会在冲突的文件中标记出冲突内容,你需要手动编辑这些文件,选择保留哪部分内容或者进行合并。

当你解决了冲突后,使用以下命令标记冲突文件已解决:

git add <冲突文件>

然后,完成合并操作:

git commit

步骤五:将更新推送到你的远程仓库

最后,你需要将本地的更新推送到 GitHub 上你自己的仓库中:

git push origin main

这一步将把你本地的修改和合并结果同步到你 Fork 的 GitHub 仓库。


总结

  1. 添加上游仓库:通过 git remote add upstream <原项目URL> 添加上游仓库。
  2. 拉取上游更新:使用 git fetch upstream 拉取上游仓库的最新更改。
  3. 合并上游更新到本地分支:通过 git merge upstream/main 将上游的更新合并到你的分支。
  4. 解决冲突:如果有冲突,编辑文件并解决,使用 git addgit commit 继续合并。
  5. 推送到远程仓库:通过 git push origin main 推送更新到 GitHub。

通过这些步骤,你可以在保留自己的修改的同时,获取原作者的最新更新,并保持你 Fork 的项目与原项目同步。


标签:Fork,fork,git,上游,仓库,合并,更新,GitHub,upstream
From: https://blog.51cto.com/u_15084268/12016831

相关文章

  • github push项目
    新建项目进入项目文件夹,打开gitbash执行ls检查文件目录执行gitinit初始化执行gitadd.把文件都加到缓存区执行gitcommit-m"添加说明(注意代码规范)"gitbranch-Mmain重命名当前分支为miangitremoteaddoriginhttps://github.com/用户没/项目名.git向本地Git仓库......
  • Github数据泄露事件处置常见技巧
    手动获取个人邮箱方法一:通过commits找到作者提交的,点击箭头位置在出现的url后面加上.patchhttps://github.com/xxxx/xxxexample/commit/4a0b0613da9ca66c61bc9e8eeebe7325c4908afeb修改后的https://github.com/xxxx/xxxexample/commit/4a0b0613da9ca66c61bc9e8eeebe7325c4......
  • GitHub狂飙3万star的LLM公开资料
    先用一张图片说明这篇blog多火热!本篇大型语言模型(LLM)课程分为三个部分:......
  • immich docker-compose.yml下载慢、github下载慢、ghcr.io镜像
    解决方案:将:image:ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}改为:image:ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release}使用镜像下载,给出修改后的文件,直接复制然后就可以运行。点击查看代码##WARNING:Makesuretousethed......
  • 如何将本地项目上传到GitHub(SSH连接)
    在个人GitHub中新建项目(远程仓库),添加一个README文件,方便后面验证记住这个默认分支,我这里是main,你的可能是master或其他先复制下SSH地址在项目文件夹中右键打开Git命令行初始化本地仓库,同时指定默认分支为main,与远程仓库的main保持一致gitinit-bmain关联本地Git......
  • 24K star!来GitHub免费学大模型,零基础入门到精通,收藏这一篇就够了
    前言现在的网上充斥着各种割韭菜的AI课程,比如李一舟的199课程。为了让大家别被割韭菜了,今天推荐一个开源项目,它帮你整理好了大模型学习的roadmap,有资料有代码还免费,它就是:llm-course。llm-course是什么?本项目的内容是一个针对大语言模型的课程,在之前的热点汇总中和大家......
  • vue3项目部署到Github
    此教程适应于以webpack,vue-cli,vite等脚手架构建的vue项目。当然,vue2和vue3都是可以滴。1.前提:你的代码库已经提交到Github上如果没有的话,请到GitHub上新建仓库,并把你本地的项目提交到GitHub上新建的仓库里。具体方法,可以参考我的博客Git使用记录-持续更新-将本地项目关......
  • Github_以太网开源项目verilog-ethernet代码阅读与移植(二)
    实验背景在《Github_以太网开源项目verilog-ethernet代码阅读与移植(一)》中简要介绍了verilog-ethernet开源项目的目录构造等基本信息,下面介绍如何使用与移植步骤。实验内容verilog-ethernet项目的使用与移植准备工作实验步骤打开项目的中README.md文件内容如下:信......
  • 在shell中使用github copilot
    brewinstallghghauthloginghextensioninstallgithub/gh-copilot   createalias:aliascopilot='ghcopilot';echo'aliascopilot="ghcopilot"'>>~/.zshrc&&source~/.zshrcaliasgcs='ghcopilo......
  • 解决国内Github.com打不开的方法
    解决国内Github.com打不开的方法一、Github是什么github对普通人来说更像是一个巨大的资源库,有丰富的软件资源、各类插件、设计资源等。二、如何访问Github1.访问错误的原因我们会发现,在进入Github网站时,经常会出现网络错误,能不能打开全凭运气,这是因为我们访问Github时是直接访问......