Bài này là trích một phần nhỏ trên trang git-scm.com.
Trong bài này chúng ta cùng thảo luận đến ba trạng thái của Git, đây là phần rất quan trọng mà bạn cần phải hiểu trước khi tìm hiểu sâu hơn về commit.
Mỗi tập tin trong Git được quản lý dựa trên ba trạng thái đó là committed, modified, và staged. Trong đó:
- Committed có nghĩa là dữ liệu đã được lưu trữ một cách an toàn trong cơ sở dữ liệu, tức là những gì bạn đã commit thành công.
- Staged là bạn đã đánh dấu sẽ commit phiên bản hiện tại của một tập tin đã chỉnh sửa trong lần commit sắp tới. Trạng thái này xảy ra khi bạn sử dụng lệnh
git add <file_name>
nhưng chưa commit. - Modified có nghĩa là bạn đã thay đổi tập tin nhưng chưa commit vào cơ sở dữ liệu, tức là bạn chưa sử dụng lênh git add và git commit.
Như vậy với 3 trạng thái này đã tạo ra ba phần riêng biệt của một dự án có sử dụng Git:
- Khu vực Git (Git directory): Là thư mục lưu trữ siêu dữ liệu (metadata) và cơ sở dữ liệu của dự án, thư mục này sẽ bị ẩn bởi hệ điều hành Windows nên bạn phải bật chức năng hiển thị file ẩn thì mới thấy được. Khu vực này sẽ tiếp nhận và lưu trữ các commit từ stage area.
- Khu vực làm việc (Working directory): Nếu bạn không sử dụng Remote repository thì đây là bản sao của dự án, còn không thì đây là thư muc chính của dự án và branch master chính là bản chính, còn các branch mới tạo là branch bản sao.
- Khu vực tổ chức (staging area): đây là một tập tin đơn giản nằm trong thư mục git, nó sẽ chứa thông tin về trạng thái của một file trong dự án.
Ảnh: git-scm.com
Như vậy nếu bạn thay đổi một file nhưng chưa sử dụng lệnh git add và git commit thì file đó ở trạng thái Modified, còn nếu bạn đã sử dụng lệnh git add thì sẽ ở trạng thái staged, còn đã commit thì sẽ ở trạng thái Committed.
Commited – sửa + add + commit
git checkout task1 git add demo.txt git commit -m "Sua file demo.txt"
Staged – Sửa + add
git checkout task1 git add demo.txt
Modified – Sửa + ko làm gì
git checkout task1