gpt4 book ai didi

git - 如何撤消历史提交中的文件删除?

转载 作者:太空狗 更新时间:2023-10-29 14:43:40 25 4
gpt4 key购买 nike

在一个 repo 中,我有一个提交(在 HEAD 后面大约 3 个)有大量文件删除被意外暂存并包含在提交中。根据文件类型,它们在执行 git log --stat 时显示如下:

path/to/some/file                     | Bin 22522 -> 0 bytes
path/to/another/kind/of/file | 1 -

我想撤销这些删除,并且不让它们出现在我的提交中。 (注意:我并不是要 stash 删除,所以如果有一种方法可以逆转它们,那也很好。我只是不希望我的 PR merge 到这些文件删除中。)

如果在恢复文件删除后我应该做些什么来更新 Remote ,那也会有帮助。

最佳答案

这与移动 HEAD 无关,而是有选择地取消(在 Git 语言中,“reverting”)提交中的一些文件。

在您的情况下,@~3 提交包括您不想要的删除,但还有其他文件(您可能不想恢复到)。

git revert --no-commit @~3 # Revert, don't commit it yet
git reset # Unstage everything

# add only the files you need (ie the one created, not the ones modified)
git add $(git ls-files -o --exclude-standard)

在这里你想要,在恢复所有提交@~3之后,只选择未跟踪的文件(即由git revert再次创建的文件,因为那些创建取消在@~3中删除的内容。
参见“Git add only all new files, not modified files”。

关于git - 如何撤消历史提交中的文件删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41943757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com