Gitのコマンドメモ
直前のpushを取り消したい
※この場合コミットは消えてしまいます。
// 直前のコミットを取り消す
git reset --hard HEAD^
// この状態だとローカルだけなので強制的にPushする
git push -f origin master
ローカルのコミットはそのままで、pushだけ取り消したい
pushの戻すSHA-1を指定する
※指定したpushが最後のpushになる
// リモートブランチへの参照を強制的に変更する
$ git push -f origin ??????:branch_name
1つ前のpushを取り消したい場合は、2つ前のSHA-1
これやるだけで、pushの必要ない
コミットをまとめたい
// 2つ前のコミットまでをまとめる ~ の数で制御
git rebase -i HEAD~~
エディタが立ち上がるのでどうするか決めてから保存
p、pick =コミットを使用
r、reword =コミットを使用しますが、コミットメッセージを編集します
e、edit = コミットを使用しますが、修正を中止します
s、squash =コミットを使用しますが、前のコミットにまとめる
f、fixup = "squash"のようですが、このコミットのログメッセージを破棄します
x、exec =シェルを使用してコマンドを実行(残りの行)
リモートのブランチ名を変更したい
ローカルの参照?を移動する方法
前に戻す→reset
git reset --soft HEAD^
git reset --soft ???SHA
HEAD^は直前のコミットを指す
HEADの所を、SHAにすれば目的のコミットまで戻れます。
--softで移動している限りは、コミットが消えたりしない。
・Sourcetreeでいうと、右クリックの"現在のブランチをこのコミットまでリセット"と同じ
・IntelliJ IDEAでいうと、右クリックの”現在のブランチをここにリセット”
元に戻す pull
サーバーにすでにプッシュしてあるケースの場合は、元の所に戻すには単純にpullすればよい
こう考えると、pullというのは、サーバー側の参照にローカルの参照を追いつかせるみたいな感じなのかな?