0
0

Git rebase操作・vimコマンドについて

Posted at

gitでコミットをまとめる際に、リベースを行うことはよくあると思う。

GitBashであれば、その際にVimで編集することになるので
その際に利用するvimコマンドもまとめておこうと思う

練習

まずは適当なコミットを用意して、それをリベースしてみる。

image.png

この例であれば、53707c2のコミットに対してリベースを行ってみる。

image.png

リベースを実行

リベースを実行すると、以下のようにvim操作画面になる。
image.png

yyでフォーカスされている行のコピーを行う。

今回であればpick da7522e...の行をコピーする。
vimコマンドを実行しても、コピーできているかは視覚的には分からない。

pでコピーした行のペーストをフォーカスしている行に対して行う。

これらを実行すると以下のように、ペーストが行える。
image.png

削除をするときはINSERTモード(編集)で削除するか、ddコマンドで切り取って削除する。

image.png

image.png

iでINSERTモード(要は編集)になり、ここで内容の削除・追加などが行える。

image.png

当たり前だが、ここはキーボード操作になるのでvimコマンドは使えない。

vimコマンドを使いたい場合はESCキーを押下して、INSERTモードから抜ける。

リベースによるコミットの扱いを変える

リベースの操作は、画面に表示されている通り。
これはvimの操作ではなく、gitのrebaseコマンド特有の操作である。


実は他にも表示されるコマンドはあるが、使うことはほぼない。
使う機会が出てきたらまとめようと思う。

p, pick → コミットをそのまま利用する。
r, reword → コミットはそのまま使うが、コミットメッセージは修正する
s, squash → コミットは利用せず、前のコミットに結合する
f, fixup → コミットを利用せず、そのコミットメッセージは消える

リベースによるコミット順番の操作

一応、コピー・ペースト・削除をつかうことで、コミットの順番を変えることができる。

しかし、コミットタイミングを変えたことで高確率で競合が発生してしまうので、あまりお勧めはしない。

そうならないようにコミットメッセージは分かりやすくする。

もしくは、順番を変えるまでする必要のあるわけのわからないコミットは入れないようにした方が良い。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0