流れ8の2語目 / 10

リポジトリ

開発
設定ファイルの変更を自分のPCでコミットできたら
「コミットできたら、チームのリポジトリに上げといて」
「リポジトリ」って、何のことだろう…?

リポジトリは、ファイルとその変更の履歴(コミット)をまとめて入れておく場所です。

自分のPCにある「ローカルリポジトリ」と、チームで共有する「リモートリポジトリ」があり、「リポジトリに上げる」は、手元のコミットを共有のほうへ送ることです。

このページで分かること読む 約3分・問題 3問
  • リポジトリは、ファイルとその変更の履歴をまとめて入れておく場所(Gitの保管庫)
  • 自分のPCにある「ローカルリポジトリ」と、チームで共有する「リモートリポジトリ」がある
  • clone=リモートを履歴ごと手元にコピー、push=手元のコミットをリモートへ送る(「上げる」)、pull=リモートの新しい変更を手元に取り込む
  • 上げたものはチーム全員の手元に履歴ごとコピーされる

身近な例えで理解する

本部にはお店のマニュアルの原本があり、各店舗にはその写しがあります。店で見つけた改善は本部に送り、本部で改訂されたら各店の写しも新しくします。

  • 本部の原本リモートリポジトリ
  • 各店舗の写しローカルリポジトリ
  • 新しい店が写しを一式もらうclone
  • 改善を本部に送る/本部の改訂を受け取るpush/pull

ただし、本物のチェーン店では、送った改善案を本部が確かめてから原本を直します。Git の push では、送ったコミットがそのまま共有のほうに入ります。誰かが確かめてから入れるやり方は、次のページのプルリクエストです。

ちょっと確認

Q1並べ替え

チームの共有リポジトリにある設定ファイルを直して、チームに届けるまでの順番に並べてください。

下のカードを、正しい順にタップしてください。

例えを外して、実際のしくみ

ここからは実際のしくみ
リポジトリの中身

ファイルそのものと、コミットの履歴です。手元では、作業しているフォルダの中の .git というフォルダに履歴がしまわれています

ローカルとリモート

コミットはまず手元(ローカル)に記録されます。チームで共有するには、リモートリポジトリに送る必要があります。リモートは、GitHub や GitLab などのサービス(代表例)や社内のサーバーに置きます

clone・push・pull

git clone はリモートを履歴ごと手元にコピーします。git push は手元のコミットをリモートへ送り(「上げる」)、git pull はリモートの新しい変更を手元に取り込みます。コミットしただけでは、ほかの人には届きません

上げたものは全員に届く

pushしたコミットは、チーム全員が履歴ごとコピーできます。アクセスキーやパスワード(→25 アクセスキー・トークン)は、そもそもコードの近くに置かず、決められた保管場所やロールを使います。手元に秘密のファイルがある場合は、上げてしまわないように .gitignore で最初から外しておきます

このページのまとめ

リポジトリ
ファイルと変更の履歴をまとめて入れておく場所
ローカル/リモート
自分のPCのリポジトリ/チームで共有するリポジトリ
clone
リモートを履歴ごと手元にコピーすること
push/pull
手元のコミットを送る(上げる)/リモートの変更を取り込む

先輩のひとことの意味

先輩「コミットできたら、チームのリポジトリに上げといて」

「手元(ローカルリポジトリ)に記録したコミットを、チームで共有しているリモートリポジトリに push して、みんなが見られるようにして」という意味です。

練習問題で確かめる

Q24択

「コミットしたのに、先輩から『リポジトリに上がってないよ』と言われた」いちばんあやしいのは?

Q34択

チームのリモートリポジトリに上げてはいけないものは?

参考資料

ご意見・「これで例えて!」を募集しています

ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。

  • 説明してほしいITの言葉
  • 例えてほしい場面(部活・アルバイト・家事など)
  • 分かりにくかったところ・間違いのご指摘

意見箱は準備中です。

解説・例え・練習問題はすべてオリジナルです。参考にしているのは公式ドキュメントのみです。ご意見・ご感想・間違いのご指摘など、何でもお寄せください。確認してすぐに直します。

LinuCはLPI-Japanの登録商標です。当サイトはLPI-Japanおよび他の企業・団体とは関係ありません。

運営:core