FresherKỹ thuậtGit
git init làm gì và thư mục .git chứa những gì?
Thử trả lời trước
Đáp án mẫu
git init biến một thư mục thành Git repository bằng cách tạo thư mục ẩn .git. Thư mục này chứa toàn bộ lịch sử và cấu hình; các file bạn sửa chỉ là working tree nằm phía trên. Xóa .git thì project không còn là repository nữa.
Nội dung chính:
HEAD: file cho biết branch hoặc commit nào đang được checkout.objects/: cơ sở dữ liệu các blob, tree, commit và tag.refs/: branch, tag và remote-tracking branch, mỗi cái là một file chứa hash.index: staging area.config: cấu hình cấp repository như remote.hooks/: các script mẫu chạy theo sự kiện như commit.info/exclude: rule ignore cá nhân, không được chia sẻ.
git init -b main
ls .git
cat .git/HEAD # ref: refs/heads/main
-b main đặt tên branch ban đầu. Khi clone một repo, thư mục này cũng được tạo và toàn bộ lịch sử được sao chép vào.
Đừng sửa file trong .git bằng tay nếu không hiểu rõ lý do; hãy dùng lệnh Git.
Ý chính
- git init tạo thư mục ẩn .git
- .git chứa toàn bộ lịch sử, ref và config
- HEAD, objects, refs, index và hooks là các phần chính
- Xóa .git là xóa repository
Câu hỏi nối tiếp thường gặp
- git clone làm thêm gì so với git init?
- Bare repository là gì và vì sao server dùng nó?
Lỗi thường gặp
- Nghĩ rằng lịch sử nằm trong các file làm việc
- Chạy git init nhầm bên trong một repository đã có