HocTotGit.io

Git cơ bản (Fundamentals)
  • Version Control là gì?
  • Git là gì?
  • Cài đặt và cấu hình Git
  • Quiz
  • Thuật ngữ cốt lõi
  • Tạo repository
  • Theo dõi file
  • Quy trình commit
  • Quiz
  • Kiểm tra log
  • Hủy thay đổi
  • Cập nhật commit
  • Quiz
  • Lý thuyết về nhánh
  • Tạo và chuyển nhánh
  • Merge nhánh
  • Giải quyết merge conflict
  • Quiz
Liên kết
Blog
Hỗ trợ

Email: work.lamsun@gmail.com

Yêu thích nền tảng

Hãy chia sẻ ý kiến của bạn

HocTotGit.io

© 2026 HocTotGit.

Thuật ngữ cốt lõi

Trong bài này, chúng ta sẽ tổng hợp những khái niệm nền tảng quan trọng nhất khi làm việc với Git. Hiểu rõ các thuật ngữ này sẽ giúp bạn học các phần tiếp theo dễ dàng hơn và tránh bị "lạc trôi" giữa vô số lệnh Git.

Lưu ý!
Hãy cố gắng làm quen với các thuật ngữ trong Git bằng tiếng Anh để hiểu đúng bản chất và mở rộng khả năng tiếp cận tài liệu.

1. Ba khu vực quan trọng trong Git

Khi làm dự án phần mềm, trong thư mục dự án có thể chứa code, file cấu hình, hình ảnh, tài liệu,... Khi bạn "bật" Git cho thư mục này, Git sẽ quản lý toàn bộ thay đổi trong thư mục đó. Vậy tất cả hoạt động này diễn ra như thế nào?

Sau khi yêu cầu Git bắt đầu theo dõi dự án, đằng sau hậu trường, Git sẽ phân đoạn dự án thành ba vùng chính: Working Directory, Staging Area, và Repository.

Git Areas
Ảnh minh họa: Các khu vực của Git

1.1. Working Directory (Thư mục làm việc)

Đây là những file thực tế trên máy mà bạn mở bằng VS Code, tạo mới, sửa, xoá chúng mỗi ngày. Nếu không dùng Git, bạn chỉ biết đến thư mục này mà thôi. Mọi thay đổi "thô" (chưa nói cho Git biết) đều diễn ra tại đây.

Bạn có thể hình dung Working Directory là bàn làm việc nơi bạn đang bày hết giấy tờ, tài liệu ra để chỉnh sửa.

1.2. Staging Area (Khu vực tạm / khu vực chuẩn bị)

Đây là nơi Git lưu thông tin về những thay đổi nào sẽ được đưa vào lần commit tiếp theo.

Hãy tưởng tượng đây là một cái hộp carton. Bạn chọn các file đã sửa từ "bàn làm việc" và bỏ vào hộp này. Đây là bước chuẩn bị trước khi "đóng gói" chính thức.

1.3. Repository (Kho Git / thư mục .git)

Repository là cơ sở dữ liệu của Git, lưu lại:

  • Toàn bộ lịch sử các snapshot.
  • Thông tin về branch, tag, metadata khác.

Về mặt kỹ thuật, repository được chứa trong một thư mục ẩn tên là .git nằm ở gốc dự án của bạn.

Mỗi khi bạn commit, Git sẽ tạo một snapshot mới và lưu vĩnh viễn trong repository này. Tương ứng với việc bạn dán băng keo đóng kín cái hộp carton lại và cất vào kho.

Git Areas Example
Ảnh minh họa: Ví dụ về các khu vực của Git

2. Trạng thái của file trong Git

Song song với 3 khu vực trên, Git còn có khái niệm trạng thái của từng file. Một file đã được Git quản lý (tracked file) luôn nằm trong một trong 3 trạng thái sau: Committed, Modified, Staged.

2.1. Committed

Một file ở trạng thái committed nghĩa là phiên bản hiện tại của nó đã được lưu vĩnh viễn trong repository (bằng một commit trước đó). Từ sau lần commit đó đến hiện tại, file chưa bị thay đổi trong Working Directory.

2.2. Modified

File đã bị chỉnh sửa (thêm/xoá/sửa nội dung) so với phiên bản gần nhất mà Git đã lưu trong repository. Những file này đang nằm trong Working Directory và chưa được báo cho Git là chuẩn bị lưu trong commit tiếp theo.

2.3. Staged

File đã được sửa (modified) được đánh dấu để chuẩn bị cho commit tiếp theo. Lý do cần trạng thái staged là vì không phải lúc nào bạn cũng muốn tất cả file đã sửa được đưa vào cùng một commit. Staging cho phép bạn chọn lọc, nhóm nhiều thay đổi có liên quan vào cùng một commit gọn gàng, dễ hiểu.

File States
Ảnh minh họa: Ví dụ về các trạng thái của file

Hãy phân tích ví dụ trên: Trong Working directory, các file B, C và F đang ở trạng thái modified. Sau đó, file B và C được chọn để đưa vào lần commit tiếp theo và chuyển vào Staging area, lúc này trạng thái của chúng sẽ là staged. Khi thực hiện commit, Git sẽ lưu snapshot của các file B và C vào repository và đánh dấu chúng là committed. Các file A, D và E trong Working tree vẫn ở trạng thái committed vì chúng đã được lưu snapshot trước đó và hiện chưa bị sửa đổi.


3. Commit là gì?

3.1. Định nghĩa commit

Commit là thuật ngữ chính thức của Git dành cho snapshot. Khi chuyển các file từ staging area vào repository, các file này được ghi nhận là committed – nghĩa là chúng đã được “chốt” lại trong lịch sử dự án tại một thời điểm xác định.

Git không chỉ lưu từng phiên bản file, mà còn nhóm các thay đổi này theo từng lần commit. Tất cả các file được commit cùng lúc sẽ được đóng gói chung vào một container gọi là commit. Nhờ vậy, Git không chỉ quản lý lịch sử tất cả phiên bản file mà còn theo dõi toàn bộ các commit bạn đã thực hiện.

3.2. Vai trò của commit

Commit cực kỳ hữu ích để quản lý nhiều thay đổi có liên quan với nhau. Trên thực tế, việc gom nhiều thay đổi về cùng một commit giúp dễ dàng theo dõi tiến trình phát triển dự án.

Thường thì mỗi commit nên đại diện cho một bước phát triển đơn lẻ, ví dụ: hoàn thiện một tính năng, sửa một lỗi, hoặc cải tiến (refactor) mã nguồn – nhờ đó lịch sử dự án rõ ràng, dễ hiểu và dễ hoàn tác khi cần thiết.

3.3. Chuỗi commit và Git tree

Các commit xây dựng dựa trên nhau một cách tuyến tính: commit sau liên kết với commit liền trước để tạo thành một chuỗi, hay còn gọi là lịch sử commit. Tập hợp này thường được gọi là Git tree. Khi dự án phát triển, chuỗi commit dài ra; nếu bạn tách nhánh (branch) để phát triển song song nhiều tính năng, các chuỗi commit sẽ phát triển thành các nhánh nhỏ hơn mọc ra từ “thân cây chính”.

Git Tree
Ảnh minh họa: Git tree

Tổng kết

Trong bài này, bạn đã nắm được các thuật ngữ cốt lõi:

  • 3 khu vực của một Git project: Working Directory, Staging Area, Repository.
  • 3 trạng thái của file: Committed, Modified, Staged, và cách chúng thay đổi khi bạn edit → add → commit.
  • Commit: là snapshot của dự án tại một thời điểm, dùng để theo dõi lịch sử và phát triển của code.

Hiểu vững những khái niệm này sẽ giúp bạn dễ dàng hơn rất nhiều khi bắt đầu chạy các lệnh Git thực tế trong những bài học tiếp theo.

Tiếp theo: Tạo repository