バージョン管理システムにより、変更をサーバー間で双方向にコミット/プッシュ、取得することで、複数の開発者が同じプロジェクトで作業できます。
-
ブランチングにより、開発者はメインの開発ライン(SVNの'トランク'、GITの'マスター')を妨げることなく、コードを隔離し、別々に作業できます。
[Branch] (ブランチ)は、特定の時点(他の環境へのプロモーション用に新しいリリースを準備する場合など)に取得されるプロジェクトのコピーです。コピーは、メインの開発ラインから、別の[Branch] (ブランチ)または[Tag] (タグ)から、取得できます。ブランチは編集可能です。したがって、元のソースから"フォーク"できます。この場合、元のソース(ブランチまたはトランク)とフォークされたブランチ間の調整は手動で行う必要があります。
-
マージングにより、開発者は複数の開発ブランチとその対応するコミット履歴を結合できます。Gitマージングのコンセプトについては、Gitマージのドキュメンテーションを参照してください。
-
開発者はタグ付けにより、開発プロセスにおける特定のリビジョンを重要なものとしてマークできます。タグを使うと、以前の開発段階でジョブのデプロイに使用したものとまったく同じバージョンでエラーを修正することも可能です。
[Tag] (タグ)は[Branch] (ブランチ)と似ていますが、トランク/マスターまたはブランチの読み取り専用のスナップショットです。作成後は編集できません。ただし、タグから新しいブランチ(編集可能)を作成することは可能です。
開発チームには、使用するワークフローを定義することが期待されています。
SVNとGitの違いについては、このGitHubドキュメンテーションの記事を参照してください。
次の図は、SVNのブランチングとタグ付けの一般的なプロセスを示しています。
次の図は、GITのブランチングとタグ付けの一般的なプロセスを示しています。
Gitフローについては、このGitHubビジュアルチュートリアルを参照してください。