Trong bài viết này, bạn sẽ tìm hiểu Git là gì và dùng để làm gì, tạo repository đầu tiên trên GitHub và thiết lập môi trường làm việc. Chúng ta chủ ý thao tác với Git qua giao diện đồ họa của IDE - cách này trực quan và dễ tiếp cận hơn lúc bắt đầu, bạn không cần ghi nhớ hàng chục lệnh.
Ví dụ và ảnh chụp giao diện sử dụng IDE JetBrains; tên và vị trí các thao tác có thể khác tùy phiên bản. Hãy dùng một repository riêng để thực hành. Với dự án đang làm, hãy tuân theo quy tắc về branch, commit và gửi thay đổi của dự án đó.
Cách tiếp cận này còn có một ý nghĩa khác. Claude Code thực hiện chính những thao tác Git đó ở bên dưới, chỉ là bằng các lệnh trong terminal. Khi nó đề xuất tạo commit, tạo branch hoặc gửi thay đổi, phía sau là các lệnh Git thông thường. Hiểu những gì diễn ra sau các nút trong IDE sẽ giúp bạn nắm được Claude Code đang đề xuất gì, từ đó có thể chủ động kiểm tra và chấp thuận.
Vì sao cần quản lý phiên bản
Khi bắt đầu làm một dự án, bạn có thể nghĩ điều quan trọng nhất là mã chạy được. Nhưng chẳng bao lâu, bạn sẽ nhận ra mã thay đổi thường xuyên hơn là chạy ổn định. Bạn sửa bug, thêm feature, đổi ý, hoàn tác rồi lại thêm thứ khác.
Hãy tưởng tượng bạn đang làm dự án của mình. Mọi thứ vẫn ổn cho đến khi bạn muốn thử nghiệm. Bạn định thay đổi một thứ gì đó nhưng lại sợ làm hỏng phiên bản đang chạy. Làm sao đây? Dĩ nhiên là sao chép dự án. Rồi trên ổ đĩa xuất hiện những kiệt tác như thế này:
MyProject/
├── main.py
├── main_backup.py
├── main_final.py
├── main_final2.py
├── main_really_final.py
├── main_really1_really_final2.pyNghe quen chứ? Giờ hãy tưởng tượng có thêm một người bạn cùng tham gia dự án. Bạn ấy cũng thích sao chép tệp, nhưng theo cách riêng. Làm sao biết đâu là phiên bản mới nhất đang hoạt động? Làm sao biết ai đã thay đổi gì? Nếu thử nghiệm không thành công thì khôi phục thế nào?
Không có lịch sử được lưu lại, bạn phải tự lần mò qua các bản sao của tệp:
- dễ làm mất hoặc nhầm lẫn mã đang dùng;
- không có cách thống nhất để tìm và khôi phục phiên bản đã lưu;
- khó phối hợp làm việc theo nhóm hai hoặc ba người;
- mọi thứ trở nên hỗn loạn, bạn cũng ngại thử nghiệm.

Đó chính là những vấn đề mà các hệ thống quản lý phiên bản như Git giải quyết.
Video - kiến thức cơ bản về Git trong terminal
Video này cung cấp nền tảng vững chắc để làm việc với Git qua terminal, giúp bạn hiểu cơ chế phía sau các nút trong IDE.
Ví dụ trong video dùng Java, nhưng các thao tác Git cơ bản đều giống nhau với mọi ngôn ngữ lập trình.
Mở video về kiến thức cơ bản của Git
Git là gì - các khái niệm cơ bản
Git là hệ thống quản lý phiên bản, được dùng để theo dõi các thay đổi trong mã khi phát triển. Git cho phép lưu nhiều phiên bản tệp và phối hợp công việc của nhiều người trong cùng một dự án.
Repository (hay "repo") là nơi lưu toàn bộ lịch sử dự án: mọi thay đổi và các phiên bản tệp.
Commit là ảnh chụp đã lưu của nội dung dự án được theo dõi, kèm thông điệp, thông tin tác giả và liên kết đến các commit cha. Tệp chưa commit và tệp bị bỏ qua không có trong ảnh chụp này. Nhờ lịch sử, bạn có thể tìm và khôi phục phiên bản đã lưu trước đó.
Mỗi commit là một ảnh chụp của dự án, nối tiếp commit trước đó để tạo thành lịch sử thay đổi theo trình tự.
Branch là tên trỏ đến commit hiện tại trên một nhánh phát triển. Trong các ví dụ, branch chính có tên main; trong repository của bạn, tên có thể khác. Tên này tùy thuộc vào thiết lập và cách tạo repository.
Một branch develop tách ra từ branch chính main để phát triển song song. Khi hoàn tất, các thay đổi từ develop được merge trở lại main.
Các lệnh Git cơ bản - điều gì diễn ra bên dưới
Dưới đây là danh sách các lệnh cơ bản để làm việc với Git qua terminal. Chúng ta sẽ thao tác bằng giao diện đồ họa của IDE, nhưng cũng nên hiểu các lệnh đứng sau những thao tác đó: Git chạy chúng khi bạn nhấn nút, Claude Code cũng vậy khi làm việc với repository của bạn. Hãy xem đây là những gì diễn ra bên dưới.
| Lệnh | Tác dụng |
|---|---|
git init | khởi tạo repository Git mới trong thư mục hiện tại |
git clone | sao chép repository từ URL vào thư mục mới |
git status | hiển thị các tệp đã thay đổi, đã được chuẩn bị và những tệp Git chưa theo dõi |
git add | thêm tệp vào index (staging) để đưa vào commit tiếp theo |
git commit | lưu các thay đổi đã chuẩn bị thành ảnh chụp mới trong lịch sử |
git push | gửi các commit từ repository cục bộ lên repository từ xa |
git pull | tải các thay đổi về và hợp nhất chúng với branch hiện tại theo cấu hình |
git fetch | tải các thay đổi từ server về nhưng chưa merge chúng vào branch của bạn |
git branch | hiển thị, tạo hoặc xóa branch |
git checkout / git switch | switch chuyển branch; checkout còn có thể mở một commit riêng lẻ và khôi phục tệp |
git merge | merge các thay đổi từ branch được chỉ định vào branch hiện tại |
git log | hiển thị lịch sử commit |
git diff | nếu không có flag, so sánh tệp đang làm việc với index; còn các thay đổi đã chuẩn bị thì xem riêng |
git restore | khôi phục các tệp đã chọn; nếu không chỉ định nguồn, tệp làm việc được lấy từ index chứ không nhất thiết từ commit gần nhất |
git reset | thay đổi index hoặc vị trí của branch hiện tại; kết quả phụ thuộc vào cú pháp lệnh và chế độ |
git stash | tạm cất các thay đổi chưa hoàn tất để quay lại sau |
git remote -v | hiển thị các repository từ xa mà dự án đang kết nối |
git config | cấu hình Git, chẳng hạn tên và email của tác giả commit |

Bạn không cần học thuộc cả danh sách - lúc đầu chỉ cần hiểu rằng các thao tác của IDE và của agent đều dựa trên thao tác Git; một thao tác trên giao diện có thể chạy nhiều lệnh. Chẳng hạn, thao tác Commit dùng git commit, còn nút Push tương ứng với git push.
- Tệp đang làm việc
- git add → index
- git commit → lịch sử
- git push → server
Sơ đồ minh họa việc gửi thay đổi: bạn chuẩn bị nội dung bằng add, lưu cục bộ bằng commit rồi gửi các commit bằng push. Theo chiều ngược lại, pull tải các commit từ xa về và hợp nhất chúng với branch hiện tại theo cấu hình.
Đó chính là cơ chế mà Claude Code thực hiện thay bạn. Khi Claude Code nói sẽ tạo commit và gửi thay đổi, phía sau là các lệnh git add, git commit và git push. Bạn có thể xem kết quả trong cùng cửa sổ IDE và kiểm tra lại.
Bốn trạng thái của mã
Khi sử dụng quản lý phiên bản, mã của bạn về mặt logic trải qua bốn trạng thái:
1. Thư mục làm việc (Working Directory). Các tệp dự án trên máy tính mà bạn đang chỉnh sửa.
2. Khu vực staging (Staging Area). Nội dung đã chuẩn bị cho commit tiếp theo. Trong JetBrains, bạn có thể làm việc qua danh sách thay đổi hoặc bật chế độ staging riêng. Các ô đánh dấu trong cửa sổ Commit thông thường chọn nội dung cho commit, nhưng không có nghĩa là nội dung đó đã nằm trong Git index.
3. Repository cục bộ (Local Repository). Bản sao lịch sử mã trên máy tính của bạn. Bạn có thể tạo commit, branch và merge ở đây ngay cả khi không có Internet.
4. Repository từ xa (Remote Repository). Kho mã trung tâm trên các dịch vụ như GitHub, GitLab hoặc Bitbucket. Nơi đây lưu mã an toàn và là nền tảng để làm việc nhóm.
Khi Claude Code đề nghị đưa một tệp mới vào diện theo dõi, nó chuyển tệp từ thư mục làm việc vào staging - bằng lệnh git add. Nội dung được chuẩn bị theo trạng thái của tệp tại thời điểm thêm; nếu chỉnh sửa sau đó, bạn cần chuẩn bị lại. Nếu không cần thêm tệp đó (chẳng hạn đây là tệp tạm), bạn có thể từ chối.
Git và GitHub khác nhau thế nào
Điều quan trọng là phân biệt rõ hai khái niệm này. Git là chương trình chạy cục bộ trên máy tính của bạn (ngay cả khi không có Internet) và theo dõi các phiên bản tệp. GitHub là dịch vụ đám mây (trang web) lưu các bản sao từ xa của repository Git.
GitHub cho phép tạo repository, theo dõi thay đổi và cùng người khác làm việc trên mã. Với một nhà phát triển ngày nay, hồ sơ GitHub là phần quan trọng trong portfolio có thể giới thiệu với nhà tuyển dụng.
Tạo repository đầu tiên trên GitHub

Bước 1. Truy cập https://github.com và đăng ký tài khoản.
Bước 2. Nhấn nút New repository để tạo repository mới.

Bước 3. Thiết lập các tùy chọn cho repository:
- tên repository - chọn một tên dễ hiểu;
- Public hoặc Private - hãy chọn chế độ hiển thị có cân nhắc. Public cho phép mọi người truy cập; Private giới hạn quyền truy cập. Với bài tập cá nhân mà bạn không định công khai, có thể chọn Private.
- Add a README file - với dự án mới chưa có gì, thêm README sẽ tiện. Nếu bạn định gửi lịch sử cục bộ đã có, hãy tạo repository từ xa trống, không có README, để tránh tạo ra hai lịch sử ban đầu độc lập.
- Add .gitignore - chọn mẫu phù hợp với công nghệ của dự án. Danh sách thả xuống có sẵn mẫu cho các ngôn ngữ phổ biến. Việc này quan trọng: quá trình build và package manager tạo ra nhiều tệp tạm và cache không nên làm rối repository; mẫu sẽ giúp Git bỏ qua chúng;
- Choose a license - có thể bỏ qua;
- nhấn
Create repository.

Bước 4. Xong, repository từ xa đầu tiên của bạn đã được tạo.

Cài đặt và cấu hình Git
Phần tiếp theo minh họa giao diện IntelliJ IDEA. Các IDE JetBrains khác cũng có thao tác tương tự, nhưng vị trí nút và tên mục tùy thuộc vào phiên bản. Hãy tìm theo tên thao tác; bạn có thể dùng chức năng tìm kiếm hành động của IDE.
Để làm việc với Git, trước hết cần cài đặt nó. Nếu bạn dùng IDE của JetBrains, nhiều khả năng IDE sẽ tự đề nghị cài Git nếu không tìm thấy trong hệ thống. Cách đơn giản nhất là đồng ý.
Đóng dự án hiện tại bằng File | Close Project. Trên màn hình khởi động (Welcome Screen), nhấn Clone Repository (ở một số phiên bản, nút này có tên Get from VCS).

Nếu muốn tự cài Git, hãy tải xuống từ trang web chính thức: https://git-scm.com/downloads.
Một lưu ý quan trọng
Khi tạo commit đầu tiên, Git cần tên tác giả và email. Đây là thông tin gắn với commit, không phải thông tin đăng nhập tài khoản. Để liên kết với GitHub, hãy dùng địa chỉ đã xác minh trong cài đặt tài khoản hoặc địa chỉ noreply do GitHub cấp nếu bạn không muốn công khai email cá nhân.
GitHub liên kết commit với hồ sơ dựa trên email. Việc địa chỉ trùng khớp chưa đảm bảo commit sẽ xuất hiện trong biểu đồ hoạt động; còn có những điều kiện khác.
Cài gì để Claude Code làm việc trực tiếp với Git và GitHub
Để tạo commit và branch cục bộ, chỉ cần cài Git; không cần đăng nhập GitHub. Muốn thao tác với repository từ xa, hãy thiết lập quyền truy cập. GitHub CLI (gh) là công cụ bổ sung cho PR và các tính năng GitHub khác, không phải thành phần bắt buộc của Git.
1. Git. Cần thiết để làm việc với lịch sử cục bộ. Hãy cài Git qua IDE hoặc tải từ trang web chính thức.
2. GitHub CLI (gh) là tiện ích dòng lệnh chính thức của GitHub. Dùng để làm gì? Thông qua công cụ này, Claude Code có thể tạo pull request, đọc issue và xem trạng thái kiểm tra ngay trong terminal mà không cần chuyển sang trình duyệt. Cách cài đặt tùy thuộc vào hệ điều hành của bạn.
Hướng dẫn cho hệ điều hành của bạn có trên trang chính thức của GitHub CLI. Cài tiện ích rồi kiểm tra bằng lệnh gh --version.
Nếu chọn GitHub CLI, hãy chạy thiết lập quyền truy cập và trả lời các câu hỏi. Với GitHub.com, bạn có thể chọn HTTPS và đăng nhập qua trình duyệt:
# đăng nhập GitHub từ terminal
gh auth loginClaude Code có thể dùng git để thao tác với lịch sử và gh cho các tính năng GitHub. Bạn chỉ cần cài gh và chạy gh auth login nếu chọn cách này để làm việc với GitHub. PR được tạo và commit được gửi theo yêu cầu của bạn, sau khi bạn kiểm tra nội dung sẽ gửi.
main và master
Trong repository có thể gặp các tên main và master. GitHub thường đề xuất main, còn Git khi khởi tạo cục bộ sẽ căn cứ vào phiên bản và cấu hình init.defaultBranch. Hãy kiểm tra tên branch thực tế trong dự án.
Cả hai tên đều chỉ một branch thông thường. Hãy đối chiếu các lệnh trong ví dụ với tên branch thực tế trong repository của bạn.
Cách Git hoạt động cùng Claude Code
Giờ bạn đã nắm các khái niệm cơ bản về Git, việc hiểu những thao tác của Claude Code sẽ dễ hơn. Dưới đây là những gì nó có thể làm thay bạn và điều cần chú ý:
- chạy thay bạn các lệnh
git add,git commit,git pushvà các lệnh khác - chính là những lệnh đứng sau các nút trong IDE; - đề xuất đưa tệp vào diện theo dõi (
git add) - bạn quyết định có cần lưu tệp này trong lịch sử hay không; - đề xuất commit kèm thông điệp soạn sẵn - bạn đọc nội dung sẽ được lưu rồi đồng ý hoặc chỉnh sửa;
- thông qua GitHub CLI, có thể tạo và bình luận trên pull request (PR - đề xuất merge branch vào branch chính), cũng như xem trạng thái kiểm tra.
Trước khi đồng ý, hãy xem những tệp và thay đổi nào sẽ được đưa vào commit. Claude Code hiển thị chúng dưới dạng diff, giống như trong IDE. Đây là điểm kiểm soát của bạn: bạn luôn biết chính xác nội dung nào sẽ vào lịch sử dự án và được gửi lên server.
GO TO FULL VERSION