流れ8の1語目 / 10

Git(バージョン管理)

開発
Webサーバーの設定ファイルを直す前に、日付つきのコピーを作っていたら
「コピーで残すんじゃなくて、Gitで管理して」
「Git(バージョン管理)」って、何のことだろう…?

Gitは、ファイルの変更の履歴を残す道具です。

変更をひと区切りごとに「コミット」として記録し、いつ・誰が・どこを・なぜ変えたかをあとから見られるようにします。このようなしくみを「バージョン管理」といいます。

このページで分かること読む 約3分・問題 2問
  • Gitは、ファイルの変更の履歴を残す道具(バージョン管理システム)
  • 変更をひと区切りごとに「コミット」として記録する
  • 前の状態と見比べたり、前の状態に戻したりできる
  • パスワードやアクセスキーはコミットしない

身近な例えで理解する

家の料理ノートに、作るたびに「10/27 塩を小さじ1→1/2に(しょっぱかったので)」と書き足していきます。前の分量も消さずに残っています。

  • 1回分の書き足しコミット
  • 「しょっぱかったので」という理由コミットメッセージ
  • ノートに並んだ書き足しの記録履歴
  • 前の分量で作り直す前の状態に戻す

「なぜ変えたか」が書いてあるので、あとで読み返したときに迷いません。

ちょっと確認

Q1先輩のひとこと
先輩「設定ファイルをGitで管理しておけば、昨日の変更が原因かすぐ分かるよ」

なぜ?

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

ここからは実際のしくみ
コミット

「ここまでの変更を記録する」操作です。どの変更を次の記録に入れるかを選び(git add)、メッセージをつけて記録します(git commit)。記録した一覧は git log で見られます

日付つきコピーとの違い

コピーを増やす方法では、どれが最新か、どこを変えたかが分かりにくくなります。Gitなら変更点(差分)を行ごとに見比べられ、前の状態にも戻せます

分散型

Gitは、作業する人それぞれの手元に履歴を丸ごと持ちます。ネットワークにつながっていなくても記録や見比べができます(チームで共有する場所は次のページのリポジトリ)

秘密の情報は入れない

パスワードやアクセスキー(→25 アクセスキー・トークン)を一度コミットすると、次のコミットで消しても履歴に残ります。記録しないファイルは .gitignore というファイルに書いて外しておきます。ただし、すでにコミットしたファイルには効きません

このページのまとめ

Git
ファイルの変更の履歴を残す道具(バージョン管理システム)
コミット
ひと区切りの変更を履歴に記録すること。記録した1回分
コミットメッセージ
そのコミットで何を・なぜ変えたかの説明
.gitignore
Gitで記録しないファイルを書いておくファイル

先輩のひとことの意味

先輩「コピーで残すんじゃなくて、Gitで管理して」

「日付つきのコピーを増やすのではなく、変更をGitのコミットとして記録して。そうすれば、いつ・誰が・何を・なぜ変えたかがあとから分かるし、まずいときは前の状態に戻せる」という意味です。

練習問題で確かめる

Q2先輩のひとこと
先輩「もしアクセスキーを書いたファイルをコミットしちゃって、次のコミットで消したとしたら、それで大丈夫だと思う?」

正しい考え方は?

参考資料

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

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

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

意見箱は準備中です。

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

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

運営:core