Git運用ルール
基本
コミットメッセージ
- 英語で書く
- 変更したファイル名はコミットで見えるので、いらない
- どんな変更かを説明する
- プロジェクトでプレフィクスのルールを決めるのも良い
Issueの運用
- できたissueどうする (クローズか、誰かにassign戻す、プロジェクトによって違うので前に聞くこと)
ブランチの運用
全ての変更はブランチで実装してください。
ブランチ名
- ブランチ名は全て小文字
- ワードは - で繋ぐ
- ブランチ名でやったことがわかるような名前使ってください
- ブランチのパターンは <変更種類>/<変更点>。
- 例: feature/task-one-gitignore-and-readme
ブランチ戦略
サービス開発課では主にGitFlowをベースにした方法を採用しています。
機能開発/通常のバグ修正
devからfeature/xxxブランチを切るfeature/xxxに修正を入れ、devにプルリクエスト- レビュー後にマージ
本番リリース
devからmasterにプルリクエスト- レビュー後にマージ
hotfix
masterからhotfix/xxxxというブランチを切るhotfix/xxxxからdevにプルリクhotfix/xxxxからmasterにプルリク
- GitHubを使っているならDraftのプルリクにしておくと良い
hotfix/xxxxからdevにマージhotfix/xxxxからmasterへマージ
マージ
- conflictは変更がなくならないように気をつけること
- マージコミットのconflictの場合 、マージコミットにconflictしたファイルをコミットメッセージに記録すること
gitignore
- 自動生成のファイルやエディターのファイルやosのファイルはignore設定をし、リポジトリに追加しない
- 参考情報
- .gitignoreファイルは gitignore.io で自動的に生成できる
- 言語別
.gitignoreのrepo github/gitignore
Default gitignore
$HOME/.config/git/ignore
がデフォルトのignoreなので
Users/hogehoge/.config 配下に mkdir git を実行して vi ignore
に以下文を入力しておくと捗ります。
参考までに以下はterraformとDS.storeをGitでは追従しない設定となっております。
# Local .terraform directories
**/.terraform/*
# .tfstate files
*.tfstate
*.tfstate.*
# .tfvars files
*.tfvars
# .DS_Store files
.DS_Store
git tips
- ルークよ git push --force を使わないでおくれ… git push --force-with-lease を使っておくれ…
- どうしても
git push --forceが必要な場面があったとして、git push --force-with-leaseを使えないか検討しましょう、という内容です
- どうしても