📝

Git やりたいこと逆引き集

2024/04/30に公開

おすすめ設定

git config init.defaultBranch main
git config core.editor nano
git config rebase.autostash true
git config pull.autostash true

ディレクトリをGitリポジトリとして初期化する

git init

変更を一区切りする

# 特定のファイルだけを含めたい場合
git add 変更に含めたいファイルの名前
# より直感的に操作でき便利
git add -p
# すべて含めたい場合
git add .
git commit -m "メッセージ"

変更をリモートに入れる

git push

変更をリモートに入れる(強制的に自分のコミットログをもっていく)

git push -f
# より安全(他の人の知らないコミットを消し飛ばしてしまう事故を起こしにくい)
git push --force-with-lease
git push --force-if-includes

通常のgit pushでは今までのコミットの上に自分の新しいコミットを追加しようとするが、この方法では自分のローカルにあるコミット情報を単純にコピーする。

今いるブランチからブランチを切る

git branch ブランチ名

ブランチを切り替える

git switch ブランチ名

リモートの今居るブランチから変更をすべてとってくる

git pull

リモートの違うブランチから変更をすべてとってくる

git pull origin ブランチ名

今のブランチをリモートの違うブランチと同じ状態にする

git pull origin ブランチ名 --rebase

ローカルの違うブランチから変更をすべてとってくる

git merge ブランチ名

今のブランチをローカルの違うブランチと同じ状態にする

git rebase ブランチ名

コミット履歴を見る

git log

コミットハッシュ(コミットごとのIDのようなもの)などを取得することができる。

特定のコミットを打ち消す

git revert コミットハッシュ

コミットハッシュの代わりにHEADと指定すると最新のコミットをrevertすることができる。HEAD^と指定すると最新から1コ前のコミット、HEAD~数字と指定すると最新から(数字)コ前のコミットをrevertすることができる。

コミット1〜コミット2までの変更を打ち消す

git revert コミット1のハッシュ..コミット2のハッシュ

コミット1..コミット2の書き方は他のところでも色々と使える。

特定のコミット時点での状態を見る

git checkout コミットハッシュ

別ブランチから特定のコミットを持ってくる

git cherry-pick コミットハッシュ

過去を無かったことにする

git rebase -i コミットハッシュ

入力したコミットハッシュまでの過去が以下のように表示される。

pick コミットハッシュ1 コミットメッセージ1
pick コミットハッシュ2 コミットメッセージ2
pick コミットハッシュ3 コミットメッセージ3
︙

コミットメッセージを変えたい場合は、pickrewordに変更して、エディタを終了する。
すると再びエディタが開くので、変更したいコミットメッセージを入力する。

コミットを無かったことにしたい場合は、pickdropに変更する。

コミットをまとめたい場合は、まとめたいコミットのうち、最終的に残したいもの(まとめ先にしたいもの)を除きすべてsquashに書き換える。

この操作のあと、リモートにもっていきたい場合はフォースプッシュが必要になる。

コミット前の変更を退避する

git stash

退避した変更を戻す

git stash pop

Discussion