如何在我的工作副本中排除非指数的变更?
当前回答
您可以创建自己的标签,描述如何以描述的方式进行。
我用下一个字符来排除变化。
排除工作树中的一个(列表)文件(s)中的变化
discard = checkout --
然后,你可以使用它作为附加,以排除所有变更:
discard .
或者只是一个文件:
discard filename
否则,如果你想删除所有的更改,以及未追踪的文件,我使用一个混合的检查和清洁:
清理和排除工作树中的变更和未追踪文件
cleanout = !git clean -df && git checkout -- .
所以使用是简单的如下:
cleanout
现在在下一个GitHub repo中可用,其中包含许多联盟:
HTTPS://github.com/GitAlias/吉塔利亚
其他回答
如果您不感兴趣保留未完成的更改(特别是如果未完成的更改是新的文件),我发现这个方便:
git diff | git apply --reverse
我有一個奇怪的情況,在那裡一個檔案總是無關,這有助於我解決。
git rm.gitattributes git add -A git reset --hard
另一种更快的方式是:
git stash save --keep-index --include-untracked
你不需要包含 - 包括 - 不被吸引,如果你不想仔细了解它。
接下来,你可以用 git stash drop 命令放下这个 stash 如果你愿意。
我真的觉得这篇文章有用来解释什么时候使用什么命令: http://www.szakmeister.net/blog/2011/oct/12/reverting-changes-git/
有几个不同的案例:
如果您没有下载文件,则使用 git checkout. Checkout “更新工作树中的文件以匹配指数中的版本”。 如果文件没有下载(因此添加到指数)... 这个命令将基本上将文件转换为您最后的承诺。
我怀疑使用 git stash 是很受欢迎的选择,因为它有点不那么危险. 你总是可以回到它,如果你偶然在使用 git reset 时跳过太远。
请参见上面的文章以获得更多建议。
git clean -df
清理工作树,重复删除不受版本控制的文件,从当前目录开始。
D:除了未追踪的文件之外,还可以删除未追踪的目录
-f: 力量(可能不需要根据 clean.requireForce 设置)
Run git help clean 查看手册
推荐文章
- 如何在Visual Studio中删除未推送的外向提交?
- Git在两个不同的文件之间的差异
- 我如何使用vimdiff来解决git合并冲突?
- 如何将更改提交到另一个预先存在的分支
- 为什么使用'git rm'来删除文件而不是'rm'?
- 我如何安装imagemagick与自制?
- 致命:git-write-tree:错误构建树
- Git克隆远程存储库的特定版本
- git隐藏的意图用例是什么?
- 从远程Git存储库检索特定的提交
- 如何配置git bash命令行补全?
- 我如何迫使git拉覆盖每一个拉上的一切?
- 撤销“git add <dir>”?
- 是否可以在不先签出整个存储库的情况下进行稀疏签出?
- 如何移除SSH密钥?