确保取消的 git filter-branch 不会更改 repo 中的任何文件

问题描述 投票:0回答:1

我最近在功能分支中运行了命令

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch utils.js"
,目的是从我的 git 存储库/历史记录中删除一个文件(我在本地执行此操作并计划推送到 github)。但是,一旦命令输出
Rewrite <git hash> (123/1122) (102 seconds passed, remaining 802 predicted)
,我了解到
git filter-branch
可能会在我不知情的情况下更改文件,因此我用ctrl+c取消了它。 VSCode 中没有记录要提交的文件。然后我切换到主分支并运行
git fetch --all
git reset --hard origin/master
。我在本地最新提交的 master 和 github 上的 master 是一样的,而 vscode 显示没有要提交的文件(我的意思是没有文件被更改)。但是,https://git-scm.com/docs/git-filter-branch 上的文档指出“git filter-branch 有很多陷阱,可能会对预期的历史重写产生不明显的破坏” - 是否有人能够确认我对
git fetch --all
git reset --hard origin/master
采取的步骤足以确保我的文件正常,或者我需要做其他事情来确保
git filter-branch
命令没有'不更改我的存储库中的任何其他文件吗?

git git-filter-branch
1个回答
0
投票

你应该在运行这样一个危险的命令之前复制你的工作树文件夹,文档告诉你这样做,但你似乎没有。因此,您当地回购的状态值得怀疑。最佳行动方案:放弃你的项目并制作一个新的克隆。

© www.soinside.com 2019 - 2024. All rights reserved.