2015-07-04 61 views
2

我想了解git reset命令。我明白git reset --hard,我明白git reset --soft很少有用。儘管在網上和本網站上閱讀了很多內容,但我很難理解git reset --mixed(或簡單地說git reset)實際上做了什麼以及它的用途。瞭解混帳重置 - 混合

我知道git reset將暫存區域重置爲指定提交的暫存區域,使工作樹保持原來的狀態。

這實際上是什麼意思?暫存區域包含準備提交的已修改文件。然而,工作樹比暫存區更新的版本有什麼意義?

我什麼時候可以使用這個命令?

這很混亂。請嘗試澄清。

回答

1

考慮一下你已經簽出了一個分支並在你的本地進行了編輯,但是你對所有這些更改並不滿意,而且你的最新提交是穩定的。在這種可怕的時刻,來了

git reset --hard

找回穩定的承諾,並擺脫所有的局部變化。

硬,軟及混合都在他們正在重新

  1. --soft

只是重置您的索引,並沒有觸及你的任何更改的文件

的不同
  1. - 混合

這也會重置您的索引,並且不會刪除本地更改的文件,只是將它們標記爲未提交。

  • --hard
  • 這個硬漢只是蒸發所有的最新行動,刪除文件,重新設置指數,從而帶回你的最新承諾。

    此外this

    +0

    爲什麼我會永遠想重置索引而不是工作樹? –

    +1

    考慮一下你有幾次提交,直到你對你的結果代碼感到滿意,但你不希望有那麼多的提交,或者只是對你過去的提交細節感到不滿。使用--soft,您可以擺脫提交,但仍可以在本地進行更改,並且可以將所有修改合併爲一個提交。 –