git 从我的倒数第二个本地提交中删除一个文件?[副本]

tvz2xvvm  于 2023-05-27  发布在  Git
关注(0)|答案(1)|浏览(193)

此问题已在此处有答案

How do I modify a specific commit?(19回答)
3天前关闭。
我在一个修复分支中 checkout ,编辑了两个文件(file1.extfile2.ext),并提交了两次。由于错误,我在另一个文件(file3.ext)中写入了***@todo***,并在第一次提交时使用file1.ext提交了它。但这件事和修理无关。我还没有做一个推到远程!
现在我的问题是,我如何从第一次提交中删除file3.ext?

$ git reflog

1bf987f6 (HEAD -> fix/1000-lorem) HEAD@{0}: commit: [2.0][UI-1000] Fix: lorem ipsum
81123e93 HEAD@{1}: commit: [2.0][UI-1000] Fix: lorem ipsum

我的考虑

我现在将再次从file3.ext中删除@todo并提交。因此,该文件至少没有todo,因此是最新的。有没有其他更好的方法来解决这个问题?

f2uvfpb9

f2uvfpb91#

有很多方法可以做到这一点。您可以进行第三次提交来修复错误。如果你想清理历史,这会让你想到:
1.从你的两个提交之前的提交分支(修复分支在你处理它之前的状态)。
1.从原始修复分支的第一次提交中检出文件:git checkout <commit hash> file1.ext; git checkout <commit hash> file 2.ext
1.使用与第一次提交相同的消息提交它们。
1.对第二次提交做同样的操作,* 或者 * 简单地挑选第二次提交。
1.删除原始修复分支并从远程重新 checkout 它。
1.在第二个修复分支中合并。
此时,您应该已经用一个新的修复分支替换了原始的修复分支,该分支除了错误之外是相同的。推上去

相关问题