3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitまわりあれこれAdvent Calendar 2024

Day 2

.gitの中身を見てみる2(git add)

Last updated at Posted at 2024-12-02

Gitでバージョン管理されたプロジェクトを扱うと、必ず .git というディレクトリがあります。

このディレクトリを使ってGitがバージョン管理をしているらしい、ということはなんとなく知っています。でも、具体的になにが入っていて、どう管理されているんだろう?

このアドベントカレンダーは、そんな疑問からGitを深堀りしていきます。

.git の中身を見てみる2(git add)

昨日は git init だけしたときの .git ディレクトリの中身を確認しました。

本日は、差分を作ってみます。

ファイルを作るとどうなるか?

まず、作業前後でディレクトリの中身を比較したいので、作業前にディレクトリごとコピーを取ります。

$ cp -pr ../git-study ../git-study-before-create-file # 作業前ディレクトリをコピー(カレントディレクトリは `git-study` 直下)
$ ls -ld ../git-study* # コピー後確認
drwxr-xr-x 1 user group 18 12月  2 22:13 ../git-study
drwxr-xr-x 1 user group  8 12月  1 15:38 ../git-study-before-create-file
$ 

新規ファイルを作成します。

$ ls -l # ファイル作成前確認
合計 0
$ touch a.txt # ファイル作成
$ ls -l # ファイル作成後確認
合計 0
-rw-r--r-- 1 user group 0 12月  2 22:13 a.txt
$ git status # ステータスを確認する
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        a.txt

nothing added to commit but untracked files present (use "git add" to track)
$ 

.git ディレクトリ内を比較してみます。すると、差分はありませんでした。

$ diff .git ../git-study-before-create-file/.git
共通のサブディレクトリー: .git/branches と ../git-study-before-create-file/.git/branches
共通のサブディレクトリー: .git/gitweb と ../git-study-before-create-file/.git/gitweb
共通のサブディレクトリー: .git/hooks と ../git-study-before-create-file/.git/hooks
共通のサブディレクトリー: .git/info と ../git-study-before-create-file/.git/info
共通のサブディレクトリー: .git/objects と ../git-study-before-create-file/.git/objects
共通のサブディレクトリー: .git/refs と ../git-study-before-create-file/.git/refs
$ 

git add するとどうなるか?

では、先ほどを同じように作業前にディレクトリごとコピーを取ります。

$ cp -pr ../git-study ../git-study-before-add # 作業前ディレクトリをコピー(カレントディレクトリは `git-study` 直下)
$ ls -ld ../git-study* # コピー後確認
drwxr-xr-x 1 user group 18 12月  2 22:13 ../git-study
drwxr-xr-x 1 user group 18 12月  2 22:13 ../git-study-before-add
drwxr-xr-x 1 user group  8 12月  1 15:38 ../git-study-before-create-file
$ 

差分になっていた a.txt をGitのインデックスに追加する。

$ git add a.txt # インデックスに差分を追加する
$ git status # ステータスを確認する
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   a.txt

$ 

比較すると差分が発生しました。

$ diff .git ../git-study-before-add/.git
共通のサブディレクトリー: .git/branches と ../git-study-before-add/.git/branches
共通のサブディレクトリー: .git/gitweb と ../git-study-before-add/.git/gitweb
共通のサブディレクトリー: .git/hooks と ../git-study-before-add/.git/hooks
.git のみに存在: index
共通のサブディレクトリー: .git/info と ../git-study-before-add/.git/info
共通のサブディレクトリー: .git/objects と ../git-study-before-add/.git/objects
共通のサブディレクトリー: .git/refs と ../git-study-before-add/.git/refs
$ cat .git/index
DIRCgMf
       `gMf
           `5%EI⛲CK)wZSa.txtsT}ss:YE$ 

ちょっと人がよめないタイプのログが出てきました。

今日はここまで。

参考書籍・参考資料

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?