如何在我的工作副本中排除非指数的变更?


当前回答

只用:

git stash -u

是的,容易。

如果你真的很关心你的<unk>子,那么你可以跟随吉特<unk>子下降,但在那个时候你更好地使用(从Mariusz Nowak):

git checkout -- .
git clean -df

然而,我喜欢 git stash -u 最好的,因为它“排除”所有跟踪和未跟踪的变化在一个命令。 但是 git checkout -. 只排除跟踪的变化, git clean -df 只排除未跟踪的变化... 并输入两个命令是太多的工作:)

其他回答

当您输入 git 状态时(使用“git checkout -...”来删除工作目录的变更)显示。

上一篇:Git Checkout

cd path_to_project_folder  # take you to your project folder/working directory 
git checkout .             # removes all unstaged changes in working directory

如果所有的步骤文件实际上已经完成,那么分支可以简单地重新设置,例如从您的GUI,大约有三个鼠标点击:分支,重新设置,是的!

因此,我经常在实践中做的事情,以逆转不需要的地方变化,就是承诺所有的好事,然后重新设置分支。

如果好事是在单一的承诺中承诺,那么你可以使用“修改最后的承诺”将其带回被推翻或不推翻,如果你最终想承诺它有点不同。

这可能不是你正在寻找问题的技术解决方案,但我认为这是一个非常实用的解决方案. 它允许你选择性地排除未完成的变化,重新调整你不喜欢的变化,并保持你所做的变化。

因此,简而言之,我只是承诺,分支重新设置,并修改最后的承诺。

它甚至在常见的 git 许可之外的目录中工作。

sudo chmod -R 664 ./* && git checkout -- . && git clean -dfx

最近发生在我身上

要排除工作目录中的变化,使用 git checkout -- <file> -- 意味着当前分支参考的变化:-

https://www.baeldung.com/git-discard-unstaged-变更