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
コマンドを実行。
立ち上がったエディタでコミットを行ごと削除すると削除。
行ごと切り取り⇨
貼り付けなどで順番を変更すれば、並び替えを行える。
変更できたらエディタを保存し、閉じて完了。
コミットをまとめる
エディタを立ち上げるまでは同じ。pick
をsquash
に変更する。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」をクリックするとタグのページに移動できる。
コメント