📝
Git やりたいこと逆引き集
おすすめ設定
git config --global init.defaultBranch main
git config --global core.editor nano
git config --global rebase.autostash true
git config --global 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
︙
コミットメッセージを変えたい場合は、pick
をreword
に変更して、エディタを終了する。
すると再びエディタが開くので、変更したいコミットメッセージを入力する。
コミットを無かったことにしたい場合は、pick
をdrop
に変更する。
コミットをまとめたい場合は、まとめたいコミットのうち、最終的に残したいもの(まとめ先にしたいもの)を除きすべてsquash
に書き換える。
この操作のあと、リモートにもっていきたい場合はフォースプッシュが必要になる。
コミット前の変更を退避する
git stash
退避した変更を戻す
git stash pop
Discussion