Git là gì? Cần cài gì để tải và cập nhật repo AI về máy
Git là phần mềm ghi lịch sử phiên bản. Cách kiểm máy có Git chưa, cài trên Mac, Windows, tải repo AI bằng git clone, cập nhật bằng git pull.

Mục lục
Nếu bạn đang hỏi git là gì, thì đây là phần mềm mã nguồn mở miễn phí ghi lại từng phiên bản của thư mục dự án. Khi cần xem lại một bản thay đổi cũ trên máy là bạn gọi ra được luôn.
Khi vọc công cụ AI, bạn sẽ gặp các repo, tức là kho chứa mã dự án đặt trên một nền tảng lưu repo trên mạng như GitHub. Nhiều công cụ AI không có bộ cài bấm đúp mà phần hướng dẫn README chỉ bảo bạn cài Git rồi gõ git clone.
Ngày 28/10/2026, trợ lý AI của Tuấn đã chạy thử việc clone và pull ngay trong hộp cát trên máy Mac của mình mà không cài thêm gì hay chạy mã của repo AI. Bài này sẽ chỉ bạn cách kiểm tra máy, cài Git, tải repo, cập nhật bản mới và xử lý hai lỗi hay gặp theo đúng bốn bước ở nhánh này nha.

TÓM TẮT NHANH
- Git là gì: Phần mềm mã nguồn mở miễn phí ghi lại lịch sử từng phiên bản của các file trong dự án.
- Kiểm tra máy: Gõ
git --versiontrong cửa sổ dòng lệnh; macOS từ 10.9 chưa có Command Line Tools thì máy tự hỏi cài. - Cài đặt: Mac cài qua Command Line Tools hoặc Homebrew, còn Windows tải bộ cài riêng từ Git for Windows.
- Tải repo: Gõ
git clone <URL>để lấy trọn dự án, hoặc thêm--depth 1khi chỉ cần bản mã mới nhất. - Cập nhật: Vào thư mục repo gõ
git pullđể kéo bản mới về, miễn là bạn đừng tự sửa file bên trong.
1. Git là gì? Phần mềm ghi lại từng phiên bản của thư mục
Theo tài liệu của Git, hệ quản lý phiên bản này theo dõi thay đổi của file theo thời gian để bạn làm trên bản riêng rồi gộp với người khác. Tuấn gọi mỗi lần lưu trạng thái dự án là một phiên bản (commit), và cấu trúc một repo tải về luôn gồm các phần như ở đây.

Mỗi khi tác giả lưu một phiên bản, Git chụp lại toàn bộ trạng thái các file lúc đó và giữ đầu mối trỏ tới bức ảnh chụp ấy. Vì coi dữ liệu là chuỗi bản chụp nên dự án từ nhỏ tới rất lớn đều chạy rất nhanh.
Khi bạn clone, nghĩa là tạo bản sao đầy đủ của repo bằng git clone, máy bạn chép nguyên dự án kèm toàn bộ lịch sử về ổ cứng. Nhờ lịch sử nằm sẵn trong thư mục ẩn .git, việc xem lại các phiên bản cũ chạy thẳng trên máy mà không cần mạng.
Hồi đầu Tuấn cũng bất ngờ vì chỉ tải repo mẫu octocat/Hello-World về hộp cát rồi gõ một lệnh là thấy đủ 3 phiên bản từ ngày đầu:
git log --oneline -5
7fd1a60 Merge pull request #6 from Spaceghost/patch-1
7629413 New line at end of file. --Signed off by Spaceghost
553c207 first commitBa dòng từ 553c207 tới 7fd1a60 cho thấy toàn bộ lịch sử của repo mẫu đi theo thư mục về tận máy bạn luôn.
1.1 Vì sao README của công cụ AI bảo bạn cài Git
Nhiều bạn mới tìm hiểu git là gì hay hỏi Tuấn rằng mình đã mở được GitHub trên trình duyệt rồi thì cài thêm Git làm gì. Thực ra Git là phần mềm quản lý phiên bản trên máy, còn GitHub là nơi cất giữ các dự án Git trên đám mây kèm công cụ làm việc nhóm.
Bạn nhìn vào hướng dẫn cài đặt của Stable Diffusion web UI sẽ thấy tác giả nhắc cài Git ngay trước bước tải repo về máy.

README AUTOMATIC1111/stable-diffusion-webui, chụp 28/10/2026
Trong README của công cụ này, dù có script cài một chạm nhưng tác giả vẫn ghi rõ bạn phải tự cài Python và Git. Phần cài trên Windows ở bước 2 dẫn tới trang cài Git rồi bước 3 bảo chạy git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git, còn phần Linux cũng dặn clone repo về.
Theo tài liệu GitHub, nút Download ZIP chỉ lấy bản chụp các file hiện tại và không cần Git, hợp khi bạn không cần theo dõi phiên bản. Ngược lại, bản ZIP không có lịch sử và không cập nhật bằng git pull được, nên Tuấn thấy cài Git vẫn nhàn hơn.
1.2 Ai làm Git, chữ Git nghĩa là gì, có mất tiền không
Năm 2005, quan hệ giữa cộng đồng làm nhân Linux và công ty sở hữu BitKeeper đổ vỡ nên bản miễn phí bị thu hồi. Cộng đồng Linux mà đứng đầu là Linus Torvalds, người tạo ra Linux, đã tự làm công cụ riêng và khai sinh Git ngay năm 2005.
Trong README của Git, chính Linus Torvalds đặt tên “git” và gọi đùa nó là “the stupid content tracker”.
Ông bảo nghĩa của tên tuỳ tâm trạng: ba chữ cái dễ đọc, tiếng lóng chỉ kẻ ngốc, hay “global information tracker” lúc bạn vui và nó chạy mượt. Vậy nên chữ này không phải từ viết tắt chính thức đâu nha.
Bốn thông tin về tác giả, giấy phép, bản mới nhất và tên gọi nằm gọn trong khung này.

Git phát hành theo giấy phép mã nguồn mở GNU GPL bản 2.0 nên bạn dùng hoàn toàn miễn phí, trên trang chủ cũng không có bảng giá nào. Khi mở trang chủ ngày 28/10/2026, bản mã nguồn mới nhất là 2.56.0 ra ngày 28/09/2026 và con số này sẽ tăng lên khi có đợt phát hành mới.
Còn trên máy Mac chạy lab của Tuấn thì bản đang có là 2.50.1. Kinh nghiệm của Tuấn là bạn không cần bận tâm nếu bản trên máy thấp hơn 2.56.0 vài nấc đâu, cứ có Git là tải repo AI ngon lành rồi.
2. Máy bạn đã có Git chưa? Kiểm bằng một lệnh
Trước khi đi tải bộ cài, bạn hãy mở Terminal, tức là cửa sổ gõ lệnh trên Mac và Windows để kiểm tra xem máy có sẵn Git chưa. Khi bạn gõ lệnh kiểm tra vào đó, máy sẽ trả về một trong hai kết quả như ở đây.

Trợ lý của Tuấn đã gõ lệnh đọc phiên bản ngoài hộp cát trên máy Mac của mình và nhận được kết quả ngay:
git --version
git version 2.50.1 (Apple Git-155)Kết quả thứ nhất là máy in ra số bản như git version 2.50.1 (Apple Git-155), báo hiệu máy đã có Git. Bạn lưu ý là không phải máy Mac nào cũng có sẵn Git đâu nhé.
Máy của Tuấn có sẵn bản Apple này là nhờ trước đó đã cài gói Xcode Command Line Tools, dù mình không nhớ đã cài từ lúc nào.
Kết quả thứ hai là trên macOS từ Mavericks 10.9 trở lên mà chưa có Command Line Tools, lần đầu bạn gõ git --version máy sẽ tự bật hộp hỏi cài luôn. Tuấn rất thích điểm này trên Mac vì người mới khỏi phải tự đi tìm bộ cài.
Với bạn nào rành dòng lệnh muốn xem Git nằm ở đâu, trợ lý của Tuấn gõ thêm which -a git và xcode-select -p thì ra /usr/bin/git cùng thư mục /Library/Developer/CommandLineTools.
3. Tải Git về máy: cài trên Mac và Windows
Nếu máy chưa có Git thì bạn chọn bộ cài theo đúng hệ điều hành mình đang dùng. Riêng trên Linux thì bạn cài luôn qua công cụ quản lý gói có sẵn trên bản Linux đó.
Bạn nhớ nhẹ là các bản đóng gói bên ngoài có thể đi chậm hơn bản mã nguồn 2.56.0 một chút. Tuấn gom các đường cài cho từng máy vào khung này để bạn tiện nhìn trước.

3.1 Cài Git trên Mac
Trên macOS từ 10.9 trở lên, cách dễ nhất là cài Xcode Command Line Tools bằng việc gõ git trong Terminal lần đầu để máy hiện bảng hỏi cài. Bạn có thể xem thêm trên trang cài Git cho macOS, còn trong phòng lab thì máy Tuấn đã có sẵn Git nên trợ lý không cài thêm gì cả.
Ba đường cài đặt trên máy Mac từ gói của Apple cho tới hai công cụ bên thứ ba được chia nhánh như ở đây.

Nếu bạn rành gõ lệnh hoặc đã dùng trình quản lý gói, bạn có thể gọi cài trực tiếp bằng một trong hai lệnh này:
xcode-select --install
brew install gitLệnh đầu cài bản Git do Apple đóng gói trong Command Line Tools, còn lệnh sau cài qua Homebrew khi máy đã có Homebrew, hoặc bạn dùng MacPorts với sudo port install git. Tài liệu lưu ý các bộ cài đóng gói ngoài bản mã nguồn đều do bên thứ ba phụ trách nên đôi khi chậm hơn bản mới nhất.
Tuấn dặn nhẹ là bạn đừng tìm tải bộ cài .dmg cũ của Tim Harper nữa nhé. Bộ cài đó đã dừng ở bản 2.33.0 từ năm 2021 và trang Git cũng bỏ link rồi, nên cài xong bạn cứ gõ git --version kiểm lại là chắc nhất.
3.2 Tải Git cho Windows (Git for Windows, Git Bash)
Tuấn nói rõ trước là mình dùng Mac nên phòng lab chưa thử trên máy Windows, và phần này lấy theo tài liệu mở ngày 28/10/2026. Khi bạn mở trang tải Git for Windows, trang Git sẽ trỏ sang dự án riêng tên là Git for Windows.
Lúc mở trang ngày 28/10/2026, dòng đầu cho tải bản x64 mới nhất 2.56.0(4) ra ngày 26/10/2026, bên dưới có bộ cài riêng cho x64 và ARM64 cùng bản portable. Hai vị trí tải bản x64 và ARM64 nằm ngay ở vùng đánh dấu này.

git-scm.com, chụp 28/10/2026
Bộ cài Git for Windows mang theo sẵn Git Bash, là cửa sổ dòng lệnh giả lập BASH để bạn gõ lệnh Git, kèm cả Git GUI nếu bạn thích giao diện đồ hoạ. Với bạn nào rành dòng lệnh trên Windows thì có thể cài qua winget nhưng cần lưu ý ngay điều kiện đi kèm:
winget install --id Git.Git -e --source wingetCả gói trên winget lẫn gói choco install git của Chocolatey đều không do nhóm làm Git for Windows trực tiếp duy trì nên có thể lệch với bản chính thức. Bởi vậy Tuấn khuyên bạn mới cứ tải bộ cài x64 hoặc ARM64 trên trang chủ về cài rồi mở Git Bash gõ git --version nha.
4. Git clone là gì? Tải nguyên một repo về máy
Lệnh git clone giúp bạn chép một repo trên mạng vào một thư mục mới tạo trên máy, lấy trọn mọi phiên bản của mọi file lúc đó và đặt tên nguồn là origin. Tuấn rất thích lệnh này vì từ lúc lấy link tới lúc có thư mục chỉ mất bốn bước gọn lẹ như ở đây.

4.1 Chép địa chỉ repo rồi gõ git clone
Theo hướng dẫn clone repo của GitHub, bạn chỉ cần làm đúng 3 bước theo thứ tự:
- Chép URL: Trên trang repo, bạn bấm nút Code rồi chép địa chỉ ở thẻ HTTPS.
- Mở Terminal ở thư mục muốn để: Bạn mở Terminal và chuyển tới thư mục trên máy mà bạn muốn lưu dự án.
- Gõ lệnh: Bạn gõ
git clonekèm địa chỉ vừa chép rồi bấm Enter.
Trợ lý của Tuấn đã clone thử repo công khai octocat/Hello-World trong hộp cát mà không cần đăng nhập:
git clone https://github.com/octocat/Hello-World.git
Cloning into 'Hello-World'...Ở một lần đo trên mạng máy lab, lệnh này chạy mất 0,99 giây, tức 0m0.993s, và tạo ra thư mục chứa bốn thành phần như trong khung này.

Khi không ghi tên thư mục ở cuối lệnh thì Git lấy tên Hello-World theo repo nguồn, và chỉ cho clone vào thư mục đã có nếu nó đang rỗng.
Trợ lý đo bằng du -sh .git && ls -la và cat README thì thấy thư mục ẩn .git nặng 128K giữ lịch sử, cạnh file README 13 byte ghi chữ Hello World! ở trong.
Git cũng lưu địa chỉ repo gốc dưới tên origin, tức là repo trên mạng mà bản clone trỏ về. Với bạn nào rành lệnh muốn kiểm tra lịch sử, trạng thái và origin, đây là kết quả nguyên văn trong lab:
git log --oneline -5
7fd1a60 Merge pull request #6 from Spaceghost/patch-1
7629413 New line at end of file. --Signed off by Spaceghost
553c207 first commit
git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
git remote -v
origin https://github.com/octocat/Hello-World.git (fetch)
origin https://github.com/octocat/Hello-World.git (push)Với repo công khai thì bạn tải ngay không cần tài khoản. Qua HTTPS, Git hỏi Username khi gõ sai địa chỉ (mục 6.2) hoặc clone repo riêng tư cần mật khẩu.
Ở ô mật khẩu đó, bạn nhập mã token cá nhân (personal access token) chứ không phải mật khẩu GitHub. Còn cách tạo token Tuấn hẹn ở bài khác nhé.
4.2 Clone một repo công cụ AI thật
Vậy repo AI thật thì nặng bao nhiêu và tải mất bao lâu? Trợ lý của Tuấn chọn repo công khai AUTOMATIC1111/stable-diffusion-webui, có 165.167 sao lúc đọc API 14:49 ngày 28/10/2026 và số sao sẽ đổi.
Ngay trong README của Stable Diffusion web UI cũng bảo tải bằng git clone.
Trên trang repo này, phiên bản mới nhất trên nhánh mặc định master đang đứng ở mã 82a973c như dòng ghi nhận tại đây.

github.com/AUTOMATIC1111/stable-diffusion-webui, chụp 28/10/2026
Trợ lý chạy đúng câu lệnh trích từ README của dự án để kéo toàn bộ lịch sử về hộp cát:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.gitTrong một lần đo trên mạng máy lab, lệnh này mất 13,96 giây, tức 0m13.964s. Thư mục tải về nặng 42M theo du -sh, nhưng riêng thư mục ẩn .git đã chiếm 37M để giữ 7.689 phiên bản từ mốc đầu tiên 71cf18b0 ngày 22/08/2022.
Dù API báo pushed_at năm 2026, phiên bản mới nhất trên nhánh master thực ra đã dừng ở 82a973c0 từ ngày 27/07/2024.
Trong lúc thử nghiệm, phòng lab của Tuấn cũng không hề chạy mã của repo này. Tuấn chỉ lấy nó làm ví dụ đo lệnh clone thôi, chứ không khuyên bạn cài hay chạy dự án đã dừng mã từ tháng 7/2024 đâu nha.
4.3 Chỉ cần bản mới nhất: git clone –depth 1
Thấy 37M lịch sử nằm trong 42M tổng dung lượng, chắc bạn sẽ hỏi có cách nào bỏ qua lịch sử cũ để tải cho nhẹ không. Bạn chỉ cần thêm --depth 1 để tạo bản clone nông, lúc đó Git cắt lịch sử chỉ giữ lại 1 phiên bản gần nhất trên một nhánh.
Hai hàng số đo đặt cạnh nhau cho thấy sự khác biệt rất rõ giữa tải đủ lịch sử và tải nông trong lần thử tại phòng lab.

Trợ lý của Tuấn chạy lại lệnh tải cùng repo AI đó nhưng gắn thêm --depth 1:
git clone --depth 1 https://github.com/AUTOMATIC1111/stable-diffusion-webui.gitỞ một lần đo đó trên mạng máy lab, thời gian tải giảm xuống chỉ còn 1,81 giây, tức 0m1.806s. Cả thư mục lúc này chỉ nặng 6,3M, trong đó .git chiếm 2,0M và giữ đúng 1 phiên bản.
Tính ra ở lần thử này, lệnh tải nhanh hơn khoảng 7,7 lần và nhẹ hơn 6,7 lần. Tất nhiên đây chỉ là số đo một lần, chứ không phải lúc nào cũng cố định gấp 7 lần đâu nhé.
Khi so mã phiên bản mới nhất, cả hai bản đều ra đúng 82a973c0 ngày 27/07/2024. Như vậy bản --depth 1 chứa bộ file mã mới nhất y hệt bản tải đủ, chỉ là không xem lại được các phiên bản cũ.
Từ đó Tuấn suy ra cách này rất hợp khi bạn chỉ cần chạy bản hiện tại của công cụ AI mà không cần quay lại bản cũ.
5. Cập nhật repo đã tải bằng git pull
Khi dự án ra bản mới, theo tài liệu lệnh pull của Git bản 2.50, lệnh git pull lấy thay đổi từ repo gốc về gộp vào nhánh đang đứng. Việc này đi qua bốn bước ở đây.

Bạn chuyển vào thư mục dự án bằng cd rồi gõ git pull như trợ lý của Tuấn đã chạy thử:
cd Hello-World
git pull
Already up to date.Do repo mẫu chưa có bản mới nên máy báo đã khớp như trên. Trong lab cũng chưa có lần pull nào kéo bản mới thật hay gặp xung đột.
Trước đó git status báo nothing to commit, working tree clean, tức là thư mục sạch chưa sửa gì. Khi chỉ tụt sau repo gốc, mặc định Git 2.50 sẽ kéo thẳng lên cho khớp.
Tuy vậy, trước khi gõ lệnh cập nhật bạn cần để ý hai kết quả khác nhau tuỳ vào việc bạn có tự sửa file trong thư mục hay không.

Ở bản 2.50, nếu bạn sửa file chưa lưu mà bản mới kéo về đè đúng chỗ đó, lần gộp sẽ tự huỷ và thư mục giữ nguyên. Tài liệu bản cũ cũng khuyên tránh pull khi còn thay đổi chưa lưu.
Nếu nhánh trên máy và repo gốc đã lệch nhau, bản 2.50 bắt chọn --rebase hoặc --no-rebase. Còn tài liệu bản 2.55 trở lên mặc định chỉ kéo thẳng (--ff-only), nên nhánh lệch là báo hỏng.
Từ đó Tuấn suy ra người chỉ tải về dùng không sửa gì sẽ ít gặp lỗi này. Bởi vậy bạn đừng tự sửa file trong repo nếu còn định git pull nha.
6. Lỗi hay gặp khi clone repo
Lần đầu gõ git clone mà thấy dòng chữ fatal: hiện ra, bạn đừng hoảng nhé. Trợ lý của Tuấn đã tạo lại hai lỗi hay gặp nhất kèm khung tra nhanh ở đây để bạn gỡ ngay.

6.1 Báo “destination path already exists”
Khi trợ lý của Tuấn chạy git clone lần thứ hai vào đúng chỗ đã có sẵn thư mục Hello-World, Git dừng lại với mã thoát 128 và báo nguyên văn câu này:
fatal: destination path 'Hello-World' already exists and is not an empty directory.Nguyên nhân là git clone chỉ cho phép chép vào thư mục đã tồn tại khi thư mục đó rỗng hoàn toàn. Vì thư mục Hello-World từ lần tải trước đã có file bên trong nên Git chặn lại để khỏi làm mất file cũ.
Tuỳ theo mục đích lúc đó mà bạn chọn một trong hai cách xử lý rất gọn. Nếu chỉ muốn lấy bản mới cho công cụ đã tải thì bạn đừng clone lại, cứ vào thư mục cũ rồi gõ git pull.
Còn nếu muốn tạo thêm một bản thứ hai nằm riêng, bạn chỉ cần gõ thêm tên thư mục mới ở cuối lệnh clone là được nhé.
6.2 Gõ sai địa chỉ repo, Git lại hỏi Username
Nhiều bạn tự gõ địa chỉ repo công khai nhưng nhầm một chữ, tưởng Git sẽ báo “không có repo” thì nó lại đứng chờ nhập Username. Hai nhánh xử lý khi tải qua HTTPS ở đây sẽ chỉ rõ vì sao có chuyện lạ đó.

Khi thử một địa chỉ sai trong hộp cát, trợ lý của Tuấn cần tránh việc Terminal đứng chờ người gõ phím. Với bạn nào rành lệnh, trợ lý đã đặt biến GIT_TERMINAL_PROMPT=0 để tắt ô hỏi trên Terminal và nhận về dòng lỗi này:
GIT_TERMINAL_PROMPT=0 git clone https://github.com/octocat/khong-co-repo-nay.git
Cloning into 'khong-co-repo-nay'...
fatal: could not read Username for 'https://github.com': terminal prompts disabledNếu không có biến tắt hỏi kia, Git sẽ hiện dòng đòi Username trên màn hình của bạn. Theo trang lỗi clone của GitHub, lỗi Repository not found xảy ra khi repo không tồn tại hoặc bạn không có quyền xem.
Qua kết nối HTTPS, GitHub gộp chung lỗi “không có” và “không có quyền” vào cùng một kiểu phản hồi. Từ đó Tuấn suy ra chỉ nhìn ô hỏi Username thì chưa biết là bạn gõ sai địa chỉ hay gặp repo riêng tư.
Bởi vậy mẹo của Tuấn là bạn luôn chép và dán URL trực tiếp từ trang repo thay vì tự gõ tay. Còn nếu đó là repo riêng tư thật, bạn cần có quyền xem và nhập mã token cá nhân vào ô mật khẩu khi Git hỏi nha.
7. Ai cần cài Git, ai chưa cần
Khi đã hiểu rõ git là gì, để biết mình có thật sự cần cài ngay không thì bạn chỉ cần đối chiếu nhu cầu với hai cột phân loại này.

- Cần cài: Bạn cần cài Git khi công cụ AI không có bộ cài đóng gói sẵn mà README bảo tải bằng
git clone. Ngoài ra, nếu bạn muốn giữ thư mục lâu dài để thỉnh thoảng gõgit pullkéo bản cập nhật mới về máy thì cài Git rất tiện. - Chưa cần: Bạn chưa cần cài nếu dự án đã có bộ cài bấm đúp là chạy, hoặc bạn chỉ muốn tải một file lẻ hay lấy gói nén ZIP một lần theo các bước tải bộ cài và file nén từ repo. Bạn chỉ cần nhớ bản tải ZIP không có lịch sử phiên bản và không cập nhật bằng
git pullđược thôi.
Những việc như tự lưu phiên bản, chia nhánh hay gửi mã lên mạng là phần việc của người viết code. Còn để tải và cập nhật công cụ AI về máy thì bạn chỉ cần hai lệnh trong bài là đủ dùng rồi.
Hồi mới vọc AI Tuấn cũng từng ngại gõ lệnh, nhưng hiểu git là gì rồi thì chỉ vài giây là kéo xong dự án. Hiện tại repo công cụ AI mà bạn đang định clone về máy là dự án nào?
Nếu lúc gõ lệnh vào Terminal mà bạn vướng dòng báo lỗi nào thì cứ để lại bình luận cho Tuấn biết với nhé?



Nhắn cho Tuấn ở đây nhé