(調べがちの)たまーに必要な Git コマンド
git の使い方って結構しらべませんか?僕は、開発してると数日に一回は調べてる気がします。
たまーに欲しくなるコマンドを列挙してみました。まだ間違いはあるかもしれないのですが、自分のメモ代わりに。
ブランチ
ブランチ名の変更
ローカル | 可能 | git branch -m current-name new-name |
リモート | 直接は不可(一度削除して、pushし直す) | git push origin :current-name , git push -u origin new-name |
ローカルは、reflogもケアしてくれる仕組みのようです。
リモートは変更不可ということなので、チームメンバーとの事前共有は必須ですね。
参考:
リモート ブランチ
リモート ブランチ一覧 | git branch -a |
リモート ブランチの削除情報を取得 | git fetch -p |
リモートブランチが削除された情報は、 git fetch -p しないと反映されないので、けっこう戸惑いました。
参考:
マージ
取り消し系 (1)
マージの取り消し(コミット前) | git reset --hard HEAD |
git resetの取り消し | git reflog , git reset --hard HEAD@{num} |
参考:
タグ
tag を リモートへ/から
リモートへ、一つだけ反映 | git push origin v0.9 |
リモートへ、全てのタグを反映 | git push origin --tags |
リモートのタグを削除 | git push origin :v0.9 OR git push --delete origin v0.9 |
参考:
その他
Git の理解
触り始めてしばらくして?になったのは git pull / fetch の使い分けですね。一度、思わぬ状態を招いてからは、fetchを基本的に使ってから pull するかどうかを判断するようにしています。
このあたりを理解する時に必要だったのは Gitのリモートブランチと追跡ブランチは違うよ にある追跡ブランチの概念でした。
- ローカルブランチ
- 追跡ブランチ
- リモートブランチ
それにくわえて、git status で表示される 情報の読み取りですね。ここをちゃんと読むようになって、自分が作業しているブランチの状態がはっきりとわかるようになりました。
参考:
感想
しかし、Git はすごい仕組みですね。作った人もメンテナーも賢いし、使いこなしてる人もかしこ過ぎです。
これからも、うまくフォローしていければと思った次第です。