如何在我的工作副本中排除非指数的变更?
当前回答
我有一個奇怪的情況,在那裡一個檔案總是無關,這有助於我解決。
git rm.gitattributes git add -A git reset --hard
其他回答
无论你的 repo 是什么状态,你总是可以重新设置到任何以前的承诺:
git reset --hard <commit hash>
这将消除随后发生的所有变化。
如果您处于子模块的情况下,没有其他解决方案工作,请尝试:
查看问题是什么(可能是一个“脏”案例)使用: git diff 删除 stash git 子模块更新
如果您想恢复未完成的文件,请使用 git restore --staged。
您可以创建自己的标签,描述如何以描述的方式进行。
我用下一个字符来排除变化。
排除工作树中的一个(列表)文件(s)中的变化
discard = checkout --
然后,你可以使用它作为附加,以排除所有变更:
discard .
或者只是一个文件:
discard filename
否则,如果你想删除所有的更改,以及未追踪的文件,我使用一个混合的检查和清洁:
清理和排除工作树中的变更和未追踪文件
cleanout = !git clean -df && git checkout -- .
所以使用是简单的如下:
cleanout
现在在下一个GitHub repo中可用,其中包含许多联盟:
HTTPS://github.com/GitAlias/吉塔利亚
我真的觉得这篇文章有用来解释什么时候使用什么命令: http://www.szakmeister.net/blog/2011/oct/12/reverting-changes-git/
有几个不同的案例:
如果您没有下载文件,则使用 git checkout. Checkout “更新工作树中的文件以匹配指数中的版本”。 如果文件没有下载(因此添加到指数)... 这个命令将基本上将文件转换为您最后的承诺。
我怀疑使用 git stash 是很受欢迎的选择,因为它有点不那么危险. 你总是可以回到它,如果你偶然在使用 git reset 时跳过太远。
请参见上面的文章以获得更多建议。
推荐文章
- 如何从远程Git存储库中提取并覆盖本地存储库中的更改?
- Github:导入上游分支到fork
- Git单次修订的日志
- Git在不改变提交时间戳的情况下进行改基
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 从GitHub克隆项目后拉git子模块
- GitHub上的分叉和克隆有什么区别?
- 递归地按模式添加文件
- 我如何使用notepad++(或其他)与msysgit?
- 如何将现有的解决方案从Visual Studio 2013添加到GitHub
- Git存储库中的悬垂提交和blob是什么?它们来自哪里?
- 我如何简单地从我最新的git提交创建一个补丁?
- Git显示“警告:永久添加到已知主机列表”
- 我如何检索一个回购的远程git地址?