git上的後悔藥

爬蜥發表於2018-12-31
  1. 修改上一次提交的文案

    git commit —amend複製程式碼

    我第一次提交時執行了命令:git add .git commit -m “add some thing”

    但是commit後悔了,需要做一些修改再提交

    再次提交的時候執行 git commit —amend 這時候log日誌只顯示一條資訊

  2. 撤銷操作

    • 在執行了commit 命令時 : 回滾到某一個版本git reset —hard 提交的id[commit_id]要回退到未來 可以使用 git reflog [由上到下分別顯示的是最新的提交命令]檢視歷史命令,這樣再使用回滾到某一個版本的命令,執行回滾即可
    • 在未執行 commit但執行了 add,可使用 git reset HEAD file,便回到執行add 之前的狀態(從stage狀態回到modified狀態)
    • 對file做了一些修改,但沒有執行 add ,這個時候執行 git checkout - - file便可撤銷所有的修改
  3. 刪除了某一個分支,恢復上面的東西

    • git log -g找回刪掉的commit_id
    • git branch 新分支名 commit_id 即可
  4. 單獨恢復某個檔案

    • git log 檔名 —>
      找到要回退的版本
    • git reset commitID 檔名 —>
      這時候可能會出現這樣的 Unstaged changes after reset
    • git checkout — 檔名 即可
  5. git clean 刪除工作目錄中沒有tracked的檔案

     -n 不會刪除任何檔案,只是提醒 -f 刪除當前目錄下沒有track過的檔案,不刪除.gitignore指定的檔案和資料夾 -df 刪除沒有track的檔案和資料夾-xd 刪除沒有track過的檔案,不管是否在.gitignore指定複製程式碼
  6. git rm 從Unmodified狀態到modified狀態

  7. git reset —soft HEAD^ 回到最後一次commit —amend,即commit 到stage狀態

    —soft 快取區和工作目錄都不會改變

附錄

git檔案修改的狀態變更

git上的後悔藥

來源:https://juejin.im/post/5c2a09a85188255f1879b0d8

相關文章