- 此问题在此处已有答案**:
(41个答案)
5天前关闭。
我正在一个分支上工作,比如说"实验性",我从主分支中分支出来,然后,我在实验性分支中生成一个用户模型,但是还没有将它们添加到索引中。
如果我想放弃最近添加到我的实验分支中的文件的所有更改,我应该怎么做?未跟踪的文件如下所示:
$ git status
On branch new_chick
Untracked files:
(use "git add <file>..." to include in what will be committed)
.project
app/models/user.rb
db/migrate/
test/fixtures/users.yml
test/unit/user_test.rb
我试图运行"git reset--hard",希望撤消所有这些更改,但上面提到的所有文件仍然显示出来。
8条答案
按热度按时间f2uvfpb91#
要删除未跟踪的文件/目录,请执行以下操作:
-f -力
-d -目录也是
-x -同时删除忽略的文件(如果不想删除忽略的文件,请不要使用此选项)
小心使用!
这些命令可以永久删除任意文件,这是您一开始没有想到的。请仔细检查并阅读此答案下面的所有注解和--help部分等,以便了解所有细节来微调您的命令,并确保获得预期的结果。
lp0sw83n2#
用户交互式方法:
-i表示交互式
-f表示力
-d表示目录
-x表示忽略的文件(如果需要,请添加)
注意:*添加-n或**--dry-run**以检查它将执行什么操作。*
nwsw7zdq3#
删除未跟踪的文件:
git clean -f
要删除未跟踪的目录,请用途:
git clean -f -d
为防止心脏骤停,使用
git clean -n -f -d
qq24tv8q4#
这些都是未跟踪的文件,这意味着git没有跟踪它们,列出它们只是因为它们不在git ignore文件中,因为它们没有被git跟踪,所以
git reset
不会碰它们。如果你想清除所有未被跟踪的文件,最简单的方法是
git clean -f
(如果你想看看它会破坏什么,而实际上什么也不删除,那么就用git clean -n
)。iugsix8n5#
您还可以通过另一种方式返回到本地存储库的前一个状态:
1.使用
git add
将未跟踪的文件添加到临时区域。1.返回到具有
git reset --hard
的本地存储库的先前状态。wfypjpf46#
营救你的命令是
git clean
。9gm1akwq7#
好吧,我有类似的问题。我已经采取了最新的,但有一些变化,在本地由于合并是不是发生在一个特定的文件。该文件是untracked,我不想让他们,所以我所做的是-
$ git checkout 文件路径/文件名
filepath -我执行git bash的位置。然后当我执行最新的更改时,这些更改就可用了
dba5bblo8#
虽然
git clean
工作得很好,但我仍然发现使用我自己的脚本来清理git repo很有用,它有一些优点。这显示了一个要清理的文件列表,然后交互式地提示是否清理。这几乎总是我想要的,因为每个文件的交互式提示变得乏味。
它还允许手动过滤列表,当有你不想清理的文件类型(并且有理由不提交)时,这很方便。
git_clean.sh