【发布时间】:2014-05-28 15:48:03
【问题描述】:
我的工作目录中有 2 个文件。我想完全丢弃这些文件,以便可以切换分支。
网上有很多有用的指南,我已经尝试了所有可以找到的答案来删除这些文件,但它们仍然存在。
user@machine:~/Code/foo$ git status
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/test/foo.c
modified: src/test/bar.c
我根据其他 stackoverflow 问题尝试过的命令。
git reset
git reset --hard HEAD^
git stash save --keep-index
git stash drop
git checkout HEAD -- $(git ls-files -m)
git clean -f
git clean -dfx
git checkout -- .
git checkout -- *
git checkout 123456
git reset --hard 123456
git reset HEAD --hard
令人惊讶的是,在每个命令之后,我发现文件仍然存在!
user@machine:~/Code/foo$ git status
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/test/foo.c
modified: src/test/bar.c
由于只有 2 个文件,我知道我可以 一个一个地重新检查它们。但是,如果再次发生这种情况并且我有 100 个文件,我想知道如何将所有文件一次扫除。
git checkout src/test/foo.c
git checkout src/test/bar.c
更新
显然,甚至 git checkout 都不起作用
git checkout src/test/foo.c
echo $?
0
git checkout src/test/bar.c
echo $?
0
user@machine:~/Code/foo$ git status
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/test/foo.c
modified: src/test/bar.c
这些文件不会消失。
更新2
我也试过这些命令,但没有运气。
git reflog
git checkout HEAD@{17}
git init
git reset --hard HEAD^
更新3
存储没有任何作用。
git checkout master
git stash
git stash pop
git stash drop
删除文件也不起作用。
user@machine:~/Code/foo$ git rm --cached $(git ls-files -m)
rm 'src/test/foo.c'
rm 'src/test/bar.c'
user@machine:~/Code/foo$ git status
On branch master
Your branch is behind 'origin/master' by 162 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: src/test/foo.c
deleted: src/test/bar.c
【问题讨论】:
-
git checkout -f yourCurrentBranch -
是的,我看到了这个问题,并且我已经尝试了我能在其中找到的所有答案。没有运气
-
是的,我也读过这个问题,我已经尝试了那里建议的所有答案,但没有运气。
标签: git