我在 8 个月前检查了一个项目副本,在那里做了很多更改。 现在,我想接受过去 8 个月的所有新变化。更改的数量是巨大的(数万次提交)。我想做的是一次进行 1 个月的更改,与我的版本 merge ,进行测试。如果我 pull 最新的变化/冲突的数量是压倒性的。
所以...我想我想做什么很清楚,但我不知道如何用 GIT 来做(我对 svn 更熟悉)。我在 Windows 上使用 TortoiseGit。我提交给本地分支机构的所有本地更改,我需要做什么来提取自 checkout 以来所做的更改,但不是全部?
谢谢
最佳答案
pull
只是 fetch
加上 merge
的组合。因此,执行 fetch
将所有远程更改获取到您的本地 repo,然后执行 git log master..origin/master
以获取在 origin
因为你的分支已经发散,然后在大约一个月前选择任何 SHA1 并 git merge SHA1
将它 pull 入你的 master
分支。起泡、冲洗、重复。
如果您这边的更改较少,则执行 git checkout -b upstream origin/master
、git log upstream..master
和一次 merge 您一个月的更改。
不过,从长远来看,我不知道拆分它是否最终会减少工作量。如果将所有内容 merge 为一个 block ,那么您并不是真正 merge 10,000 个提交,而是 merge 分支的tips,这意味着所有这些提交基本上都被压缩成一个大提交。 p>
关于GIT:更新到特定版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7237132/