見出し画像

(今更だけど)Udemyでgitの復習をしました

気がついたら8月が終わって,少し涼しい気温になったものの,まだ残暑と言うこの時期.

タイトルの通り,基本に戻ろうとgitの復習をしました.

使った教材はこちら.

AWSの勉強でもお世話になった山浦さんの講座を受講しました.そこまで難しい内容ではないですしほとんど知っている内容なので,スイスイと進めることができました.また,改めて基本に振り返ることで頭の中を整理することができました.

受講するまであまり知らなかったところだけメモしました.


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

コミットメッセージを書き直したい場合は次のコマンドを実行します.
※ただし,リモートリポジトリにpushしたあとでコミットのやり直しをしてはいけないです

$ git commit --amend

このコマンドを知らなくて,今までは次のコミットの時に

さっきのコミットメッセージは間違いでxxxxx.このコミットはyyyyy

としていました(なんて奴).--amendを使えば良さそうですが,僕は基本的にSourceTreeを使っていて,ローカルリポジトリにコミットとリモートリポジトリにpushを両方同時にやっているので使うことはあまりなさそうです.


フェッチとプルの違い

ちなみにプルばっか使っていてフェッチについてよくわかっていませんでした.フェッチコマンドって何だったかなぁって感じでした.

というわけで図で整理してみました.

画像1

git fetchはリモートリポジトリからローカルリポジトリに情報を落とすことで,ローカルリポジトリからワークツリー(自分の作業場)に情報を落とすのはgit mergeです.git fetchgit mergeの両方をやるのがgit pullです.(やってること全然違ってた...)


リベースでコミットを並び替える

リベースも聞いたことあるけど,使ったことねーっていうコマンドでした.

リベースでコミットを並び替える場合はまず次のコマンドを実行します.

# コミットIDからのコミットをやり直す
$ git rebase -i <コミットID>

# 直前3つのコミットをやり直す
$ git rebase -i HEAD~3

例えばgit rebase -i HEAD~3したときについて見ていきます.コマンド入力するとエディタが立ち上がります.

pick a953502 3つ前のコミットメッセージ
pick 96dccbe 2つ前のコミットメッセージ
pick bbbca7f 最新のコミットメッセージ

これを次のように最新のコミットと3つ前のコミットの順番を入れ替えると,順番が入れ替わります.

pick bbbca7f 最新のコミットメッセージ
pick 96dccbe 2つ前のコミットメッセージ
pick a953502 3つ前のコミットメッセージ

正しく順番が入れ替わっているかは次のコマンドで確認できます.

# gitのコミット歴を1行でコミット分表示する
$ git log --oneline -n 3


リベースでコミットを削除する

リベースでコミットを削除したい場合は並び替える時と同様,次のコマンドを実行します.

# コミットIDからのコミットをやり直す
$ git rebase -i <コミットID>

# 直前3つのコミットをやり直す
$ git rebase -i HEAD~3

例えばgit rebase -i HEAD~3したときについて見ていきます.コマンド入力すると同じようにエディタが立ち上がります.

pick cdb5e3a 3つ前のコミットメッセージ
pick 797f1f4 2つ前のコミットメッセージ
pick 840b69f 最新のコミットメッセージ

これを次のようにpickを#にすると2つ前のコミットを削除できます.

pick cdb5e3a 3つ前のコミットメッセージ
# 797f1f4 2つ前のコミットメッセージ
pick 840b69f 最新のコミットメッセージ

正しく削除されているかは次のコマンドで確認できます.

# gitのコミット歴を1行でコミット分表示する
$ git log --oneline -n 3


タグ付けする

タグもリリース作業時に使っていましたが,なんとなくやっている部分がありました(これまた,なんて奴).

タグ付けをする目的は,コミットを参照しやすくするためにつけます.

次のコマンドで現在あるタグ名を確認できます

$ git tag

タグを作成するには次のコマンドを入力します

$ git tag -a [タグ名] -m [メッセージ]

タグを作成するだけではリモートリポジトリには送信されません.送信するには次のコマンドを入力します.

$ git push [リモート名] [タグ名]

# タグを一斉に送信する
$ git push [リモート名] --tags


スタッシュで作業を一次避難する

でコミットしたくないけど,別ブランチに切り替える必要がある場合などに使います.次のコマンドで変更を避難させます.

$ git stash

避難した作業を確認するには次のコマンドを入力します.

$ git stash list

避難した作業を元に戻すには次のコマンドです.

# 最新の作業を復元する
$ git stash apply

# 特定の作業を復元する
$ git sttash apply [スタッシュ名]

git stash applyしても避難した作業は消えません.消すには次のコマンドを入力します

# 最新の作業を削除する
$ git stash drop

# 全て削除する
$ git stash clear




この記事が気に入ったらサポートをしてみませんか?