GitHub上fork别人打代码后如何保持和原作者同步的更新 注意:不会覆盖自己新更新的代码

本文详细介绍了如何在GitHub上fork项目后,通过Pull Request流程与原作者代码保持同步的方法,包括创建Pull Request、合并代码及解决冲突的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.进入你的GitHub发起Pull request

这里写图片描述

2.选择compare across forks

这里写图片描述

3.反向操作。base fork改为自己的,head fork改为原作者的

4.点击 create pull request

这里写图片描述

5. 添加comment

这里写图片描述

6.点击create pull request

7.点击Merge pull request

这里写图片描述

8.确定

这里写图片描述

 

Github上 fork了别人的代码 本地更新主分支代码

在GitHub上我们会去fork别人的一个项目,这就在自己的Github上生成了一个与原作者项目互不影响的副本,自己可以将自己Github上的这个项目再clone到本地进行修改,修改后再push,只有自己Github上的项目会发生改变,而原作者项目并不会受影响,避免了原作者项目被污染。但经过一段时间, 有可能作者原来的代码变化很大, 你想接着在他最新的代码上修改, 这时你需要合并原作者的最新代码过来, 让你的项目变成最新的。 
1、先克隆项目到本地: 
Git clone https://github.com/iakuf/mojo 
cd mojo 
2、添加原作者项目的 remote 地址, 然后将代码 fetch 过来 
git remote add sri https://github.com/kraih/mojo 
git fetch sri 
‘sri’相当于一个别名 
查看本地项目目录: git remote -v 
3、合并 
git checkout master 
git merge sri/master 
如果有冲突的话,需要丢掉本地分支: 
git reset –hard sri/master 
4、这时你的当前本地的项目变成和原作者的主项目一样了,可以把它提交到你的GitHub库 
git commit -am ‘更新到原作者的主分支’ 
git push origin 
git push -u origin master -f –强制提交

http://blog.youkuaiyun.com/u013647382/article/details/53400530

<think>好的,我现在需要解决用户的问题:在GitHubfork的源代码包含版本(tag),如何解决?首先,我得回忆一下用户提供的引用内容,看看有没有相关的解决方法。 用户提到了引用[3],里面提到了如何同步fork仓库的tag。步骤包括克隆自己的仓库,添加原始仓库为upstream,然后获取tag并推送。这可能就是关键步骤。另外,引用[4]也提到使用git remote add upstream来建立源仓库的链接,这可能也是必要的。 首先,用户fork的仓库默认可能不会自动同步原仓库的tag,所以需要手动操作。根据引用[3],用户需要先克隆自己的fork仓库到本地,然后添加原始仓库为upstream。接下来,用git fetch upstream --tags来获取所有tag,然后通过git push --tags推送到自己的fork仓库中。这样就能把原仓库的tag同步过来了。 另外,可能还需要同步主分支的更新,比如用git rebase upstream/master,确保代码是最的。然后推送主分支tag。用户可能遇到的问题是没有配置upstream,或者没有获取tag就直接推送了。需要检查这些步骤是否都正确执。 总结步骤应该是:克隆fork的仓库,添加upstream远程,获取tag,合并或变基主分支,最后推送tag到自己的仓库。这样就能解决fork包含版本的问题了。</think>要在GitHub上通过Fork获取带有版本控制(如Tag)的源代码,需手动同步原始仓库的标签。以下是具体步骤: ### 步骤说明 1. **克隆你的Fork仓库** ```bash git clone https://github.com/你的用户名/仓库名.git cd 仓库名 ``` 2. **添加原始仓库为上游(Upstream)** ```bash git remote add upstream https://github.com/原始作者/仓库名.git ``` 这一步用于建立与原始仓库的关联[^4]。 3. **同步原始仓库的Tag分支** ```bash git fetch upstream --tags # 拉取原始仓库的所有Tag[^3] git rebase upstream/master # 同步主分支更新(若主分支是main则替换为main) ``` 4. **将Tag推送到你的Fork仓库** ```bash git push origin master # 先推送主分支更新 git push --tags # 推送所有Tag到你的仓库 ``` ### 验证结果 - 在GitHub仓库页面的**Releases/Tags**栏中,应能看到同步后的Tag。 ### 后续更新 若原始仓库增Tag,重复步骤3-4即可同步版本。 --- ### 相关问题 1. 如何避免Fork仓库与原始仓库的分支冲突? 2. Git中`git fetch``git pull`的区别是什么? 3. 如何删除本地或远程仓库中无效的Tag? [^1]: 引用自GitHub Fork代码更新方法 : 引用自GitHub同步Tag的解决方案 [^4]: 引用自双向更新中upstream配置方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值