Discard all uncommitted changes, modified files, added files and non-added
使用Git放弃未提交更改的最佳方法是什么?
我读了这篇文章,但想完全理解每一步都在做什么。
Git撤消所有未提交或未保存的更改
1 | git reset |
"这将取消存储所有可能使用git add进行的文件",取消存储是什么意思?
这是否意味着删除任何添加的文件?
1 | git checkout . |
号"还原所有本地未提交的更改(应在repo root中执行)"
什么是根?如果我在分支A上,并且我想忽略分支A上所有未提交的更改,那么分支A是否被视为根?
1 | git clean -fdx |
"警告:-x还将删除所有被忽略的文件,包括.gitignore指定的文件!您可能希望使用-n预览要删除的文件。"
这是在删除我的文件吗?包括被忽略的文件?如果忽略的文件没有更改怎么办?
我只想回到上一次提交,而不担心它之后的任何更改。最简单最安全的方法是什么?当人们认为f%ck它的时候,他们通常会这样做,我不想看到我面前的东西,我想把我的工作树上的所有东西都像上一次修订的一样,然后忘记其他的东西:
1 | git reset --hard |
。
小心使用:这将使您的工作树与您所处的修订版保持一致,工作树和索引中的所有更改都将被丢弃,这样您就不会再看到它们。
what does unstage mean?
号
"不稳定"是指从索引中删除更改。索引是在提交更改之前对其进行阶段化处理的地方。取消分页不会删除任何文件或撤消工作目录中的任何更改。
What is considered the root?
号
这里,"根"指的是项目的基目录。它与分支或提交无关。
I simple want go back to my last commit and not worry about any changes after it. What is the simplest and safest way to do that?
号
放弃所有本地更改的最简单方法是
1 | git reset --hard HEAD |
号
你可以(从你的回购根目录)
1 | git checkout HEAD -- . |
或者(正如EFTShift0和代码学徒在他们的答案中所建议的那样)
1 | git reset --hard HEAD |
号
这两个命令都会将您的文件恢复到上次提交时的状态。
但警告:此操作无法撤消。如果您对这些失败的更改的未来使用有任何疑问,那么对
1 | git stash |
(并有可能在以后检查或重复使用)
关于您考虑的其他命令,EDOCX1(此处暗含
注意