标签:pre 需求 amp sim push 完全 代码 简单 好的
https://github.com/selfteaching/the-craft-of-selfteaching/issues/67
最常见的问题,当你fork了一个仓库以后,原仓库的代码又被修改了,这时候能平台并不会帮你自动同步代码到你fork以后的仓库。这时候你提交代码,提交合并请求时的版本就和原仓库的不一致了。这时候有什么好的办法解决问题呢?
最简单粗暴地方法就是:
删除自己的仓库,重新fork一个仓库
事先把自己修改的代码保存好,然后删掉fork的仓库,接着重新fork一份原仓库,这时候再把fork的仓库克隆到本地,代码修改以后再提交。
这可是大招哦,不能一上来就用了。要在最后实在没办法的情况下使用,我们还有更加优雅的办法。另外说一下,如果原仓库已经整合了很多合并代码的请求,并且代码和你的相差很大的情况下,建议使用这种简单粗暴的方法,很省事。
接下来我们来讲一下优雅的方式是什么样子的,在此之前,你最好搞明白git pull
和git merge
的区别和联系。
git remote -v
查看远程仓库的地址,以及是否关联原代码仓库D:\Project\study>git remote -v
origin https://github.com/fxiaoyu97/Study-Log.git (fetch)
origin https://github.com/fxiaoyu97/Study-Log.git (push)
如上所示,如果只关联了一个仓库地址,表示还没有关联原仓库地址,这时候我们需要设置一下,这个关联设置一次就好。
git remote add upstream https://github.com/selfteaching/the-craft-of-selfteaching.git
,这样就可以把原仓库设置为你的upstream仓库。命令执行后完全没有任何返回信息,我们可以执行命令git remote -v
查看一下。D:\Project\study>git remote -v
origin https://github.com/fxiaoyu97/study.git (fetch)
origin https://github.com/fxiaoyu97/study.git (push)
upstream https://github.com/calos/study.git (fetch)
upstream https://github.com/calos/study.git (push)
git status
检查本地是否有未提交的修改,如果存在的话,先把未提交的修改从本地仓库推送到自己的远程仓库,最后再执行git status
检查一下本地文件的状态。git add -A
git commit -m "提交说明"
git push origin master
git status
注意:这一步可以避免出现文本冲突的情况,但是如果你本地仓库的修改不是很重要,建议还原的到未修改以前的样子。
git fetch upstream
D:\Project\study>git fetch upstream
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), 608 bytes | 26.00 KiB/s, done.
From https://github.com/fxiaoyu97/study
44a5a2d..8da9cb5 master -> upstream/master
git checkout master
git merge upstream/master
,如果遇到冲突就在本地解决冲突。git push
如果远程原仓库的历史commit被修改整理过,而自己在没有同步远程原仓库的情况下有新的PR需求请求,可以有两个方案处理:
git fetch upstrem && git reset --hard upstrem/master && git clean -f -d
标签:pre 需求 amp sim push 完全 代码 简单 好的
原文地址:https://www.cnblogs.com/tudou1179006580/p/14875486.html