MEMO: Git のこと

昔書いたメモが出てきたので、備忘録としてここに書き写します。

ラベル

bugバグ・動作不具合の場合
duplicateすでに他のIssueやプルリクエストと同じ内容の場合
enhancement機能を強化する場合
help wanted解決できない、バグかわからない、助けを求める場合
question質問する場合
invalid間違い、勘違い、実現不可能の場合
wontfix対応しない場合
good first issue最初に取り組むのに良いイシューの場合

コミットするタイミング

プロジェクトチームごとのルールに従う。ルールがない場合はルールを決める。細かい単位でコミットするのが通例。

コマンド

Reset Hard|Mixed|Soft
MixedとSoftは非常に似ている。ステージング前か後かの違い。

Hardファイルの変更の取り消し(作業自体を取り消す)
Mixedステージングの取り消し(作業自体は残したまま、コミットだけを取り消す)
Softコミットの取り消し(作業自体は残したまま、コミットだけを取り消す)
amend直前のコミットには後から内容を追加できる
sqush隣接するコミットをまとめることができる

rebase は margeと似ている。

rebase分かれたことがなかったこととして合流する
複数のコミットがある場合は、間に入り込んで合流する
marge分かれたまま合流する
最新のところで合流する
cherry-pick異なるブランチの特定のコミットだけ反映させる

Git運用のガイドライン

Git Flow

master
└ hotfixes(本番でバグが見つかった場合)
└ release branches
release
develop
└ feature branches

  • masterは、リリースしている状態(本番サーバー)。直接編集はしてはいけない。
  • develop → release → master

    featureブランチは必ずdevelopブランチにしか合流しない

GitHub Flow

master 直接編集しない