0%

[實用git系列]在 master commit 後,趕緊開分支救火!!

做新功能時,有時直接就在 master branch 上改動而忘記開新 branch,結果要 push 時才發現沒換分支,但是已經 commit 好幾個了,因此不能用 git checkout -b

以下為帆哥提點

1. 在改動的 master 上開一個 branch

此時在 master 上 commit 的紀錄會全部複製到新 branch

1
$ git branch <newbranchname>

2. master 退回之前版本

害怕 reset 後改動不見的可以先把上一步新開的 branch 推上 github,再將本地的 master 退回之前版本

首先到 sourceTree 選中要回退的版本,右鍵選擇 reset current branch to this commit

選擇 Hard 模式

選項解釋

  1. soft: 回退到暫存區
  2. Mixed: 回退到未暫存區
  3. Hard: 直接把提交的文件reset

確認後 master 就成功回退到過去版本了,接著可以切到新的 branch 上繼續做事了

CLI 操作

相對版本

$ git reset --hard HEAD 回復到最新提交版本
$ git reset --hard HEAD~ 等於 1 回復到上一個提交版本
`$ git reset –hard HEAD
n` n 等於往上第幾個提交版本 回復之前指定的提交版

由於無介面,CLI 得使用 git log --oneline 去看之前的版本紀錄,再算要回到幾個版本前喔

指定版本

也可以直接指定要回到哪一個版本

1
$ git reset --hard 85e7e30