- 2021年10月25日
はじめに
私はGitをSourceTreeではなく、
visual studioとcmdで操作することがほとんどです。
今回は、そんな私が業務でよく使うコマンドをまとめようと思います。
ちなみに、私はコミットログを書くときのエディタの設定を、vs codeに設定しています。
.gitconfigをvs codeで開いて、editor = code –waitにしています。
コミットを1つにまとめたい時
コミットがかさばってしまう時、あると思います。
そんな時の私のやることは以下の感じです。
1 git log –oneline -10
とりあえず直近10件のコミットメッセージとIDの確認をします。今回は、5件のコミットを1つにまとめていきます。
2 git rebase -i コミットID
修正を行いたいコミットの1つ前のIDを指定してrebaseを行います。
vs codeが開かれます。コミットが上から古い順番で並んでいます。
3 1番上のコミットをpickからrewordに変更し、他のコミットは全てfixupにして保存をしてからファイルを閉じる。
fixupで1つ上のコミットにコミットが重なっていくイメージです。
rewordはコミットメッセージを変更するのみ。
保存して閉じると、またvs codeが開かれます。
4 1つにまとめたコミットのコミットメッセージを設定。
コミットメッセージがこのままで良かったら、そのまま保存してファイルを閉じます。
以上で複数のコミットが1つにまとまりました。
5 git log –oneline -10
最後に、コミットが1つになっているか確認します。
1つになってますね。
5 git push
しかし、このコミットをpushすると、errorがでてプッシュできません。
なので
git push origin head -f
このコマンドで強制プッシュを行うことで、プッシュできます。
※今回の処理は自分しか使ってないブランチの時だけ行ってください。
誰かと共有しているブランチで強制プッシュするとリモートブランチが上書きされて、大変なことになるかもしれません。
余分なファイルをコミットしてしまった時
誤ってコミットに関係のないファイルをプッシュしてしまったり、プッシュしたコミット内容を変更したい場合
私のやることは以下の感じです。
1 git log –oneline -10
とりあえず直近10件のコミットメッセージとIDの確認をします。
なんで10なのかは癖です。特に意味はないです。今回だったら -2で良いです。
2 git rebase -i コミットID
誤ったコミットの1つ前のコミットIDを指定して
rebaseを行います。vs codeが開かれ、コミットが表示されます。
3 コミットをpickからeditに変更し、保存をしてからファイルを閉じる。
4 git reset @~
再びcmdに戻り resetを行います。
コミットがなかったことになり、変更内容がワーキングツリーに戻ってくるので、余分なファイルを消したり
ファイルを変更したりして、何事もなかったかのようにコミットを行ってください。
5 git rebase –continue
実はまだ、rebase作業中なので、コミットが終わった後
git rebase –continueを実行してください、これでrebase作業終了になります。
6 最後にプッシュ。
前のコミットに新しい変更を含めたい時
コミットした後に、コミットに含めるはずの修正を見つけてしまった場合
私のやることは以下の感じです。
1 変更をステージに上げる
とりあえず、入れたい修正の内容をステージに上げてください
2 git commit –amend –no-edit
これだけでOKです。
変更中のファイルを置いといて他のブランチで作業したい時
急に今すぐ別のブランチでの対応が必要な時、あると思います。
作業が中途半端なためコミットはしたくない…そんな時。
私のやることは以下の感じです。
1 git stash -u
これで今の変更が退避されます。
2 他のブランチに移動して作業を終わらせて、戻ってくる
3 git stash pop
これで退避していた変更が戻ってきます。
終わりに
私がよく使うgit コマンドまとめみました。
誰かの参考になったら良いなーと思います。