据我所知,git pull someRemote master
试图将远程分支合并到我的。我可以告诉git pull覆盖而不是合并?
有没有办法说“完全丢弃我的东西,只是让我使用git pull的另一个远程克隆”?我仍然想保留自己的存储库并保存它的历史记录,但是我希望在该命令之后有1:1的someRemote主分支副本。
为了澄清,想象有2个存储库,RM和MY。数字是提交,并且这只假定一个分支(主)。
RM1 --- RM2 --- RM3 --- RM4 --- RM5 --- RM6 ... | | +-> MY1 --- MY2 --- MY3 -+-> MY4 --- MY5 --- MY6 ...
因此,我开始自己的存储库作为RM1的克隆。然后我开心地开发,RM开心开心,但我们从不分享我们的工作。在MY3之后,我意识到我的分支不是那么棒,但是RM4相当不错。所以我想git pull
RM4进入MY。不过,我不希望我的MY1-3的变化持续下去,我想让MY4成为RM4的1:1副本。
但是,我想保留我的历史记录,理想情况下我希望在MY3和RM4之间或MY3和RM2-4之间设置更改。
它应该仍然留在我的资料库。
这可能吗? (这适用于GitHub项目,我可以在其中分解一个项目,稍微试验一下,让它独立几个星期,但是希望在不更改的情况下更新它,此刻我删除了我的叉子并重新分叉,这不是最好的方法。)
基本上我必须核弹我的分支?有没有办法让git神奇地合并这些更改,使它看起来像一个新的修订版本?我想保留我的分支和它的历史,我只是想让当前修订版本成为当前远程修订版的1:1副本。或者这仍然有效,新主人与老主人分享历史? – 2010-04-19 05:33:10
@迈克尔:你的改变不会消失;它们仍然存在于my_old_master分支中。如果您只需要一个分支,则您的“远程1:1副本”和“保留我的历史记录”的目标不兼容。因为修订版SHA1包含所有历史记录的SHA1,所以除非* all *历史在两个分支中都相同,否则分支与另一个分支不同。 – 2010-04-19 05:49:26
为了得到这个工作,我必须首先获取远程分支。 – 2011-03-19 20:40:37