基本的なこと
ブランチを切り替えながら作業することになるので、必ず、現在のブランチが表示されるツールで作業します。
コマンドラインであればGit Bash、IDEであればなんでもよいかと思います。
Gitは多機能で複雑ですが、Git flowの概念を理解しておくことで、シンプルに利用できます。
Git flow - https://danielkummer.github.io/git-flow-cheatsheet/index.ja_JP.html
リモートリポジトリ
サーバーで管理する共有リポジトリ(つまりバックアップ対象)ローカルリポジトリ
自分のPCで管理する個人リポジトリ(リモートリポジトリをクローンしたもの)masterブランチ
リリース済みのコードが入ったブランチ(常に動作する)developブランチ
開発中のコードが入ったブランチ(リリースはしていないが常に動作する)
※ developブランチをつくらず、masterブランチだけで運用する場合もあります。feature-(機能番号)ブランチ
修正を行っているブランチ(developブランチからブランチする)release-(リリースバージョン)ブランチ
リリース作業中のブランチ(developブランチからブランチする)hotfix-(障害番号)ブランチ(bugfix-(障害番号)ブランチ)
障害対策のための修正を行うブランチ
ダメなこと
- リポジトリに中間生成物をコミットしてはいけません。(ビルドプロセスに問題が出たり、リポジトリサイズが肥大化するからです)
そのために、.gitignoreファイルに、中間生成物のファイル名、フォルダ名を記載して、コミットされないようにします。
ローカルリポジトリにクローンする
git clone リポジトリ名
ブランチを作成する
基本的にはチケット管理ツールと連動し、チケットからリモートリポジトリのブランチを作成します。
ローカルリポジトリのブランチを切り替える
常にfeature/hotfix/bugfixブランチで作業します。
git fetch origin ブランチ名
git checkout ブランチ名
ここで修正作業を行ないます。
ローカルリポジトリにコミットする
VSCodeなどのIDEで作業します。
ローカルリポジトリのmasterやdevelopにマージする
マージ時にconflictが起きると、conflictを解消するまで、他の操作ができなくなります。
そのため、conflictをすぐに解消しないのであれば、一旦確認する手順を行ないます。
conflictが起きてもすぐ直す場合
git pull origin master
conflictが起きるか確認する場合
git fetch origin master
git merge master --no-commit
ここでコンフリクトが発生するか確認します。
コンフリクトが起きたら解決(修正)します。
問題なければ、
git merge
元に戻したければ、
git merge --abort
リモートリポジトリにpushする
git push origin ブランチ名