Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 放弃所有未提交的更改、修改的文件、添加的文件和未添加的文件_Git_Git Reset - Fatal编程技术网

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

Git 放弃所有未提交的更改、修改的文件、添加的文件和未添加的文件,git,git-reset,Git,Git Reset,使用Git放弃未提交更改的最佳方法是什么 我读了这篇文章,但想完全理解每一步都在做什么 “这将取消存储您可能使用git add暂存的所有文件”,取消存储是什么意思? 这是否意味着删除任何添加的文件 git checkout . “还原所有本地未提交的更改(应在repo root中执行)” 什么是根?如果我在分支A上,并且我想忽略分支A上所有未提交的更改,那么分支A是否被视为根 git clean -fdx 警告:-x还将删除所有被忽略的文件,包括由.gitignore指定的文件!您可能希望

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

我读了这篇文章,但想完全理解每一步都在做什么

“这将取消存储您可能使用git add暂存的所有文件”,取消存储是什么意思? 这是否意味着删除任何添加的文件

git checkout .
“还原所有本地未提交的更改(应在repo root中执行)” 什么是根?如果我在分支A上,并且我想忽略分支A上所有未提交的更改,那么分支A是否被视为根

git clean -fdx
警告:-x还将删除所有被忽略的文件,包括由.gitignore指定的文件!您可能希望使用-n预览要删除的文件 这是在删除我的文件吗?包括被忽略的文件?如果忽略的文件没有更改怎么办

我只想回到我的上一次提交,而不必担心它之后的任何更改。最简单、最安全的方法是什么?您可以(从您的回购根目录中)这样做

或者(正如他们的回答中已经提出的)

这两个命令都会将文件还原为上次提交时的状态

警告:此操作不可撤消。如果您对这些失败的更改的未来使用有任何疑问,最好
将其隐藏起来

git stash
(并有可能在以后对其进行检查或重新使用)


关于您考虑的其他命令,
git reset
HEAD
)将“仅”从索引中获取所有更改,而不是从工作树中获取。因此,您不需要的更改仍会存在于您的文件中,只是在下次提交时未进行分级


还要注意gitclean-fdx,如果使用不当,这是一个危险的命令,因为它会删除所有未跟踪的文件。它有它的用途,但在您描述的情况下(使您的项目处于上次提交时的状态),它不是您所需要的。

人们通常会这样做,当他们认为f%ck它时,我不想看到我面前的东西,我想把我工作树上的所有东西都像上次修订时一样,忘记所有其他的东西:

小心使用:这将使您的工作树与您所在修订版上的工作树保持一致,工作树和索引中的所有更改都将被丢弃,这样您就不会再次看到它们

不稳定意味着什么

“取消分级”表示从索引中删除更改。索引是在提交更改之前进行阶段性更改的位置。取消老化不会从工作目录中删除任何文件或撤消任何更改

什么是根

git clean -fdx
这里,“根”指的是项目的基本目录。它与分支或提交无关

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

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

git reset --hard HEAD

git reset--hard HEAD
git reset--hard
None之间的区别可能重复<当您没有显式传递ref时,代码>HEAD是隐含的。@rkta没错。但我指的是未限制的更改,尽管您确实可以返回到reflog中的前一个状态,但您无法恢复未限制的更改。
git stash
git reset --hard
git reset --hard HEAD