リモートリポジトリのコミットメッセージを変更する


##はじめに
Git初心者にとって、Git公式ドキュメントを読むのはなかなか大変なことです。 
なぜなら、専門用語と情報量が多く読む気がなくなるからです。
また、GitHubのドキュメントでは、英文で記載されている場合が有り
これも初心者が戦いを挑むには非常に厳しいです。
この記事では、専門用語や英文はなるべく出さずに解説したうえで、
リモートのコミットメッセージの変更を行えるようにしていきます。

###覚えること
<font color="Red">今回覚えることは Gitコマンド5つです。  </font>
これはコミットメッセージの指定、変更、終了、確認およびリモートへの反映です。
上記を覚えれば、これを組み合わせてリモートのコミットメッセージを変更できます。

###対象者
「リモートのコミットメッセージの変更方法を知りたい」
「とりあえずGitコマンドを勉強したい」

 というGit初心者向けです。

この記事ではGitコマンドについて説明しています。
そのため、Vimの基礎など各所で前提となる知識については詳しくは説明していません。
わからない人向けに参考サイトを用意しましのでご参照ください。

では、さっそくGitコマンドを覚えていきましょう！

###環境
OS: macOS Catelina  (バージョン10.15.4)
ターミナル: Terminal.app

##1.コミットメッセージ

###1-1.コミットメッセージの指定
コミットメッセージを変更するには、変更したいコミットメッセージを指定する必要があります。
変更したいコミットメッセージがあるリポジトリのローカルで下記Gitコマンドを入力します。

```
git rebase -i Head~
```
git rebaseの仕組みはこちらの記事が参考になります。
[git rebase についてまとめてみた]
(https://qiita.com/KTakata/items/d33185fc0457c08654a5)
<br></br>

次に、<font color="Red">最新のコミットメッセージを1として、変更したいコミットまでの数を数えます。</font>
変更したいコミットメッセージが最新から3番目なら3です。
<img width="948" alt="スクリーンショット 2020-06-08 11.10.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604764/eae243e5-bdaa-2c0d-9a4c-d075618e75db.png">



Head~の後に、変更したいコミットメッセージまでの数を入力します。

```

git rebase -i Head~3
```
<br></br>

returnキーを押した後に、Vimエディターが起動します。
その後、変更したいコミットメッセージが最新から3番目まで表示されます。
また、<font color="Red">コミットメッセージは上から古い順で表示されます。</font>


```
pick d16db66 3回目のコミットメッセージ
pick aa8c32e 4回目のコミットメッセージ
pick c095a22 最新のコミットメッセージ

 #省略
  
 Note that empty commits are commented out
```
変更したいコミットメッセージは、最新から3番目なので1番上のコミットメッセージ
である<font color="Red">先頭文字pickをeditに変更し</font>Vimエディターを保存し終了して下さい。

```
edit d16db66 3回目のコミットメッセージ 
pick aa8c32e 4回目のコミットメッセージ 
pick c095a22 最新のコミットメッセージ 

 #省略
  
 Note that empty commits are commented out
```

<br></br>

ただし、<font color="Red">最初のコミットメッセージを変更したい場合、git rebase -i Head~では指定できません。</font>
なので、代わりに下記Gitコマンドを入力します。

```

git rebase -i --root
```

returnキーを押した後に、git rebase -i Head~と同様にVimエディターが起動します。
その後、変更したいコミットメッセージが最新から最初まで表示されますので、
最初のコミットメッセージである1番上の<font color="Red">先頭文字pickをeditに変更し</font>
Vimエディターを保存し終了して下さい。

```
edit 1bb580f 最初のコミットメッセージ
pick afb7f87 2回目のコミットメッセージ
pick d16db66 3回目のコミットメッセージ
pick aa8c32e 4回目のコミットメッセージ
pick c095a22 最新のコミットメッセージ

Rebase c095a22 onto c095a22 (5 commands)

```

###1-2.コミットメッセージ変更

コミットメッセージの指定後に下記Gitコマンドを入力し、
" "の中に新たに変えたいコミットメッセージを入力しreturnキーを押してください。


```

git commit --amend -m "ここにコミットメッセージを書きます!"
```
git commit --amendの仕組みはこちらの記事が参考になります。
[履歴の書き換え]
(https://www.atlassian.com/ja/git/tutorials/rewriting-history)

###1-3.コミットメッセージ変更を終了

コミットメッセージを変更しましたら、下記Gitコマンドを入力しreturnキーを押してください。
また、複数のコミットメッセージを変更したい場合は、1-1~1-3までの手順を繰り返して下さい。

```
git rebase --continue
```
git rebaseの仕組みはこちらの記事が参考になります。
[git rebase についてまとめてみた]
(https://qiita.com/KTakata/items/d33185fc0457c08654a5)

###1-4.コミットメッセージを確認

コミットメッセージを変更しましたら、問題がないかコミットメッセージを確認しましょう。
下記Gitコマンドを入力しreturnキーを押してください。

```

git log --oneline
```
git logの仕組みはこちらの記事が参考になります。
[git log の option 色々]
(https://qiita.com/takayukioda/items/f1fa9e4c18c233b93e11)

<font color="Red">git log --onelineではコミットメッセージは上から新しい順で表示されます。</font>
これで変更できていれば成功です。

```
c095a22 最新のコミットメッセージ
aa8c32e 4回目のコミットメッセージ
d16db66 ここにコミットメッセージを書きます! <- 3回目のコミットメッセージ

```




##2.リモートに反映

変更が終わりましたらリモートにコミットメッセージを反映させましょう。
反映する際は、下記Gitコマンドを入力しreturnキーを押してください。
これで反映完了です。

```
git push -f origin master
```
git pushの仕組みはこちらの記事が参考になります。
[typoしてpushしてしまったコミットコメントを修正してpushしなおす方法]
(https://qiita.com/ykawakami/items/71b462057a8d714d7382)

##おわりに
お疲れ様でした！ 
リモートのコミットメッセージを変更できるようになりましたね。

この記事をきっかけに、コミットメッセージの変更を覚えていただければ嬉しいです！







##参考サイト一覧
###コミットメッセージ 変更方法
[Gitのコミットメッセージを後から変更する方法をわかりやすく書いてみた]
(https://www.granfairs.com/blog/staff/git-commit-fix)
[Gitで最初のコミットをどうにかする]
(https://tmtms.hatenablog.com/entry/2014/05/28/git)

###Vimエディタ使用方法
[Vimチートシートを作りました（超初心者用）]
(https://qiita.com/hattys2/items/56d973ad4f197b751501)