在git分支上丢弃所有更改(使用未跟踪文件)的最佳方法是什么?

时间:2016-01-08 14:25:07

标签: git shell command-line

git中是否有一个简单的命令可以删除对分支所做的所有更改并删除所有未跟踪的文件?我想要一个干净的分支。

git checkout会留下一些未跟踪的文件,并会显示您的文件将被覆盖的消息 ...

git reset --hard HEAD也会留下未跟踪的文件

2 个答案:

答案 0 :(得分:2)

使用两个命令执行此操作的两种方法。

来自Jubobs ref

git reset --hard $rev
git clean -f

来自R0MANARMY ref

git stash --include-untracked
git stash drop

如果需要,其中任何一个都可以别名为单个命令。

答案 1 :(得分:0)

你有几种方法可以做你想做的事。

详细答案可在此处找到:How to move HEAD back to a previous location? (Detached head)

另一个不存在的选项是git clean。

git clean

您可以执行git clean以删除所有未跟踪的文件(备份文件)

git clean -Xfd // capital X
git clean -xfd // small x
  

-x (小写)

     

不要使用从.gitignore(每个目录)和$GIT_DIR/info/exclude读取的标准忽略规则,但仍然使用-e选项提供的忽略规则。

     

这样可以删除所有未跟踪文件,包括构建产品   这可以使用(可能与git reset一起使用)来创建一个pristine工作目录来测试一个干净的构建。

     

-X (大写)

     

仅删除Git忽略的文件。
  这可能有助于从头开始重建所有内容,但保留手动创建的文件。

相关问题