Git 運用における注意点
1. ブランチの運用と【git checkout
】の注意点
-
背景:
Gitでは【git checkout
】などのコマンドを使ってブランチを切り替えたり新しいブランチを作成します。チームでCI/CD(継続的インテグレーション/継続的デリバリー)を実施している場合、Gitリポジトリの状態がそのまま自動デプロイに影響するため、誤ったブランチで作業すると予期せぬ本番反映などの大きなトラブルにつながる可能性があります。 -
具体的な注意点:
-
作業用のブランチを必ず新たに作成する:
直接master(またはmain)ブランチで作業を開始すると、CI/CDが即座に反応してしまうリスクがあります。新しい機能や修正は必ず個別のブランチ(例:feature/○○
、bugfix/○○
など)で行い、十分なテストが終わった段階でmasterに統合するのが望ましいです。 -
他のチームメンバーへの影響を避ける:
誤ったブランチ操作で本番環境に影響を与えないよう、作業開始前に必ず現在のブランチ状況を確認し、意図したブランチ上で作業することが大切です。
-
作業用のブランチを必ず新たに作成する:
2. force pushの禁止(特にmasterブランチで)
-
背景:
git push --force
(force push)はリモートリポジトリの履歴を書き換えるコマンドです。これにより、他のメンバーのコミット内容が失われたり、全体の履歴が混乱する危険があります。特に、デプロイ対象となるmasterブランチに対してforce pushを行うと、本番環境に不整合なコードが反映されるリスクが高まります。 -
具体的な注意点:
-
履歴の上書きリスク:
force pushは一度プッシュされたコミット履歴を強制的に書き換えるため、他のメンバーの作業や修正が上書きされ、後で原因究明やロールバックが困難になります。 -
自動デプロイとの連動:
masterブランチが自動デプロイのトリガーになっている場合、force pushにより意図しない変更が本番環境に反映される恐れがあります。 -
代替策:
必要な場合にのみforce pushを行うならば、一時的なブランチで試すか、保護ブランチの設定を有効にして誤操作を防ぐようにしましょう。
-
履歴の上書きリスク:
3. リポジトリに機密情報(APIキー、パスワード、認証情報など)を直接コミットしない
-
背景:
機密情報がGitリポジトリに含まれてしまうと、そのリポジトリへのアクセス権を持つ全員が情報を閲覧でき、万が一リポジトリが漏洩した場合にはセキュリティリスクが非常に高まります。特に自動デプロイや連携サービスが多い場合、不正アクセスやサービス停止などの大事故に繋がる可能性があります。 -
具体的な注意点:
-
外部公開リスク:
プライベートリポジトリであっても、万が一アクセス権の管理に問題があると、情報が外部に流出する恐れがあります。 -
安全な管理方法:
機密情報はGitHub ActionsのSecrets機能、AWS Secrets Manager、環境変数など専用の仕組みを利用して管理し、コードベースには含めないようにしましょう。 -
コミット後の対策:
もし誤って機密情報をコミットしてしまった場合は、速やかにコミット履歴から削除するツール(例:BFG Repo-Cleaner)を使い、パスワードの再発行などの対応が必要です。
-
外部公開リスク: