GIT實操手冊 —— 如何作到精準回滾

目錄

  • 1、如何將在工做區中修改的文件進行回滾(git checkout)git

    • 恢復單個文件
    • 恢復全部文件
    • 編譯器:VSCcode 源代碼管理
  • 2、如何將暫存區修改的文件進行回滾(git reset)vim

    • 恢復暫存區指定文件到工做區
    • 恢復暫存區全部的文件到工做區
    • 編譯器:VSCcode 源代碼管理
  • 3、如何將提交後的文件進行回滾(git reset、git revert)bash

    • 將剛提交的版本回滾到未提交狀態
    • 回滾到之前指定版本
  • 4、遠程機器如何進行回滾spa

    • 方法一:先git reset回滾到本地,而後再強制push到遠程。
    • 方法二:先git revert將有問題的版本進行修正,生成新的版本,而後psuh到遠程分支。
  • git reset VS git revert

1、如何將在工做區中修改的文件進行回滾(git checkout)

恢復單個文件

git checkout -- README.md

恢復全部文件

git checkout .

編譯器:VSCcode 源代碼管理

2、如何將暫存區修改的文件進行回滾(git reset)

恢復暫存區指定文件到工做區

git reset README.md

恢復暫存區全部的文件到工做區

git reset

編譯器:VSCcode 源代碼管理

3、如何將提交後的文件進行回滾(git reset、git revert)

將剛提交的版本回滾到未提交狀態

git reset HEAD^
git reset @^
Tips:這個命令是將提交後的文件回滾到工做區的狀態,若是修改以後須要再次 git add .

回滾到之前指定版本

git reset commitID
git revert -n commitID

4、遠程機器如何進行回滾

方法一:先git reset回滾到本地,而後再強制push到遠程。

不建議,可能沒有權限,危險操做code

git reset commitID
git push -u origin master -f

方法二:先git revert將有問題的版本進行修正,生成新的版本,而後psuh到遠程分支。

至關於打補丁,建議使用blog

git revert -n commitID
# 手動處理衝突
     # if 處理衝突完畢
     git revert --continue
     # if 退出不處理衝突
     git revert --abort
# 進入vim界面 編寫commit describe並保存
git push origin master

git reset VS git revert

上面回滾中用到了 git resetgit revert 兩種方法,下面進行一下分析:ip

比較 相同點 不一樣點
git reset 能夠進行回滾操做 git reset回滾以後commitID後面的版本就沒有記錄了。<br/>若是想要回滾到將來節點,要知道將來節點的commitID。<br/>因此在回滾前最好先知道當前的commitID
git revert 能夠進行回滾操做 git revert回滾操做以後,會進行文件的手動去留,<br/>而後新生成一個版本號,以前的提交仍是在的。
相關文章
相關標籤/搜索