git 撤銷 回退 的 相關操作


git 正常提交流程:

git add .             //所有文件提交到暫存區

git commit -m "本功能全部完成"  //將提交文件提交到版本庫 

 

 

  • 執行完add后,想撤回add,怎么辦?

    git status          // 先看一下add 中的文件 

    git reset HEAD    *****            //如果后面什么都不跟的話 就是上一次add 里面的全部撤銷了 

 

  • 執行完commit后,想撤回commit,怎么辦?

    git reset HEAD main.c;    將待刪除的文件由暫存區恢復到工作區             //將之前添加到暫存區的的內容從暫存區移除

    git checkout -- main.c;     將工作區的修改丟棄;                                      //丟棄相對於暫存區中最后一次添加文件所作的變更

 

    

   或者:

 

  git reset --soft HEAD^    //這樣就成功的撤銷了你的commit                注意,僅僅是撤回commit操作,您寫的代碼仍然保留。

  注釋:

  HEAD^的意思是上一個版本,也可以寫成HEAD~1,如果你進行了2次commit,想都撤回,可以使用HEAD~2

  相關參數:

  • --mixed 

意思是:不刪除工作空間改動代碼,撤銷commit,並且撤銷git add . 操作   這個為默認參數,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的。

  • --soft  

不刪除工作空間改動代碼,撤銷commit,不撤銷git add . 

  • --hard

刪除工作空間改動代碼,撤銷commit,撤銷git add . 

注意完成這個操作后,就恢復到了上一次的commit狀態。

 

git rm與git rm --cached

當我們需要刪除暫存區分支上的文件, 同時工作區也不需要這個文件了, 可以使用

1 git rm file_path
2 git commit -m 'delete somefile'
3 git push

當我們需要刪除暫存區分支上的文件, 但本地又需要使用, 只是不希望這個文件被版本控制, 可以使用

git rm --cached file_path
git commit -m 'delete remote somefile'
git push

 

 git rm   與  操作系統的 rm  本質是一樣的

區別:

  • git rm  main.c   完成

    1.刪除文件 

    2.將刪除文件納入暫存區;

 

    回退刪除之前:

      git reset HEAD main.c;    將待刪除的文件由暫存區恢復到工作區

      git checkout -- main.c;     將工作區的修改丟棄;

 

  • rm    完成刪除文件,但不將刪除文件納入緩存區 

 

    回退刪除之前:

      git checkout -- main.c;     將工作區的修改丟棄;

 

 git mv  重命名

  • git  mv 源文件名  新文件名             //修改完成會被納入暫存區

     git  mv main.c  test.c

  回退修改前

      git reset HEAD main.c;    將待刪除的文件由暫存區恢復到工作區

      git checkout -- main.c;     將工作區的修改丟棄;

 

  • mv 源文件名  新文件名             //修改完成    並未納入暫存區

      git  mv main.c  test.c

  回退修改前

      git checkout -- main.c;     將工作區的修改丟棄;

 

如果commit注釋寫錯了,改注釋

    git commit --amend

    此時會進入默認vim編輯器,修改注釋完畢后保存就好了

     或者    git commit --amend -m "修正的消息"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM