所以我做了一个新的git分支,做了一些事情,添加了一些文件,测试了一些其他东西。
决定我不想要任何这些更改,所以我在新分支上提交然后删除它认为git会删除在新分支中完成的所有操作。
我切换回我的主人,分支目录中的一些文件仍然存在。
其他文件的修订版返回到预分支状态,这很好,但我仍然留下了相当多的文件夹垃圾。
我试过做......
git reset --hard oldcommit
但这也不会导致文件被删除 如何让git删除这些文件?
答案 0 :(得分:1)
您必须从未提交的所有内容中“清理”工作目录和索引
你可以用:
rm <any leftovers>
git clean -Xfd // Capital X
git clean -xfd // small x
以下是一些更高级的选项:
有几个选择:
# This will destroy any local modifications.
# Don't do it if you have uncommitted work you want to keep.
git reset --hard 0d1d7fc32
git checkout -b <new_branch> <commit id>
// Now your branch contains all the commits up to the
// desired one and without the newer ones
git revert
git revert将允许您回滚任何提交,您需要做的是列出A中要删除的所有提交(使用脚本),然后从第二个存储库中还原它们
git revert <commit1> <commit2> ... <commitn>
filter-branch
使用此选项可完全删除历史记录中的提交。
git filter-branch --commit-filter '
if [ `git rev-list --all --grep "<log-pattern>" | grep -c "$GIT_COMMIT"` -gt 0 ]
then
skip_commit "$@";
else
git commit-tree "$@";
fi'
HEAD