2005年にリーナス・トーバルズよって開発された、分散型バージョン管理システム
note:「分散型バージョン管理」とは、ひとつのソフトウェア開発プロジェクトに対して「リポジトリ」(ファイルの変更履歴とファイルのバックアップを保管するデータベース)を複数設置し、データの同期を定期的に行って統一性を確保する管理手法
note:分散型バージョン管理は、ソフトウェア開発プロジェクトのような、大量のファイルで構成される資料を多人数で編集する状況を想定している
note:サーバー上にインストールされたGitが原本を管理し、各開発者の手元にあるGitは原本の複製を管理する
Git互換のウェブサービス
note:GitHubは、Gitとの互換性を保ちながらGitにはない機能を提供し、2021年現在のオープンソースソフトウェア開発におけるバージョン管理の主流となっている
コミットの対象とするファイルのリスト。未完成のファイルをコミットするミスを防ぐためにある
リモートリポジトリを開発者各自のPCに複製し、ローカルリポジトリとすること
作業ディレクトリ内で行われた変更をローカルリポジトリに記録すること
複数人が同じファイルを変更した結果、どれを正とするか機械的に判断できず、プッシュ/プル/マージが実行できない状態のこと
手作業でコンフリクトを解消すること
バージョン管理の対象として指定されたフォルダ
ローカルリポジトリ内にある特定のブランチに対し、リモートリポジトリ内にある特定のブランチの履歴を追跡するよう設定すること
作業するブランチを切り替えること
(なし)
ローカルリポジトリで新規作成したブランチをリモートリポジトリへプッシュすること
リモートリポジトリに記録された変更を確認すること(反映はしない)
リモートリポジトリを複製して新しいリモートリポジトリをつくること。フォークを実行した者が新しいリモートリポジトリの管理者となる
ローカルリポジトリに記録された変更をリモートリポジトリに反映すること
元の変更履歴タイムラインから分岐した支流のタイムライン
note:ひとつのリポジトリの中では変更履歴はひとつのタイムライン(年表)として表現されるのが基本であるが、Gitではこのタイムラインを分岐させることができる
note:あるブランチに対してコミットを実行して変更を記録しても、他のブランチは変更されない
リモートリポジトリに記録された変更をローカルリポジトリに反映すること
開発者が管理者に対して、自分のローカルリポジトリに記録された変更をリモートリポジトリに反映するよう求めること
複数人で
<1>変更履歴のマージ <2>ブランチのマージ
Gitでは、リポジトリ新規作成時に最初から存在する変更履歴のタイムラインのことをマスターブランチと呼ぶ
note:マスターとブランチの主従関係:運用の都合でマスターブランチを主・その他のブランチを従としているが、本来はすべてのブランチは対等である
(なし)
ファイルの変更履歴とファイルのバックアップを保管するデータベース
ローカルリポジトリ内にあって、リモートリポジトリ内にあるブランチの変更履歴を反映させる受け皿として指定されたブランチ(指定されたからといって必ずしも内容を一致させる必要はない)
管理者がサーバに置くリポジトリ。ひとつのソフトウェア開発プロジェクトに対してひとつのリモートリポジトリを置く
開発者各自のPC内に置くリポジトリ
note:リモートとローカルの主従関係:運用の都合でリモートリポジトリを主・ローカルリポジトリを従としているが、本来はすべてのリポジトリは対等である
(なし)