1. 程式人生 > >記一次git硬reset導致的程式碼消失

記一次git硬reset導致的程式碼消失

    最近專案比較敢,心情煩躁,想取消一個commit,於是不知咋地鬼使神差地reset current brand to here,就這樣

  

    還點了hard

    然後,辛苦寫的程式碼就這樣沒有了...

 

    


    此次反映出自己對checkout,revert,reset 不熟悉.

    補習一下.

  • git resetgit checkout 和 git revert 是你的 Git 工具箱中最有用的一些命令。它們都用來撤銷程式碼倉庫中的某些更改,而前兩個命令不僅可以作用於提交,還可以作用於特定檔案。
  • Git 倉庫有三個主要組成——工作目錄,快取區和提交歷史。
  • 你傳給 git reset 和 git checkout 的引數決定了它們的作用域。如果你沒有包含檔案路徑,這些操作對所有提交生效。
    •   git checkout [branch/commit]
  • reset 引數
      • --soft – 快取區和工作目錄都不會被改變
      • --mixed – 預設選項。快取區和你指定的提交同步,但工作目錄不受影響
      • --hard – 快取區和工作目錄都同步到你指定的提交
  •   Revert
    •   Revert 撤銷一個提交的同時會建立一個新的提交。這是一個安全的方法,因為它不會重寫提交歷史。