GIT:更新到特定版本

时间:2011-08-29 23:25:09

标签: git

我在8个月前检查了一个项目副本,在那里做了很多改动。 现在,我想采取过去8个月的所有新变化。变化的数量是压倒性的(成千上万的提交)。我想做的是一次更改1个月,与我的版本合并,测试。如果我拉最新的变化/冲突的数量是压倒性的。

所以...我想我很清楚我正在尝试做什么,但我不知道如何使用GIT(我对svn更熟悉)。我在Windows上使用TortoiseGit。我在本地分支机构所做的所有本地更改,自从我签出后我需要做些什么才能完成更改,但不是全部?

感谢

2 个答案:

答案 0 :(得分:6)

pull只是fetchmerge的组合。因此,fetch将所有远程更改下载到您的本地仓库,然后git log master..origin/master获取自您的分支发散后在origin上进行的所有提交的列表,然后选择任何SHA1大约一个月,git merge SHA1将其拉入您的master分支机构。泡沫,冲洗,重复。

如果您的更改较少,则可能更容易一次执行git checkout -b upstream origin/mastergit log upstream..master和合并您的更改。< / p> 但是,我不知道从长远来看,分拆它是否会减少工作量。如果你将它们合并在一个块中,那么你并没有真正合并10,000个提交,你正在合并分支的提示,这意味着所有这些提交基本上都被压缩成一个大块。

答案 1 :(得分:2)

您总是可以一次只合并几个提交。回顾一下,说第1个月是345bbdkj ....,git merge 345bbdkj(只需要足够的哈希来识别提交)。你可以继续这样做,直到你遇到冲突。

此外,您可以重新设置您的仓库,以便在所有其他更改之外进行更改,而不是相反。无论你在这里做什么,你的改变都会变得一团糟但我认为:( 10k +提交需要处理很多。