git コマンド 備忘録
$ git push [BリポジトリURL] [今いるAリポジトリのbranch名]:[pushしたいBリポジトリのbranch名]
- git commitしたけど、この差分もさっきのcommitにいれたいな、、でもコメントもっかい書くのだるいな。。。
$ git commit --amend -C HEAD
- うゎー、結構改修あるからちょっとずついっぱいcommitしたいな。けどlogには1個のcommitでいいな。。。
今いる作業ブランチから $ git branch temp_hoge (or git checkout -b temp_hoge) 修正...commit...修正....commit..... $ git merge --squash temp_hoge その後、git commitで完了
- あれ、よくよくgit logを見ると、実はよーわからんlogがある。なにこれ。。。
$ git log commit hogehogehogehogehogehogehoge Merge: hogera hoge Author: mokokko Date: Thu Oct 25 09:13:05 2012 +0900 Merge branch 'feature/ho_ge_ge' of github.hoge.jp:hoge/hogera into feature/ho_ge_ge commit hohohohogeeeeeeeeeeeeeee ....
このlogは?
=> git pull したとき、マージされ、しかもfast-forwardじゃなかったときはこんな感じのマージコミットが生成される。
non-fast-forward: リモートにコミットがあり、かつローカルにもコミットがあるようなときのこと
- えー、git pull のマージコミットのlogいらない。。。
そもそもgit pull ではなく
$ git pull --rebase
を使う。
もし、git pull だけしちゃって、「git pull --rebaseにすればよかったーーーうわーーー」ってなった場合、
git reset --hard ORIG_HEAD で戻してしまってから git pull --rebase すれば良い。
- 歴史を戻す
履歴確認
$ git log
戻したいcommitのハッシュ値をメモ。以下どっちかのコマンドをうつ
$ git reset --soft ハッシュ値 or $ git reset --hard ハッシュ値
※ softとhardの違い
【soft】
ハッシュ値のcommitに状態を戻した時、
◯ 戻されたcommitたちの差分はgit add した状態になる
◯ modify状態になっていたファイルはそのまま
◯ gitの管理下になっていないファイルはそのまま
【hard】
ハッシュ値のcommitに状態を戻した時、
◯ 戻されたcommitたちの差分は消える
◯ modify状態になっていたファイルは消える
◯ gitの管理下になっていないファイルはそのまま
なので注意