GIT#
分区#
- 工作区
コンピュータで見えるディレクトリ
- ステージングエリア
git add
を実行すると、変更されたファイルがステージングエリアに追加されます。
- リポジトリ
git commit
を実行すると、ステージングエリアのファイルがリポジトリにコミットされます。
git 分区図#
#
基本操作#
ファイル操作#
- git add
xxxxxx.java
/folder
- git commit
-m
-v
- git stash
pop
- git reset
head
--hard
git stash/pop#
変更を一時的に保存し、復元するために使用されます。ブランチをまたいで使用できます
注:add する前に stash を実行することができます!(つまり、ステージングエリアに追加されていない場合)
commit message の規則#
- feat (module):新機能(feature)。
- fix:バグ修正、QA が見つけたバグまたは開発者が見つけたバグの修正。
- docs:ドキュメント(documentation)。
- style:スタイル(コードの実行に影響を与えない変更)。
- refactor:リファクタリング(新機能の追加やバグ修正ではないコードの変更)。
- perf:パフォーマンスの最適化、エクスペリエンスの向上など。
- test:テストの追加。
- chore:ビルドプロセスや補助ツールの変更。
- revert:前のバージョンに戻す。
- merge:コードのマージ(コンフリクトの修正など)。
commit message の規則#
基本操作#
ブランチ操作#
- git checkout
-b
branch
- git merge
branch
- git rebase
branch
- git pull
remote
branch
- git push
remote
branch
merge の衝突#
<<<<<<< HEAD:index.html
<div id="footer">contact : [email protected]</div>
=======
<div id="footer">
please contact us at [email protected]
</div>
>>>>>>> iss53:index.html
git merge --abort
#
merge の特徴#
利点#
- 簡単に使用できる
- 各ステップの記録を保持する
- 元のブランチの記録を保持する
欠点#
- 各ステップの記録を保持する
rebase#
merge と同様にブランチをマージする主な機能ですが、いくつかの異なる詳細があります。
特定のブランチにコミットされたすべての変更を別のブランチに移動することができます。
rebase#
ブランチexperiment
でgit rebase master
を実行し、変更をC3
にリベースします。
rebase と merge の違い#
1. 使用の難しさ
merge は rebase よりも理解しやすいです。
2. Git 操作履歴の記録結果が異なる
merge はすべてのマージ操作を記録しますが、rebase は直列のコミット記録のみを保持します。
merge 後の履歴#
過多なマージ記録#
rebase 後の履歴#
分岐協力#
Git Work Flow#
Git Work Flow#
カテゴリ#
- Git Flow
- GitHub Flow
- GitLab Flow
Git Flow#
Git ブランチ機能を基にした協力モデル
ブランチの種類#
- Master 最新のリリース可能なバージョン
- Dev 最新の開発進捗
- Realease プレリリースブランチ
- HotFix 緊急のバグ修正ブランチ
- Feature モジュール開発ブランチ
一般的な手順#
- master から dev ブランチを作成します。
- dev から各 feature ブランチを作成し、feature 上で開発を行います。
- 開発が完了した feature は dev にマージされます。
- ある段階の機能開発が完了したら、テストなどのプレリリースのためにリリースブランチが作成されます。
- プレリリース中に見つかった問題は、リリースで修正され、修正が dev にマージされます。6、リリーステストが合格したら、master にマージされます。また、master にバージョン記録が
tag
されます。 - 期間中にオンラインでバグが発生した場合、緊急の問題を解決するために master から hotfix ブランチが作成され、master と dev にマージされます。[特殊]
#
Github Flow#
Git Flow にfork
、Pull Request
を追加したもの