丢弃所有未提交的更改、修改的文件、添加的文件和未添加的文件

use*_*677 2 git git-reset

使用 Git 丢弃未提交更改的最佳方法是什么。

我读了这个,但想完全了解每一步在做什么。

git 撤销所有未提交或未保存的更改

git reset
Run Code Online (Sandbox Code Playgroud)

“这将取消暂存您可能使用 git add 暂存的所有文件”,取消暂存是什么意思?

这是否意味着删除任何添加的文件?

git checkout .
Run Code Online (Sandbox Code Playgroud)

“还原所有本地未提交的更改(应在 repo root 中执行)”

什么被认为是根?如果我在分支 A 并且我想忽略分支 A 上所有未提交的更改,分支 A 是否被视为根?

git clean -fdx
Run Code Online (Sandbox Code Playgroud)

“警告:-x 还将删除所有被忽略的文件,包括 .gitignore 指定的文件!您可能需要使用 -n 来预览要删除的文件。”

这是在删除我的文件吗?包括被忽略的文件?如果忽略的文件没有改变怎么办?

我只是想回到上次提交,而不用担心之后的任何更改。最简单、最安全的方法是什么?

eft*_*ft0 5

人们通常会做的事情是,当他们认为f%ck它时,我不想看到我面前的东西,我想把我的工作树上的所有内容都保留为最后一次修订时的样子,而忘记其他所有内容是:

git reset --hard
Run Code Online (Sandbox Code Playgroud)

谨慎使用:它将使您的工作树与您所在的修订版本保持一致,工作树和索引中的所有更改都将被丢弃,因此您不会再看到它们。


Cod*_*ice 5

unstage 是什么意思?

“unstage”意味着从索引中删除更改。索引是您在提交更改之前暂存更改的地方。Unstaging并不会删除任何文件或反向从您的工作目录的任何更改。

什么被认为是根?

在这里,“root”是指项目的基本目录。它与分支或提交无关。

我只是想回到上次提交,而不用担心之后的任何更改。最简单、最安全的方法是什么?

丢弃所有本地更改的最简单方法是使用

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

  • 没有任何。当您未显式传递任何引用时,会隐含“HEAD”。 (2认同)