Git——rebase命令

何惜戈發表於2019-01-11

本來以為git掌握幾個基礎命令就行了,面試時突然被面試官聞到了git rebase命令,直接懵逼了。回來一查會了還真有用,直接記錄下來吧。

  • 命令作用
    協同開發過程中,自己本地不可避免的產生很多commit資訊。push的時候顯得特別雜亂,以往心情好的時候就會給最近的幾個commit資訊reset一下,然後重新提交commit資訊。現在看來真TMSB。。。
    git rebase的作用就是重新對某一段線性提交歷史進行編輯、刪除、複製、貼上

功能1: 合併commit

命令格式
git rebase -i [startpoint] [endpoint] 合併的範圍是前開後閉
eg:合併最近三條commit
git rebase -i HEAD~3 (合併了 head^2 head^ head)
進入編輯介面:
1.根據需求按指令編輯commit

  • pick:保留該commit(縮寫:p)
  • reword:保留該commit,但我需要修改該commit的註釋(縮寫:r)
  • edit:保留該commit, 但我要停下來修改該提交(不僅僅修改註釋)(縮寫:e)
  • squash:將該commit和前一個commit合併(縮寫:s)
  • fixup:將該commit和前一個commit合併,但我不要保留該提交的註釋資訊(縮寫:f)
  • exec:執行shell命令(縮寫:x)
  • drop:我要丟棄該commit(縮寫:d)
    2.編輯註釋

功能2:複製某一段commit

git rebase [startpoint] [endpoint] --onto [branchName]
eg:git rebase HEAD~3 HEAD~1 --onto master 將當前分支的 head^2 head^ 複製到master分支上

相關文章