如何在我的工作副本中排除非指数的变更?
当前回答
您可以创建自己的标签,描述如何以描述的方式进行。
我用下一个字符来排除变化。
排除工作树中的一个(列表)文件(s)中的变化
discard = checkout --
然后,你可以使用它作为附加,以排除所有变更:
discard .
或者只是一个文件:
discard filename
否则,如果你想删除所有的更改,以及未追踪的文件,我使用一个混合的检查和清洁:
清理和排除工作树中的变更和未追踪文件
cleanout = !git clean -df && git checkout -- .
所以使用是简单的如下:
cleanout
现在在下一个GitHub repo中可用,其中包含许多联盟:
HTTPS://github.com/GitAlias/吉塔利亚
其他回答
你可以使用 git stash - 如果有什么不对劲,你仍然可以从 stash 返回。 类似于这里的一些其他答案,但这个也删除所有未输入的文件,以及所有未输入的删除:
git add .
git stash
如果你检查一切都没事,请放下:
git stash drop
比拉尔·马克索德(Bilal Maqsood)与吉特清洁的答案也为我工作了,但我有更多的控制权 - 如果我偶然做STH,我仍然可以恢复我的变化
更新
我认为还有1个变化(我不知道为什么这对我以前工作):
git add. - A 而不是 git add.
没有 -A 删除的文件将不会复制
无论你的 repo 是什么状态,你总是可以重新设置到任何以前的承诺:
git reset --hard <commit hash>
这将消除随后发生的所有变化。
另一种更快的方式是:
git stash save --keep-index --include-untracked
你不需要包含 - 包括 - 不被吸引,如果你不想仔细了解它。
接下来,你可以用 git stash drop 命令放下这个 stash 如果你愿意。
我最喜欢的是
git checkout -p
这使你能够选择性地逆转碎片。
也看:
git add -p
它甚至在常见的 git 许可之外的目录中工作。
sudo chmod -R 664 ./* && git checkout -- . && git clean -dfx
最近发生在我身上
推荐文章
- Visual Studio代码如何解决合并冲突与git?
- 无法推送到远程分支,无法解析到分支
- Git:如何将数据库重置为特定的提交?
- 如何在合并期间使用Git和命令行保存本地文件或远程文件?
- 能够用一个命令推到所有git遥控器?
- 重新基于Git合并提交
- 忽略已经签入目录的内容?
- 如何完全删除TFS绑定
- 哪些Eclipse文件属于版本控制?
- 如何从windows cmd保存git提交消息?
- (Mac) -bash: __git_ps1:命令未找到
- 如何删除多个已删除的文件在Git仓库
- 使用vimdiff查看所有' git diff '
- 如何拉特定的目录与git
- 本地存储库中的文件与源文件之间的差异