Git 如何快速丢掉 Github 上的 fork 的老代码而重新从原项目获取?

lyfi2003 · 2012年08月26日 · 最后由 ooops 回复于 2014年07月04日 · 27573 次阅读

如题,以前处理过,长期不用就忘了。

现在的处理方法很 2,删掉 Github 上的 fork 项目,再重新 fork, 然后删除本地的 clone,再重新 clone.

请问各位有何高见?thx

如下,但很久的代码时,会出现许多冲突:

git remote add remote_xx xx_url
git fetch remote_xx
git merge remote_xx/master

嗯?直接 pull 就好了啊。fork 来的 repo,做修改在 branch 里做,这样 master 直接可以 fast-forward。

@fredwu 如果代码比较久远的话出现冲突。

Fork 的代码不要在 master 上做修改。

贡献代码直接开新的 branch. 最终 PR 回去就好了。

这样每次都可以:

git co master
git pull upstream master
git co -b new_branch
# send new PR

比较快速的方法是直接cherry pick老的修改,到 remote_xx 的 master,@Saito 方法也行,不过需要先在你 local 当前 master 开新 branch,然后再rebase新 branch 到 remote_xx/master,比较麻烦。

我也有同样的问题,哈哈··

这样可以吗?把旧的 master 移走直接拿新的: git branch -m master old_master git checkout -b master origin/master git branch -D old_master

@HappyPeter 有无高见?~

其实 fork 本身就是个 copy, 所以你的删除重新 fork,还是大家说的保持 master 干净,随时 pull 上游的更新都是可以的,都不会有太大问题。官方给的是 https://help.github.com/articles/fork-a-repo

其实可以看出你的问题在 merge 上,这里有句话我们都要记住:

如果你在你自己的分支上作了多次修改,历时很长,同时在此期间从未对 upstream 的更新作 fetch + rebase + test + continue 的话,那到最后神也救不了你了。

@happypeter master 是完全 clean 的,当时只是在 github 上 push 到别处的请求,后面时间一长,再 merge 就一堆冲突了。

#9 楼 @lyfi2003

当时只是在 github 上 push 到别处的请求

没看懂

用 git 的话,自己的修改最好是新开一个 branch,这样就不影响 fork 的哪个 branch 继续从原始地方 pull

#12 楼 @woaigithub 已了解,现在是这样处理的。

#8 楼 @happypeter 完全同意,即使是自己的 repo 里面自己的分支,如果没有及时合并,时间一长也各种崩溃了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号