强制较旧的提交进行合并,就好像它们是较新的提交一样

时间:2014-07-12 00:00:09

标签: git version-control merge

我们的git出了问题。我们的一些提交消失了,当然,我们承诺了。 我们能够将丢失的提交恢复到我们的系统,但在此过程中我们覆盖了最近的提交

我的计算机上的分支机构中有更新的提交,但仍然缺少消失的提交。 我希望通过合并将缺少的提交恢复到我的分支中,就像它们是较新的提交一样,然后将较新的更改提交回原点。当然,当我尝试像平时那样拉动时将Git认为原点已完全整合到我的本地分支中,因为在我们恢复丢失的提交之前,我的本地分支已完全集成。

有没有办法做到这一点?任何替代解决方案?

我对git很新,所以请原谅缺乏合适的术语

1 个答案:

答案 0 :(得分:1)

此处使用的主要命令是git cherry-pick

它允许您挑选一个(或几个)提交,并将它们应用于您当前的分支。

提交日期将会改变。

如果同一个仓库中有两个分支,则可以直接使用该命令。

如果没有,你可以:

  • 将您最近提交的提交添加为远程提交:

    git remote add newcommits /url/to/repo/with/more/recent/commits
    
  • 从远程仓库挑选樱桃

    git fetch newcommits 
    git cherry-pick <new commits SHA1>
    git cherry-pick <new commits SHA1>