テックキャンプ107日目〜リベースとタグ付け

kobasaです(´ω`*)
だいぶかかりましたがUdemyのgitコースを修了できました。

マスターとまではいきませんが、ターミナルで色々なコマンドが実行できるようになりました。
テックキャンプのカリキュラム外の内容もあり、オリジナルアプリ作成時にも使用したいです。

107日目の勉強内容

リベースで変更履歴を書き換える

こちら、僕が前から知りたかった機能になります(´ω`*)!!

直前より前のコミットをやり直す

git rebase -i コミットID
複数のコミットをやり直すコマンド。pushしたコミットには使用しない。
-i--interactiveの略で対話的リベースといい、やり取りしながら履歴を変更していく。


git rebase -i HEAD~3
上記を記述して実行すると直前のコミットから3つ分の親コミットまでを変更対象にできる。

②設定したエディタが立ち上がるので修正したいコミットをpickからeditへ変更する。
保存してエディタを終了する。コミットは古い順に表示される。

コミット名とコミットメッセージが表示されている

③editにしたコミットのところでコミットの適用が止まるの。ターミナルに表示。

④変更漏れがあったファイルを変更してgit add ファイル名でステージに上げる。
git commit --amendコマンドでコミット内容をステージの内容に修正。
コミットメッセージを変えたいだけならgit commit --amendだけでOK。

git rebase --continueコマンドでeditが終了になり、次のeditに変更したコミットへ行く。全て完了したら
Successfully rebased and updated refs/heads/master.のようなメッセージがターミナルに表示され終了。

コミットの削除・並び替え

先ほどのgit rebase -i HEAD~3コマンドを実行。
立ち上がったエディタでコミットを行ごと削除すると削除。
行ごと切り取り貼り付けなどで順番を変更すれば、並び替えを行える。
変更できたらエディタを保存し、閉じて完了。

コミットをまとめる

エディタを立ち上げるまでは同じ。picksquashに変更する。
squashを指定すると指定したコミットを直前のコミットと一つにできる。

コミットを分割する

①エディタが立ち上がったら分割したいコミットをpickからeditへ変更する。エディタを終了させる。

git reset HEAD^ コマンドを実行。
HEAD^は1つ前のコミットを指す。1つ前のコミットの状態に戻すコマンド。
1つ前のコミットに戻るため、結果的にeditで指定したコミットが取り消される。

③ワークツリーで変更があるファイルの状態になる。
その後はお好みの分け方でgit add ⇨ git commitを繰り返す。

④分割作業が終了すればgit rebase --continueを実行して終了。

コミットにタグを付ける

タグとは、コミットを参照しやすくするためにわかりやすい名前を付けること。
よくリリースポイント(サービスとして世に出すタイミング)に使うらしい。
日付とバージョン情報を記録しておくと、バグなどで後から巻き戻すときにわかりやすい。

タグの一覧を表示する

git tagコマンドでアルファベット順にタグを表示する。
git tag -l "表示したい値" で実行すると指定した値を含んだタグを表示できる。

現在のコミットにタグを作成する

git tag -a "タグ名" -m "メッセージ"
-aで注釈付版タグを作成する。-aをつけないと軽量版になりタグに名前しかつけれない。
-mでエディタを立ち上げずにメッセージを入力できる。
名前・コメント・作成者をタグに付けることができる。

昔のコミットに後からタグを付ける場合は、
git tag -a "タグ名" コミット名 -m "メッセージ"

タグのデータを表示するコマンド
git show タグ名

  • タグ付けした人の情報
  • タグ付けした日時
  • 注釈メッセージ
  • コミットが表示される

タグをリモートリポジトリに反映させる

タグをリモートに反映させるには別途コマンドが必要になる。
git push リモート名 タグ名

未反映のタグを一斉にリモートに送信するコマンド
git push リモート名 --tags

リポジトリ画面のブランチの横にある「tag」をクリックするとタグのページに移動できる。

コメント

タイトルとURLをコピーしました