1.はじめに
本記事は実務を行う上でGit初心者だった自分が忘れたときに思考の整理やcommandを見返すメモ帳のようなものです。
2.[master]ブランチと[origin/master]の違い
⭕️ [master]ブランチ
→(特に設定いじらなければ)ローカルブランチの中心。他のローカルブランチの枝は最終的に
[master]ブランチに導かれる
⭕️[origin/master]ブランチ
→ローカルにある[master]とリモート(一般的にGithubサイト)と繋がっているのが
[origin/master]ブランチ。リモートの情報に紐づいている。
→個人だけでgit管理する場合、リモートと[origin/master]は同じだと考えてよいと思う。
→逆に複数人で管理する場合はいつ時点のリモートファイルと同期された[origin/master]か
確認しないとわからないので、別物と考えた方がよい
→基本ローカルの[master]ブランチでcommitし変更を保存後、リモート環境に変更内容を保存するため、
pushし、[origin/master]ブランチに反映させる。
→個人で使ってある程度git管理ができるようになってから、この記事をみるとorigin/masterが
なぜ存在するのか、どういった時に効力を発揮するのかわかりやすく書いてある
参考記事
・【ざっくり分かるGit】originとorigin/masterとmasterの違い
https://qiita.com/kikuchiTakuya/items/196e59f7a4e3d2a75e20
3.各gitコマンドでよく使うオプション等まとめ
git addのtips
⭕️更新したファイルのgit addをする際、
commit前にちゃんと想定通りに更新ができたか確認したい場合
git add -p .
git branchのtips関連
⭕️ローカルブランチ名を変更する
git branch -m [古いブランチ名] [新しいブランチ名]
※なお、今いるローカルブランチ名を変えたいのならgit branch -m [新しいブランチ名]だけでOK
⭕️自分のいるブランチを確認
+ローカルブランチと[origin/hogehoge](いわゆるリモート追跡ブランチ)の一覧を表示させる
git branch -a
※自分の場合はgbでalias登録してます
git chekoutのtips関連
⭕️リモート追跡ブランチと同じ名前でローカルブランチを作成し、最新情報を引っ張ってくる + 当該ローカルブランチにcheckout
git checkout -t origin/[ブランチ名]
⭕️今いるローカルブランチをコピペする+コピペした当該ローカルブランチにcheckoutする
git checkout -b [好きなブランチ名]
git cherry-pickのtips関連
⭕️他ブランチの特定のコミットだけを今のローカルブランチに取り込みたい場合
git cherry-pick [欲しいコミットのID]
git commitのtips関連
⭕git add .した後で、コメントも1行で済ましたい場合
git commit -m "コメント"
⭕ファイルの更新をするのみでコメントも1行で済ましたい場合(新規ファイルがない場合)
git commit -am "コメント"
git diffのtips関連
⭕️色付きでgit 差分を見る
git diff --color-words [最新のcommit ID] [一個前のcommit ID]
⭕️色付きで最新のコミットの内容の内容をdiffで見せてくれる(よく使っている)
git diff HEAD^ --color-words
⭕️変更があったファイル名とそのステータスをみせてくれる
git diff HEAD^ --name-only
⭕️変更があったファイル名と変更量がざっくりとわかる
git diff HEAD^ --stat
git fetchのtips関連
⭕️すでにmerge等されていて削除されたリモート追跡ブランチを自動的に判別して削除してくれる
git fetch --prune
【git fetch/ git merge/ git pull関連】
⭕️リモートにあるファイルからリモートと繋がっている
[origin/master](いわゆるリモート追跡ブランチ)にデータを引っ張ってくる
git fetch origin master
※git remote -vでpullとfetch対象のリモートレポジトリを確認できる
⭕️[origin/master]の内容とローカルにある[master]ブランチとの差分を確認する
(個人開発の場合は基本不要)
git diff origin/master
⭕️[origin/master](いわゆるリモート追跡ブランチ)からローカルにある[master]ブランチに取り込む
git merge origin/master
⭕️いったん追跡ブランチで確認とかいらないから一気にローカルの[master]ブランチに取り込みたい場合
git pull origin master
⭕️他のブランチもあってとにかくローカルにリモートブランチの情報を一気に取り込みたい
(個人ならいいがよくわかってない状態でこれをやるのはリスキー)
git pull
git logのtips関連
⭕️commit logの直近10個分までonelineで表示する
git log --oneline -n 10
⭕️指定したファイルにかかる変更だけ表示してくれる
git log --color-words -p [ファイル名]
⭕️編集者単位で
git log --authors='hogehoge'
⭕️マージコミットを覗く
git log --no-merges
git mergeのtips関連
⭕️merge済みのローカルブランチを削除したい場合
git merge -d [ブランチ名]
※mergeしてる、してないに関わらずローカルブランチを削除したい場合は -Dを-dの代わりにつける
git pullのtips関連
⭕️現在いるブランチにかかるリモートブランチの情報だけローカルブランチに持ってきたい 且つ 逐一ブランチ名指定するのが面倒な場合
git pull origin $(git rev-parse --abbrev-ref HEAD)
→.bashrc等のaliasかgit config --global aliasとかに入れると便利。自分はgitと打つのもめんどいのでgpで上記のコマンドで打てるようにしている
※$(git rev-parse --abbrev-ref HEAD) の解説
git rev-parse はgitが内部で管理しているパラーメータ情報を取得するためのコマンド
例 git rev-parse master
7e4657bb5187ce2958e627fc9611f4473eb5dfxx
--abbrev-ref HEADは現在いるブランチ名を取得できる。
つまり現在いるブランチ名を表す内部パラメーターをprev-parseで表示できる
⭕️特定のリモートブランチから特定のローカルブランチ単体にだけgit pullする
git pull origin [指定リモートブランチ]:[指定ローカルブランチ]
git pushのtips関連
⭕対象ブランチを[origin/hogehoge](いわゆるリモート追跡ブランチ)にpushしたいが
正しいリモート追跡ブランチ宛にpushできているかdry runする
git branch -a
→現在いるローカルブランチおよびpushしたいリモート追跡ブランチ名を確認
git push origin [指定したブランチ] -n
→dry-run。正しくpushできていそうか確認。-nの代わりに--dry-runでもOK
git push origin [指定したブランチ]
→本番push実施
git status
→現在の状態を確認。
「your branch is up to date with 'origin/[指定したブランチ]'」と出ればOK
git stashのtips関連
⭕️ローカルブランチで編集中のファイルがあって、
addやcommitしたくないがbranchを切り替えなきゃいけない場合
git stash -u
→untracked fileも含めて編集中ファイルを退避できる
⭕️一時退避したファイルをもとに戻したい場合
git stash list
→一時退避中のファイルを戻すために使うstash@[数字]を取得
git stash apply stash@[数字]
→一時退避したファイルを通常通りの状態にする(=git stash -uする前の状態にする)