0
0

More than 1 year has passed since last update.

Gitのobjectsとmergeについてのメモ

Last updated at Posted at 2023-08-06

./gitの構成

.
├── COMMIT_EDITMSG
├── HEAD
├── config
├── description
├── hooks
├── index
├── info
├── logs
│   ├── HEAD
│   └── refs
│       └── heads
│           ├── master
│           └── test
├── objects
│   ├── 1e
│   │   └── asdfa887932510deeecdfa800000082341743a
.
.
.
│   ├── fa
│   │   └── cad48f0ac69f851bsdb8aefcc81234asba1782
│   ├── a8
│   │   └── 8d8325673948adacefdab7485f0c5b80f01112
│   ├── info
│   └── pack
├── packed-refs
└── refs
    ├── heads
    │   ├── master
    │   └── test
    └── tags

オブジェクトのタイプを見る

$ git cat-file -t faca
tree

オブジェクトの内容を見る

$ git cat-file -p faca
100644 blob 8d8325673948adacefdab7485f0c5b80f01112 memo1.txt

オブジェクトの種類

  • commit コミット情報(日時、著者、コメント)
  • tree すべてのファイル名とその種類
  • blob ファイルの中身

git addするとどうなるか

  • index上ではtreeが作られる
git ls-files --stage
  • blobが作られる

変更管理の仕組み

cat .git/logs/refs/heads/master (masterブランチ)
cat .git/logs/refs/heads/test(testブランチ)
  • コミットはparentのコミットハッシュを持っている(コミットリレー)

マージには2種類ある

  • マージをするときに元のブランチの最後のコミットからブランチを切っていた場合はマージコミットが作られない。Fast Forwardマージと呼ぶ。
  • マージをするときにブランチを切ったコミットより後にコミットが作られていた場合、マージコミットが作られる。Non-Fast Forwardマージと呼ぶ。マージコミットはparentのコミットハッシュを2つ持つ。
0
0
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
0
0