クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

Git で作業を記録する

このレッスンのあとで: 作業をコミットとして保存し、その履歴を確認できる。

45分のレッスンコマンドなし

「最終版_本当に最終.xlsx」

自動車部品メーカーの事務所で、共有フォルダを開きました。「見積書最終.xlsx」「見積書最終2.xlsx」「見積書_本当に最終.xlsx」が並んでいます。

どれが正しいのか、誰が何を変えたのか、誰にもわかりません。

ソフトウェアの現場では、この問題を Git という道具で防いでいます。

このレッスンのゴール

メモ

作業をコミットとして保存し、その履歴を確認できる。

キーワード

ことばいみれい
リポジトリファイルと変更の履歴をまとめて保管する場所
コミットある時点の変更を、説明付きで記録したもの
ステージング次のコミットに入れる変更を選ぶことgit add
ログこれまでのコミットの一覧git log
差分前と今の違いgit diff
ブランチ本線から分かれた作業の流れ

学生が入力するセルは、このプレビューでは空白です。

コミットは変更の記録

Git では、フォルダをリポジトリにして使います。git init がその最初の一歩です。

ファイルを変えたら、git add で記録したい変更を選びます。これがステージングです。

次に git commit -m "説明" で記録します。説明には、何を変えたかを短く書きます。

コミットには、それぞれ 3f2a91c のような番号が付きます。

例: 最初のコミット

コード: bash
$ git init
Initialized empty Git repository in /home/tanaka/estimate/.git/

$ git add estimate.txt
$ git commit -m "見積書の初版を追加"
[main (root-commit) 3f2a91c] 見積書の初版を追加
 1 file changed, 4 insertions(+)

$ git status
On branch main
nothing to commit, working tree clean

log と diff で履歴を読む

git log --oneline は、コミットを新しい順に一行ずつ表示します。一番上が最新です。

git diff は、まだコミットしていない変更を表示します。- で始まる行は消えた行、+ で始まる行は増えた行です。

これで、誰がいつ何を変えたかを後から追えます。

例: 見積書の履歴と差分

コード: bash
$ git log --oneline
8c1d4e7 (HEAD -> main) 部品Bの単価を修正
5b07a22 納期を11月15日に変更
3f2a91c 見積書の初版を追加

$ git diff
--- a/estimate.txt
+++ b/estimate.txt
@@ -2,3 +2,3 @@
 部品A 100個 単価 450円
-部品B 50個 単価 1200円
+部品B 50個 単価 1150円
 納期 11月15日

よくある誤解

注意

コミットすれば、チームのサーバーに自動で送られる、と思われがちです。コミットは自分のパソコンのリポジトリに記録するだけです。共有するには、別に git push を実行します。

ブランチは作業の分かれ道

main は、本番に使う本線のブランチです。

新しい作業は、main から分けたブランチで進めます。途中の作業が main を壊さないようにするためです。

作業が終わって確認がすんだら、ブランチを main に合流させます。これをマージと言います。

採用担当者が期待すること

ヒント

開発、運用、データのどの仕事でも、Git は毎日使います。入社初日から、変更をコミットし、説明をわかりやすく書けることが期待されます。

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。