我们的git出了问题。我们的一些提交消失了,当然,我们承诺了。 我们能够将丢失的提交恢复到我们的系统,但在此过程中我们覆盖了最近的提交。
我的计算机上的分支机构中有更新的提交,但仍然缺少消失的提交。 我希望通过合并将缺少的提交恢复到我的分支中,就像它们是较新的提交一样,然后将较新的更改提交回原点。当然,当我尝试像平时那样拉动时将Git认为原点已完全整合到我的本地分支中,因为在我们恢复丢失的提交之前,我的本地分支已完全集成。
有没有办法做到这一点?任何替代解决方案?
我对git很新,所以请原谅缺乏合适的术语
答案 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>