Repo là gì? Giải thích Git repository cho người đi làm

6 tháng 10, 2026 13 phút đọc
Repo là gì? Giải thích Git repository cho người đi làm

Repo là chỗ giữ việc và lịch sử việc

Repo là gì? Định nghĩa trong 30 giây

Repo (viết tắt của repository) là nơi lưu cả bộ file của một dự án và lịch sử các lần thay đổi đã được chốt. Với Git, repo thường là một folder có thêm dữ liệu ẩn .git: Git dùng dữ liệu này để biết file nào đã đổi, ai chốt thay đổi và có thể quay lại một mốc cũ.

Repo không đồng nghĩa với GitHub. Git là công cụ quản lý lịch sử; repo là dự án mà Git theo dõi; GitHub hoặc GitLab là nơi có thể lưu một bản repo trên máy chủ để cùng làm việc. Một repo có thể chỉ ở máy bạn, ở máy chủ, hoặc có cả hai bản.

Cách nhớ cho người đi làm: folder là bàn làm việc; repo là bàn đó kèm hồ sơ các phiên bản. Bạn sửa file trên bàn, còn Git chỉ lưu một mốc khi có commit. Vì thế, file chưa commit vẫn có thể mất nếu bị xóa hoặc ghi đè.

Repo là cách nói tắt của repository. Nghĩa gốc là kho. Trong công việc với phần mềm, repo là một folder được giữ lịch sử: file nào đổi, ai đổi, lúc nào, đổi vì sao.

Một folder báo cáo trên máy tính chưa phải repo. Nó thành repo khi có một sổ mốc đi kèm. Mỗi mốc là một lần chốt. Mở lại mốc nào thấy đúng bộ file lúc đó. Không cần nhớ mình đã sửa tờ nào.

Người làm phần mềm dùng repo cho code. Người không viết code vẫn đụng cùng thứ đó mỗi khi một dự án nằm trên GitHub, GitLab, hoặc khi một agent nói “tôi đã commit”. Không cần gõ lệnh mới hiểu được nó đang giữ gì.

Folder thường Báo giá.docx Hợp đồng.pdf Sửa đè, bản cũ mất Repo Cùng những file đó Cộng một sổ mốc Xóa vẫn lấy lại được
Hình 1. Repo không phải loại file mới. Nó là folder cộng sổ ghi từng lần chốt.

Từ này từ đâu

Repository vào tiếng Anh khoảng giữa thế kỷ 15, từ Latin repositorium, chỗ cất, chỗ đặt lại. Động từ gốc reponere: re- là lại, ponere là đặt. Cùng họ với deposit. Nghĩa đời thường là kho: thư viện, chỗ giữ đồ. Từ điển dùng nghĩa này rất lâu trước khi có máy tính.

Sang phần mềm, repository là chỗ giữ một bộ tài liệu và thường kèm lịch sử. Các hệ quản lý phiên bản trước git, như CVS và Subversion, đã gọi kho mã là repository. Git ra năm 2005, giữ nguyên từ cho folder có sổ commit. Chỗ trên GitHub cũng là một repository, chỉ nằm ở máy khác.

Repo là dạng rút trong miệng, cùng kiểu info hay config. Văn bản chính thức vẫn viết repository. Trong câu “đọc repo này” nghĩa là đọc kho đó, không phải một phần mềm riêng tên repo.

Khác folder thường

Folder là chỗ để file. Repo là folder được git theo dõi.

Folder thườngRepo
Bên trongFile và thư mục conCùng vậy, thêm thư mục ẩn .git
Sửa rồi lưuĐè lên bản cũBản trên bàn đổi. Sổ chỉ đổi khi chốt mốc
Xóa nhầmMất, trừ khi có thùng rácLấy lại được nếu đã chốt
Làm song songPhải copy cả folderCó nhánh, nhập lại khi xong
Máy hỏngMất theo máyCòn nếu đã đẩy lên tủ chung

Dấu hiệu nhận ra: trong folder có .git. Máy thường giấu thư mục này. Copy folder đi mà bỏ .git thì bên kia chỉ còn đống file, hết lịch sử. File chỉ dẫn kiểu CLAUDE.md vẫn đọc được trong folder thường. Nó chỉ thành một phần việc bền khi folder đó là repo và thay đổi được chốt.

Git theo dõi nghĩa là sao

Git không ngồi nhìn từng phím. Nó ghi mốc khi có người, hoặc agent, bảo chốt.

Hình dung folder là hồ sơ trên bàn. Git là tủ cạnh bàn. Sửa thoải mái trên bàn, tủ chưa biết. Đến lúc nói “chốt”, git ghi một dòng: lúc nào, ai, câu vì sao, và nội dung hồ sơ lúc đó. Mười lần chốt thì sổ có mười dòng. Hỏi “từ hôm qua khác gì”, nó chỉ ra đúng dòng thêm và dòng xóa, không cần đọc lại cả file.

Chưa chốt mà xóa thì git cũng không cứu. Theo dõi không có nghĩa là tự động backup từng giây. Mốc do người hoặc agent tạo.

Git không chép cả folder mỗi lần chốt. Nó ghi phần đổi, nên sổ dài mà không nặng bằng việc nhân bản thủ công. Người đi làm không cần biết nó nén thế nào. Cần biết: chưa có mốc thì chưa được giữ.

1. Sửa trên bàn Git chưa ghi 2. Chọn file giữ Không phải file rác 3. Chốt mốc Có câu vì sao
Hình 2. Sửa chưa phải là được theo dõi. Chốt mốc mới vào sổ.

Vài thao tác, dịch sang việc văn phòng

  • Commit. Chốt một mốc. Giống đóng phiên bản “báo giá đã gửi khách, 6/10”.
  • Branch. Một đường làm riêng, không đè bản đang dùng. Giống photo hợp đồng ra bản nháp, bản gốc vẫn nằm ngăn chính.
  • Remote. Tủ thứ hai, thường trên GitHub, GitLab, hoặc máy công ty. Push là bê sổ mốc lên tủ đó.
  • Clone. Lấy cả tủ về máy mình, đủ lịch sử.
  • Fork. Sao cả dự án sang chỗ của mình để sửa riêng, không đụng bản gốc của người khác.
  • Pull request. Đề nghị nhập sửa của mình vào đường chính. Người khác xem khác gì rồi mới nhận.

Những từ này là thao tác trên cùng một repo, không phải loại kho khác nhau.

Nằm ở đâu

Hay có hai bản cùng lúc, đôi khi ba.

Trên máy đang làm. Folder bạn mở. Agent coding cũng sửa ở đây. Máy tắt không sao, vì file còn trên đĩa. Xóa folder hoặc máy hỏng thì bản này mất, nếu chưa đẩy đi.

Trên máy chủ git. GitHub, GitLab, Bitbucket, hoặc git nội bộ. Bản dùng chung. Máy cá nhân hỏng, clone lại vẫn còn. Quyền đẩy lên nên hẹp: đúng repo, đúng nhánh, không phải cả công ty.

Chỗ khác, nếu việc không phải file code. CRM, Drive, Notion giữ trạng thái cho agent chăm sóc khách. Vai trò giống repo: còn sau khi cuộc hội thoại tắt. Khác ở chỗ thường không có sổ từng dòng đổi, trừ khi tự làm lớp đó.

Vì sao agent cần repo

Model không có chỗ cất việc. Mỗi lần gọi là một lượt quên hết. Hết cửa sổ hội thoại là mất. Repo là nơi việc đang dở còn lại.

Bốn việc cụ thể:

  • File sống ngoài đầu model: tài liệu, luật, file tiến độ. Phiên sau đọc sổ và làm tiếp, không cần người dán lại từ đầu.
  • Kiểm được. Mốc cho biết agent đã đổi gì. Sai thì quay lại, không cần tin lời nó kể.
  • Giới hạn chỗ được ghi. Harness có thể chỉ cho sửa trong repo này, và chỉ coi là xong khi test qua rồi mới chốt.
  • Người xem diff thay vì đọc một đoạn tóm tắt.

Việc một bước, hỏi xong là xong, không cần repo. Cần khi việc dài hơn một phiên, có file phải giữ, hoặc phải biết ai đã sửa gì.

Agent nói “tôi nhớ rồi” là chưa đủ. Nhớ thật là đã có mốc trong repo, hoặc một bản ghi ở hệ thống khác. Không có mốc thì phiên sau bắt đầu từ trắng.

Chỗ hay nhầm

Repo trong tài chính là repurchase agreement, hợp đồng mua bán lại trên thị trường tiền. Repossession là thu hồi tài sản. Cùng họ chữ Latin, khác ngành. Trong việc với agent và file, repo gần như luôn là kho git.

Repo cũng không phải harness. Harness là chương trình đang chạy: vòng lặp, tool, quyền. Repo là nơi chứa code của chương trình đó, file luật, và lịch sử sửa. Sửa một file markdown rồi chốt là ghi cấu hình vào repo. Viết vòng lặp rồi chốt là đưa chính chương trình vào repo.

Và repo không tự chạy. Nó chỉ giữ. Muốn agent làm việc phải có chương trình mở repo đó, đọc file, và được phép ghi. Kho không có người hoặc agent mở ra thì chỉ là tủ đóng.

Câu hỏi thường gặp về repo

Repo khác Git như thế nào?

Git là hệ thống quản lý phiên bản; repo là bộ file và lịch sử mà Git quản lý. Có thể nói “dùng Git trong một repo”, nhưng không nên dùng hai từ này như một.

Repo có phải GitHub không?

Không. GitHub là dịch vụ lưu trữ và cộng tác trên repo. Bạn có thể có repo Git chỉ ở máy cá nhân, hoặc dùng GitLab, Bitbucket hay máy chủ nội bộ thay GitHub.

Khi nào một folder trở thành repo?

Khi nó được Git khởi tạo hoặc sao chép từ một repo có sẵn. Dấu hiệu thường gặp là thư mục ẩn .git, nơi Git lưu thông tin lịch sử và cấu hình của repo.

Người không viết code có cần hiểu repo không?

Có, nếu làm cùng đội sản phẩm hoặc AI agent. Repo giúp xem phần nào đã đổi, khôi phục một bản đã chốt và tách phần đang thử nghiệm khỏi bản đang dùng.

Nguồn kiểm chứng và đọc tiếp

  • GitHub Docs: About Git — giải thích repository là tập hợp file, folder và lịch sử phiên bản của dự án.
  • Git User Manual — mô tả repo Git, working tree, .git, commit và branch.

Một câu để giữ

Folder là bàn làm việc. Repo là bàn đó cộng tủ hồ sơ. Git theo dõi nghĩa là ghi mốc khi được bảo chốt, không phải nhìn từng phím. Agent cần tủ đó vì đầu nó không giữ được việc qua ngày hôm sau.

Khóa học AI Agent thực chiến dành cho người đi làm Khóa học AI Agent thực chiến dành cho người đi làm