關于git reset 的總結


git reset/revert 就是程序員的后悔藥。主要總結了reset,懂了reset自然就懂了revert(更安全的reset,后悔藥的后悔藥),但是git reset 會有更干凈的commit路徑。

常用格式

  1. git reset [option] [commit] //重制指定提交,可以具體指定到文件,否則就是所有文件。
# 重置前一次提交的filename.java,會丟棄所有修改沒有任何保留。
git reset --hard head^ filename.java
  1. git reset head [file list] // 重制為當前提交,一般用于重制暫存區(qū)到工作區(qū)。
  2. git reset head^ // 重制到當前提交的前次提交
  3. git reset head~n // 重制到當前提交的前n此提交,即在這次提交之后提交都刪除, head^ 相當于head~1
  4. git reset [commit-hash/tag name] // 可以指定提交的hash值或者tag名

選項詳解

options: 如果會把重置的內容放到哪個位置,哪個位置就不能有和重置內容相同的文件。

  1. --mixed // 重置提交和暫存區(qū),即所有被重置的提交(和暫存區(qū))的修改都放到工作區(qū), 默認選項。在可能情況下不會影響工作區(qū)原有內容。

  2. --soft // 重置提交, 即被重置的提交的修改放到暫存區(qū)。在可能情況下不會影響暫存區(qū)和工作區(qū)原有內容。

  3. --hard // 重置提交, 暫存區(qū),工作區(qū)。將丟失所有被重置的修改。

  4. --merge // 保留工作區(qū),直接丟棄暫存區(qū)的修改,丟棄所有重置的提交 。。

  5. --keep // 保留工作區(qū),把暫存區(qū)的內容放到工作區(qū)(兩個區(qū)中不能有相同的文件),丟棄所有重置的提交。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容