Git filter-branch给了我两套提交

卡特里娜飓风

我需要从提交历史记录中删除文件。我按照Github的指示删除敏感数据

$ git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch <myfile>' \
--prune-empty --tag-name-filter cat -- --all

...但是我一定做错了,因为现在我有一堆重复的提交。一组提交仍然有我的文件;另一个没有。除此之外,它们是相同的。如何删除仍包含文件的所有提交?

用户456814

根据问题的信息,现有的答案和他们的评论,看来原始的发帖人在做完以后会犯一些错误git filter-branch,并且没有对仓库进行备份。

因此,如果原始发布者想要执行此操作,则此处提供了有关将回购操作返回到过滤器分支之前的先前状态的说明。

原始参考

git filter-branch如果您出于任何原因需要恢复它们,它将自动保存对旧提交的引用。您将在回购.git/refs/original/refs/目录下找到它们

ls -l .git/refs/original/refs/heads/
total 1
-rw-r--r--    1 Keoki    Administ       41 May 23 01:13 master

ls -l .git/refs/original/refs/tags/
total 1
-rw-r--r--    1 Keoki    Administ       41 May 23 01:13 v1.0

以上每个参考都包含旧提交的提交sha ID:

cat .git/refs/original/refs/heads/master
276fc24dc4b12edf75aea40f4fd50e25a5840005

cat .git/refs/original/refs/tags/v1.0
475593a612141506f59a141e38b8c6a3a2917f85

使用硬重置进行恢复

要恢复原始master分支(从进行过滤分支之前开始),只需使用上面的引用进行硬重置,或使用其中包含的提交sha ID:

git checkout master

# Use reference
git reset --hard refs/original/refs/heads/master

# Or use sha ID
git reset --hard 276fc24dc4b12edf75aea40f4fd50e25a5840005

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

git filter-branch尊重我的最初提交.gitignore

来自分类Dev

git filter-branch --tree-filter给我留下了2个提交对象

来自分类Dev

git filter-branch仅在分支提交时

来自分类Dev

git filter-branch使用两个查询

来自分类Dev

git filter-branch --msg-filter改写推送的提交消息

来自分类Dev

git filter-branch没有删除我的目录

来自分类Dev

git失败,缺少git filter-branch上的ident

来自分类Dev

使用'git filter-branch'更正最近N次提交中的提交者日期?

来自分类Dev

当只有一个提交时,将“最近的提交”指定给 git filter-branch?

来自分类Dev

为什么git filter-branch tree-filter无法重写提交但又使工作目录变脏?

来自分类Dev

git filter-branch-放弃一系列提交中对一组文件的更改

来自分类Dev

使用filter-branch更改作者名称后,Git提交重复

来自分类Dev

git filter-branch-放弃一系列提交中对一组文件的更改

来自分类Dev

使用filter-branch更改作者名称后,Git提交重复

来自分类Dev

'git filter-branch'失败时,从特定提交中删除特定文件

来自分类Dev

使用git filter-branch时,它会复制我的提交历史记录并创建重复的文件。我该如何摆脱呢?

来自分类Dev

使用git filter-branch时,它会复制我的提交历史记录并创建重复的文件。我该如何摆脱呢?

来自分类Dev

使用git-filter-branch提取多个目录

来自分类Dev

没有参数的git filter-branch有什么作用?

来自分类Dev

git filter-branch删除文件夹失败

来自分类Dev

运行git filter-branch后是否可以检索存储?

来自分类Dev

撤消git filter-branch导致的文件删除

来自分类Dev

使用 git filter-branch 运行 shell 命令

来自分类Dev

了解为什么git-filter-branch无法清除我的历史记录

来自分类Dev

git filter-branch --tree-filter导致“未知修订或路径不在工作树中”

来自分类Dev

带有--since的git filter-branch --tree-filter返回“找不到要重写的内容”

来自分类Dev

git filter-branch的--prune-empty开关不会在分支开始处修剪空的提交

来自分类Dev

Git存储库-在运行git filter-branch之后如何重播对旧存储库所做的新提交,修改后的存储库

来自分类Dev

git filter分支到git filter repo转换

Related 相关文章

  1. 1

    git filter-branch尊重我的最初提交.gitignore

  2. 2

    git filter-branch --tree-filter给我留下了2个提交对象

  3. 3

    git filter-branch仅在分支提交时

  4. 4

    git filter-branch使用两个查询

  5. 5

    git filter-branch --msg-filter改写推送的提交消息

  6. 6

    git filter-branch没有删除我的目录

  7. 7

    git失败,缺少git filter-branch上的ident

  8. 8

    使用'git filter-branch'更正最近N次提交中的提交者日期?

  9. 9

    当只有一个提交时,将“最近的提交”指定给 git filter-branch?

  10. 10

    为什么git filter-branch tree-filter无法重写提交但又使工作目录变脏?

  11. 11

    git filter-branch-放弃一系列提交中对一组文件的更改

  12. 12

    使用filter-branch更改作者名称后,Git提交重复

  13. 13

    git filter-branch-放弃一系列提交中对一组文件的更改

  14. 14

    使用filter-branch更改作者名称后,Git提交重复

  15. 15

    'git filter-branch'失败时,从特定提交中删除特定文件

  16. 16

    使用git filter-branch时,它会复制我的提交历史记录并创建重复的文件。我该如何摆脱呢?

  17. 17

    使用git filter-branch时,它会复制我的提交历史记录并创建重复的文件。我该如何摆脱呢?

  18. 18

    使用git-filter-branch提取多个目录

  19. 19

    没有参数的git filter-branch有什么作用?

  20. 20

    git filter-branch删除文件夹失败

  21. 21

    运行git filter-branch后是否可以检索存储?

  22. 22

    撤消git filter-branch导致的文件删除

  23. 23

    使用 git filter-branch 运行 shell 命令

  24. 24

    了解为什么git-filter-branch无法清除我的历史记录

  25. 25

    git filter-branch --tree-filter导致“未知修订或路径不在工作树中”

  26. 26

    带有--since的git filter-branch --tree-filter返回“找不到要重写的内容”

  27. 27

    git filter-branch的--prune-empty开关不会在分支开始处修剪空的提交

  28. 28

    Git存储库-在运行git filter-branch之后如何重播对旧存储库所做的新提交,修改后的存储库

  29. 29

    git filter分支到git filter repo转换

热门标签

归档