在git rebase origin/main期间,我遇到了合并冲突。文件不存在于本地分支,而存在于主分支中。然后我运行了git mergetool,它问我想做什么:
Merging:
src/CMakeLists.txt
Deleted merge conflict for 'src/CMakeLists.txt':
{local}: created file
{remote}: deleted
Use (c)reated or (d)eleted file, or (a)bort? d我选择了电子文件,这是错误的。在继续重基之后,我发现文件丢失了。
然后,我使用git checkout origin/main src/CMakeLists.txt签出丢失的文件,以便恢复该文件。然而,提交历史现在有一个意外的额外提交,这可能会导致问题,如果可能需要进一步的重定位。我只想撤销我的决定,这样提交历史就像我一开始就选择了正确的答案一样。
发布于 2022-09-15 08:58:47
如果只是将origin/master版本的CMakeLists.txt保存在您的所有历史记录中:
运行git rebase -i origin/master
break指令,在git rebase停止时保存和退出
运行git rebase --continue
git checkout origin/master -- src/CMakeLists.txt来恢复可能有git rebase停止的版本,因为对于特定的提交没有任何更改,在这种情况下,运行git rebase --skip可以跳过回放提交另一方面,如果对要保存和恢复的文件进行了修改:
在运行git reflog my/working/branch
git reflog或分支的状态:git reset --hard <sha>git rebase origin/master再来一次git reset --hard上的一般警告:
在干净的工作树上运行它,它是git中为数不多的命令之一,它可以从磁盘中删除一些文件或修改,而不需要将它们存储在git中。
https://stackoverflow.com/questions/73727349
复制相似问题