ほげほげ見聞録

技術メモ、備忘録、使い方はそのうち覚える

git:コミット

基本はaddからのcommitだが、-aオプションを追加するとaddをスキップ可能。

-mオプションで設定可能なコミットメッセージは、クオートで囲まないとエラーが出る場合がある(空白を含む場合など)。

git commit -a -m 'message'

コミットをまとめる

下のコマンドを入力すると、HEADからHEAD~~までのコミットがテキストエディタで表示される。

git rebase -i HEAD~~

テキストエディタの表示された、まとめたいコミットのpicksquashに変更する。変更した行の上(先にしたコミット)とまとまる。
保存して閉じると、新しいコミットメッセージを指定する為にテキストエディタが開く。(意外と待たされる)

pick <commit hash1> <commmit message1>
pick <commit hash2> <commmit message2> → squash <commit hash2> <commmit message2>

新しいコミットメッセージを<new commit message>の部分に追加する。保存して閉じると完了。
rebaseは成功してるのに.gitフォルダでエラーが出てたり、ブランチの表示がおかしかったりする場合はエディタを終了させてからrebaseを--continue--abortを指定して実行。

# This is a combination of 2 commits.
<new commit message>
# The first commit's message is:

<commmit message1>

# This is the 2nd commit message:

<commmit message2>

コミットメッセージを変更

コミットをまとめると同様に、rebaseでログを編集する。

git rebase -i HEAD~~

テキストエディタの表示された、まとめたいコミットのpickeditに変更する。ログを保存・閉じるとコマンドラインに戻る。
--amendを指定してコミットを実行、再びエディタが開いてコメントを設定可能。

git commit --amend

コメント修正後、ログを保存・閉じる。その状態だとrebaseの作業中なので、--continueオプションで操作を終了する。

git rebase --continue