如何取消删除 git 历史记录中先前删除的文件?

发布于 2024-09-07 07:06:15 字数 413 浏览 5 评论 0原文

使用 Chris 对另一个问题的回答我可以将快照历史记录添加到我的 git 存储库中。由于其中一个文件不属于我的历史记录,而仅存在于快照中,因此第一个原始提交现在也包含该文件的删除。我怎样才能撤消它?

起初我认为这与相反我从git的历史记录中删除了敏感文件,但实际上我不想将文件插入历史记录,而只是从历史记录中删除删除的内容。

Using Chris's answer on another question I could prepend a snapshot-history to my git repository. Since one of the files is not part of my history but only in the snapshots, the first original commit now also contains the deletion of this file. How can I undo that?

At first I thought this was the opposite of How do I remove sensitive files from git’s history, but actually I don't want to insert a file into history but just remove the deletion from history.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

年少掌心 2024-09-14 07:06:15
git checkout <commit> <filename>
git checkout <commit> <filename>
攀登最高峰 2024-09-14 07:06:15

我明白了:

git tag originalHead # just in case
git rebase -i <id of the parent of the commit that deleted the file>
# change pick to edit for that commit
git checkout <id of the previous commit> <filename> # thanks for reminding, kubi
git commit --amend
git rebase --continue
git tag -d originalHead

编辑不幸的是,这会将所有标签保留在旧时间轴上,请参阅此处

I got it:

git tag originalHead # just in case
git rebase -i <id of the parent of the commit that deleted the file>
# change pick to edit for that commit
git checkout <id of the previous commit> <filename> # thanks for reminding, kubi
git commit --amend
git rebase --continue
git tag -d originalHead

edit unfortunately this will leave all tags at the old timeline, see here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文