自分がGitで困ったときに使ったGitコマンドをここに日々追加していきます。
困ったときに使うもの
よく分からなくなってリモートに変なのを送ってしまった。
リモートを強制的に上書きする。他人が触らない、自分だけのブランチで実行しよう。
git push -f origin <戻したい位置>:<ブランチ>
とか
git push -f <ブランチ>
ローカルで良く分からなくなったから、どこかまで戻したい。
--soft:コミットだけが消える。ステージと作業ディレクトリはそのまま--mixed:コミットとステージが消える。作業ディレクトリはそのまま(デフォルト)--hard:全部消える
git reset --soft<戻したい位置>
親ブランチの更新を子ブランチに反映
ブランチが分岐する位置が変わる。マージコミットをすると怒られる OSS で使う。
#子ブランチにいる状態で git rebase <親ブランチ名>
コミットに含めるのを忘れたりした時に追加する
コミットしたらタイポに気付いたり、CI回して忘れ物に気付くときに使う。
# ファイルの修正や、git add でファイル追加を事前に実行 git commit --amend --no-edit
複数のコミットを1つにする (squash)
git commit --amendを忘れたりするときに使う。エディタが開いて、まとめるものを指定する。1行1コミットで表示される。
まとめたいものが離れている場合は、その行を切り取って入れ替えられる。 そのままにしたいものはpickのまま、まとめたいものはsにする。sにすると、その上のpickにまとめられる。
git rebase -i <まとめたいコミットの1つ以上前のコミット>
パッチの適用を元に戻す
Gitではないけど、パッチを適用したことをなかったことにする。
patch -R -p0 < <パッチファイル>
なんか、やらかしちゃった?
作業ログを見て確認
git reflog
なかったことにする
うっかりしたコミットしたときにコミットをなかったことにする。 次にちゃんとコミットしたときに、「ちゃんとしたコミット・無かったことにしたコミット・うっかりしたコミット」をsquashするとよい。
git revert <コミット>
普段からよく使うもの
git checkout . git status git add <ファイル> git commit -m "メッセージ"