如何在不提交更改的情况下从 git 历史记录中删除文件?
How to remove file from git history without commiting changes?
经常被引用的标准答案是 "use filter-branch"。
太棒了。除了...失败:
"Cannot rewrite branches: You have unstaged changes."
我正在尝试取消**** git,但 git 真的不想在这里提供帮助:(。我无法提交对某些文件的更改在这里很长很长时间。存储库足够大,我无法在这台机器上第二次克隆它(感谢 git 坚持拉下大量的 .git 文件夹长期项目)。
有没有一种方法可以简单地 "remove file X / file-pattern Y" 而不必先提交所有内容?从根本上说,提交是一个不相关的过程(在用户级别),所以我希望 git 不会在内部将两者混为一谈,并且有办法解决这个问题。
您可以 stash 您的更改,这将允许您执行分支过滤等操作,然后在完成后重新应用隐藏的更改(尽管之后您可能会遇到很多冲突你得自己解决)。
不过,我建议提交更改。您进行大量更改而不提交更改是有原因的吗?
经常被引用的标准答案是 "use filter-branch"。
太棒了。除了...失败:
"Cannot rewrite branches: You have unstaged changes."
我正在尝试取消**** git,但 git 真的不想在这里提供帮助:(。我无法提交对某些文件的更改在这里很长很长时间。存储库足够大,我无法在这台机器上第二次克隆它(感谢 git 坚持拉下大量的 .git 文件夹长期项目)。
有没有一种方法可以简单地 "remove file X / file-pattern Y" 而不必先提交所有内容?从根本上说,提交是一个不相关的过程(在用户级别),所以我希望 git 不会在内部将两者混为一谈,并且有办法解决这个问题。
您可以 stash 您的更改,这将允许您执行分支过滤等操作,然后在完成后重新应用隐藏的更改(尽管之后您可能会遇到很多冲突你得自己解决)。
不过,我建议提交更改。您进行大量更改而不提交更改是有原因的吗?