#リベースコマンドの使い方
※リベースの基本的な使い方は限定共有記事に記載してある
rebase
git rebase -i <コミットID>
git rebase -i HEAD~3
#’-i’はinteractiveの略で、対話的みたいな意味で話しながら変更するよみたいな意味
上のコマンド打った後には、ターミナルが起動するのだが、
変更したい対象のコミットの行に対して以下の変更をする。
’pick’となっているところを'edit'に変更してから保存すれば
実際に変更ができるようになる。
一連の流れはこんな感じ
git rebase -i HEAD~3
#と入力
↓
edit hg3322 ヘッダー修正
pick tu8877 ファイルを追加
pick hg5544 READMEを編集
#editに変更してから保存
↓
#変更が完了したら以下を実行
git commit --amend
↓
#リベースが完了したら以下のコマンドを実行(これでリベース完了)
git rebase --continue
上の流れを'edit'と変更した箇所に対して
繰り返し行っていき、変更するコミットがなくなると終了する。
慣れていかないと使い方がムズイので
慣れていこう。。。
##コミットをまとめる
コマンドの流れは上記といっしょで、pick
となっているところを
squash
と変更して保存すればコミットをまとめることができる。
squash
git rebase -i HEAD~3
#と入力
↓
squash hg3322 ヘッダー修正
squash tu8877 ファイルを追加
pick hg5544 READMEを編集
#squashに変更してから保存
↓
#この後にコミットメッセージなどの内容を書き換えたりできるので、書き換えて終了するとコミットがまとまる
##コミットを分割する
一連の流れは最初に似てる
git rebase -i HEAD~3
#と入力
↓
pick hg3322 ヘッダー修正
pick tu8877 ファイルを追加
edit hg5544 READMEとindex修正
#editに変更してから保存
↓
git reset HEAD^
#'git reset'コマンドとはコミットを取り消して、ステージングしてない状態まで戻すコマンド
#'HEAD^'とはeditと変更したコミットのことを指している
#ここからそれぞれの変更をコミットしていく
git add README
git commit -m "README修正"
git add index.html
git commit -m "index.html修正"
git rebase --continue
これで分割が完了します。
実際のデータがどうやって動いているのかを理解してかないと
よくわからなくなるので、使って慣れるしかなさそうです
あと何よりも注意しなきゃいけないのが、
GitHubにpush
したコミットに対しては絶対に変更したらダメです!