はじめに
- 開発作業時によく使うGitコマンドを毎回調べるのが面倒なので、まとめました。
- VSCodeで操作することを想定しています。
- 随時内容追加することがあります。
コミット前(作業時)
ブランチを削除(マージ済み)
git branch -d <ブランチ名>
コミット済またはマージされていない場合、エラーが出力される。
ブランチを削除(未マージ)
git branch -D <ブランチ名>
ブランチの名前を変更
git branch -m <現在のブランチ名> <新しいブランチ名>
コミット後
直前のコミットをリセット
git reset --soft HEAD^
直前のコミットからリセット対象が1つずつ増えるごとに^
(ハット)も増えていく。
# HEAD〜4つ前のコミットまで
# ex. HEAD^^^^
以下参考記事が詳しい。
コミットメッセージを変更
git commit --amend -m <コミットメッセージ>
or
git commit --amend
プッシュしてしまった後でのコミットメッセージの書き換え方法はあるが、強制プッシュする必要があるので注意。
以下参考記事。
リバート(コミットの取消)
git revert <commit識別番号>
なお、commit識別番号はgit log --oneline
で確認できる。
オプションを付加することで、commit識別番号(一部)とコミットメッセージだけが表示されるので見やすい。
複数のコミットを1つにまとめたい
# ex) HEADとHEADから数えて2つ前のコミットが対象
git rebase -i HEAD^^
プッシュ後
自分の作業ブランチに他の作業者の内容を取り込みたい
# ex) developブランチの内容を自分の作業ブランチに取り込む
git checkout develop
git pull
git checkout <作業ブランチ名>
git merge origin develop
マージ後
コンフリクトしたのでマージを取りやめたい
git merge --abort
他にも状況によって、取り消す方法が複数あるが、以下参考記事が詳しい。
レビュー時
リモートブランチをローカルに持ってくる
git fetch
git branch -r
git checkout -b <新ブランチ名> <リモートブランチ名>
git branch -a
でローカルに持っていきたいリモートブランチを確認する。
remote/origin/...
が表示されるがorigin/...
の部分をリモートブランチ名に指定すること。
ちなみにgit checkout <リモートブランチ名>
でもリモートブランチを見ることができるが、違うブランチにチェックアウトすると、ブランチが表示されなくなるので注意。
Tips
コンフリクトを解消する
- エディタ側で解決する
- Github側で解決する
- リモートブランチ側の変更のみなので、まだローカルで作業したい場合は、ローカルブランチ側で
git pull
しておくこと。
- リモートブランチ側の変更のみなので、まだローカルで作業したい場合は、ローカルブランチ側で
エイリアスを設定する
-
git config
でエイリアスを設定するとコマンド叩くのが楽になる。 -
~/.zshrc
でコマンド自体をエイリアス化すると尚良し。
設定前
git branch
設定後
br
以下参考記事が詳しい。