Trong git, có 3 nơi ta cần nhớ
Working directory là gì?
Working directory hay còn gọi là working tree chính là project bạn đang code, hay đây là folder ở trên máy tính của bạn, có thể là sau khi bạn clone
một repository nào đó trên github (hoặc cái khác cũng được) về, hoặc đơn giản hơn là tạo thư mục rồi gõ git init
ở trong đó. Nói chung là sẽ có folder .git
bên trong.
Mọi thao tác thêm, sửa, xóa file bạn làm trên folder đó là bạn đang thực hiện trên working directory
Staging area là gì?
Staging area hay còn gọi là index, sau khi bạn hoàn tất các thao tác trên file của mình ở working directory, bạn sẽ mong muốn là commit
và push
lên git repository ở remote. Nhưng để đi đến commit thì bạn cần phải thêm các file đã chỉnh sửa vào trong staging area bằng command git add
trước, hay người ta thường gọi là stage các file đó và các file được stage sẽ có trạng thái là staged và ngược lại sẽ là unstaged.
Tóm lại, Staging area chính là nơi lưu trữ các thay đổi trước khi commit
. Khi bạn gõ git add
thì các thay đổi sẽ được lưu tại đây. Những file nằm trong staging area là những file sẽ được commit tới repository nhưng nằm trong working directory thì không
Repository là gì?
- Khi bạn gõ
git commit
thì các thay đổi sẽ được lưu tại đây. - Repository được hiểu đơn giản là nơi chứa tất cả những thông tin cần thiết để duy trì và quản lý các sửa đổi và lịch sử của toàn bộ project.
- Tất cả dữ liệu của Repository đều được chứa trong working directory dưới dạng folder ẩn có tên là
.git
- Repository của Git được phân thành 2 loại là
remote repository
vàlocal repository
.
Remote repository
Remote repository là repository để chia sẻ giữa nhiều người và bố trí trên server chuyên dụng.
Local repository
Local repository là repository bố trí trên máy dev của bạn, dành cho một người dùng sử dụng.
Branch là gì?
- Branch là nhánh của repository.
- Một nhánh tương tự như một không gian làm việc (workspace), dùng để ghi lại lịch sử sửa đổi.
- Các nhánh độc lập với nhau, phát triển tính năng của 1 nhánh sẽ không làm ảnh hưởng đến các nhánh khác.
- Các nhánh có thể hợp nhất lại với nhau. Thao tác này được gọi là
merge
. - Nhánh mặc định là
master
.
Các loại branch
Có 2 loại branch là branch local và branch remote.
Branch local
- Branch local là branch lưu ở local, nó có thể được liên kết với 1 branch ở remote hoặc không
- Hiển thị branch có trên local ta dùng lệnh
git branch
Branch remote
- Branch remote là branch lưu ở remote, Branch này có thể
fetch
về local nhưng không tạo thêm branch ở local. - Để hiển thị branch remote có trên local dùng lệnh
git branch -r
Để biết thêm về các lệnh dùng cho branch, mời xem tiếp bài viết Git branch “không gian làm việc”.
HEAD là gì?
Để biết về HEAD, mời xem tiếp bài viết HEAD “vị trí commit”.