(1)リポジトリを取得する。
①GitHubから取得する場合はgitコマンド
git clone https://github.com/CTFd/CTFd.git

②Mercurialから取得する場合は、Mercurial(水銀)の元素記号Hgを使う。
hg clone https://~

に更新(または古いバージョンを更新)したときなどに、管理が、わけがわからなくなるときがあります。
だから、システムで管理した方がいいですよね。共通システムで管理をするという意識を持つことと、システムが古いのを更新するとメッセージを出すなどしてサポートしてくれます。

もちろん、ローカルのシステムで管理してもいいですし(ローカルリポジトリ)、クラウド上で管理する場合もあります(リモートリポジトリ)。リモートリポジトリの一例がGithubです。プログラムのソースコードがもともとだと思いますが、いろいろな資料もあります。CTFの問題もおいてあります。
ちなみに、ローカルで管理する場合にもgitコマンドは使えます。

Gitでバージョン管理をすることが増えています。以下にわかりやすい説明あり。
https://qiita.com/kibinag0/items/ec6583e4e7608c4d2add
https://techacademy.jp/magazine/6235

(3)過去問
・過去問では、「セントラルリポジトリから分散リポジトリへのデータのコピーをチェックアウト、分散リポジトリによるセントラルリポジトリのデータの更新をチェックインと呼ぶ(H18AM問10)」

・H27秋SC午前Ⅱ
問22 ソフトウェア開発・保守の工程において,リポジトリを構築する理由として,最も適切なものはどれか。
ア 各工程で検出した不良を管理することが可能になり,ソフトウェアの品質分析が容易になる。
イ 各工程での作業手順を定義することが容易になり,開発・保守時の作業ミスを防止することができる。
ウ 各工程での作業予定と実績を関連付けて管理することが可能になり,作業の進捗管理が容易になる。
エ 各工程での成果物を一元管理することによって,開発保守守作業の効率が良くなり,用語の統一もできる。


→エ