Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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_Version Control - Fatal编程技术网

理解git重置——混合

理解git重置——混合,git,version-control,Git,Version Control,我正在尝试理解git reset命令。我理解git reset--hard,我理解git reset--soft很少有用。尽管我在网上和这个网站上读了很多书,但我还是很难理解git reset的实际功能和用途 我知道,git reset将暂存区域重置为指定提交的暂存区域,使工作树保持最近提交时的状态 这究竟意味着什么?暂存区域包含准备提交的已修改文件。但是,工作树的版本比临时区域的版本更高,这有什么意义呢 我什么时候使用这个命令 这很令人困惑。请尝试澄清。考虑您已签出分支并在本地进行编辑,但您对

我正在尝试理解git reset命令。我理解git reset--hard,我理解git reset--soft很少有用。尽管我在网上和这个网站上读了很多书,但我还是很难理解git reset的实际功能和用途

我知道,
git reset
将暂存区域重置为指定提交的暂存区域,使工作树保持最近提交时的状态

这究竟意味着什么?暂存区域包含准备提交的已修改文件。但是,工作树的版本比临时区域的版本更高,这有什么意义呢

我什么时候使用这个命令


这很令人困惑。请尝试澄清。

考虑您已签出分支并在本地进行编辑,但您对所有这些更改都不满意,并且您最近的提交是稳定的。在这可怕的时刻,来了

git重置——硬

返回到稳定提交,并消除所有本地更改

硬的、软的和混合的在它们所重置的内容上是不同的
  • --柔软的
  • 只需重置您的索引,而不接触任何已更改的文件

  • --混合的
  • 这也会重置索引,并且不会删除本地已更改的文件,只需取消标记以进行提交即可

  • --硬的
  • 这个硬汉只是蒸发你所有的最新行动,删除文件,重置索引,从而带回你的最新提交


    <>强< > />强>

    为什么我要重置索引而不是工作树?考虑你在两个提交,直到你满意你的结果代码,但是你不希望有那么多提交,或者只是对你过去的提交细节不满意。使用--soft,您可以摆脱提交,但仍然可以在本地上进行更改,并且可以将所有修改合并到一个提交中。