产品试金石 - 高效思维

一起探索未来

Search
Close this search box.
clone项目版本更新封面

Github中clone仓库项目的版本更新方法(非fork)

问题描述

我在github上另外一个作者那里clone了一个仓库到我自己的仓库,我修改了其中的代码。随着时间的推移,原作者的仓库更新了版本,我想要把我clone过来的项目仓库也同步更新,并且在合并更新的过程中,希望系统询问我相关变更冲突并让我来选择合并方式,依次来实现我的代码仓库升级到最新版本并保留了自己修改的那部分代码。

实现方法

作为一个对于github使用git命令不是很熟悉的人来说,更新仓库是一件很痛苦的事。面临的问题一方面是自己对clone的项目发生了更改,另一方面是没有办法像fork那样直接在github的code里点击Synk fork快速合并。

经过与gpt交流后,终于得到了相对于新手而言简单而快速的版本更新方法,大部分操作是由可视化git操作桌面程序Github Desktop实现,但是由于功能有限,所以这个方法其实还是使用了一小部分Git命令。也不难,只要你按照步骤操作,几分钟就可以搞定这件事。

注意:如果你对于代码更新这件事不是很熟悉,建议先创建一个新的test仓库测试步骤,等到测试通过后再从实际项目上操作,以防意外发生。

gpt-4给出的方法截图如下:

gpt版本更新给出的建议

注意:这里面它提到了github desktop中add一个upstream的操作,实际上是没有这个功能的,所以我让它更新了方法,借用Git命令实现:

gpt更新后方法

我发现github desktop中有merge合并相关的可视化操作,所以其实这里使用到命令的地方只有划线的1和2部分。

第一步:打开命令行工具

我们根据它所属,从github desktop中打开命令行工具(Respository – Open in Command Prompt):

打开命令操作栏

如果这里你没有安装过git,按照提示安装即可。

第二步:输入命令增加上游仓库(举例内容):

				
					git remote add upstream https://github.com/Yidadaa/ChatGPT-Next-Web.git
				
			

上面命令结构就是:

git remote add 远程仓库名 https://github.com/作者名/仓库名.git

相应的把例子中的作者名和仓库名替换为你的上游作者的信息即可。输入后回车,命令行并没有明显反馈代表成功,如图:

关联上游

第三步:继续输入命令拉取上游更新:

				
					git fetch upstream
				
			

如果这里的远程仓库名字不叫upstream,请替换成你实际的远程仓库名,比如cangku等,这些都是你在第一步自己命名的,前后保持一致即可。

拉取远程仓库更新

拉取完成后即可关闭命令行。

第四步:合并merge仓库

合并仓库merge

选择main合并

注意:如果版本差别太多,此处可能无法合并。

然后根据提示解决冲突。

解决冲突

第五步:本地合并后的代码推送给github

推送代码

至此,clone代码版本更新完成,你学会了吗?

总结

在本次问题解决中,用到了gpt这个AI工具提供解决思路,这要比网上查询省事多了,因为搜索引擎只能提供简单的关键词搜索,像这种复杂问题的描述,没办法很好的匹配结果,恰好gpt的特长就是语义理解,对解决本次问题起到了至关重要的作用。

需要使用chatgpt请访问此镜像站(无需登录和翻墙):

https://www.gptacg.fun 把问题说清楚,它来帮助你解决工作/学习/生活中遇到的复杂问题。

全文结束

文章目录