Cheat sheet Git
Cập nhật lần cuối
Cài đặt và cấu hình
Cài đặt một lần để commit ghi đúng tên tác giả.
| Lệnh | Tác dụng |
|---|---|
git config --global user.name "Ada" | Đặt tên hiển thị trong commit |
git config --global user.email you@x.com | Đặt email hiển thị trong commit |
git config --list | Xem toàn bộ cấu hình hiện tại |
git config --global init.defaultBranch main | Đặt tên nhánh đầu tiên của repo mới là main |
git config --global core.editor "code --wait" | Đặt trình soạn thảo mặc định |
git --version | In ra phiên bản Git đã cài |
Tạo và clone repository
Tạo repository mới hoặc sao chép một repository có sẵn.
| Lệnh | Tác dụng |
|---|---|
git init | Tạo repo mới trong thư mục hiện tại |
git clone <url> | Sao chép repo từ xa về máy |
git clone <url> mydir | Clone vào thư mục có tên chỉ định |
git clone --depth 1 <url> | Clone nông (chỉ lấy commit mới nhất) |
git clone -b dev <url> | Clone và chuyển sang nhánh dev |
Stage và commit
Ghi thay đổi vào lịch sử dự án.
| Lệnh | Tác dụng |
|---|---|
git add file.txt | Stage một tệp |
git add . | Stage mọi thay đổi trong thư mục hiện tại |
git add -p | Chọn từng đoạn thay đổi để stage |
git commit -m "message" | Commit các thay đổi đã stage |
git commit -am "message" | Stage các tệp đang theo dõi rồi commit |
git commit --amend | Sửa commit gần nhất |
git rm file.txt | Xóa tệp và stage thao tác xóa |
Làm việc với nhánh
Phát triển thay đổi tách biệt khỏi nhánh chính.
| Lệnh | Tác dụng |
|---|---|
git branch | Liệt kê các nhánh cục bộ |
git branch feature | Tạo nhánh mới |
git switch feature | Chuyển sang nhánh có sẵn |
git switch -c feature | Tạo nhánh và chuyển sang ngay |
git checkout feature | Cách chuyển nhánh kiểu cũ |
git branch -d feature | Xóa nhánh đã merge |
git branch -m newname | Đổi tên nhánh hiện tại |
Merge và rebase
Gộp công việc từ hai nhánh.
| Lệnh | Tác dụng |
|---|---|
git merge feature | Merge feature vào nhánh hiện tại |
git merge --no-ff feature | Luôn tạo merge commit |
git rebase main | Áp lại các commit của bạn lên trên main |
git rebase -i HEAD~3 | Chỉnh sửa tương tác 3 commit gần nhất |
git rebase --continue | Tiếp tục sau khi giải quyết xung đột |
git rebase --abort | Hủy rebase đang chạy |
git cherry-pick <hash> | Áp một commit vào nhánh này |
Remote (push, pull, fetch)
Đồng bộ repo trên máy với một remote như GitHub.
| Lệnh | Tác dụng |
|---|---|
git remote -v | Liệt kê các remote đã cấu hình |
git remote add origin <url> | Liên kết remote tên origin |
git fetch | Tải thay đổi từ remote mà không merge |
git pull | Fetch rồi merge nhánh từ remote |
git push | Đẩy commit lên remote |
git push -u origin main | Push và đặt nhánh upstream |
git push origin --delete feature | Xóa nhánh trên remote |
Kiểm tra trạng thái (status, log, diff)
Xem những gì đã thay đổi và đang diễn ra.
| Lệnh | Tác dụng |
|---|---|
git status | Hiện các tệp đã stage, chưa stage và chưa được theo dõi |
git log | Xem lịch sử commit |
git log --oneline --graph | Lịch sử rút gọn kèm sơ đồ nhánh |
git diff | So sánh thay đổi chưa stage với index |
git diff --staged | So sánh thay đổi đã stage với commit gần nhất |
git show <hash> | Xem thay đổi của một commit |
git blame file.txt | Xem ai sửa từng dòng gần nhất |
Hoàn tác thay đổi
Sửa sai một cách an toàn.
| Lệnh | Tác dụng |
|---|---|
git restore file.txt | Bỏ các thay đổi chưa stage của một tệp |
git restore --staged file.txt | Bỏ stage một tệp (giữ thay đổi) |
git reset --soft HEAD~1 | Hoàn tác commit gần nhất, giữ thay đổi ở trạng thái đã stage |
git reset --hard HEAD~1 | Hoàn tác commit gần nhất và bỏ luôn thay đổi |
git revert <hash> | Tạo commit mới để đảo ngược một commit khác |
git stash | Cất tạm thay đổi để dùng sau |
git stash pop | Áp lại stash gần nhất |
Mọi lệnh Git bạn hay dùng, gói gọn trong một trang. Cheat sheet Git này là bảng tra cứu nhanh cho việc quản lý phiên bản hằng ngày: cấu hình Git, stage và commit, tạo nhánh, merge và rebase, đồng bộ với remote, và sửa sai.
Đây là các lệnh Git chuẩn, chạy giống nhau trên Linux, macOS và Windows. Sao chép lệnh bạn cần, hoặc thử ngay trong playground terminal: một shell thật trên trình duyệt, không cần cài đặt gì.
Câu hỏi thường gặp về cheat sheet Git
Cheat sheet Git này có miễn phí không?
Có. Cheat sheet Git này hoàn toàn miễn phí và không cần đăng ký. Lưu trang lại và quay lại bất cứ khi nào bạn cần tra một lệnh để tạo nhánh, commit hay hoàn tác thay đổi.
Merge và rebase khác nhau thế nào?
git merge gộp hai nhánh bằng cách tạo một merge commit mới nối lịch sử của chúng lại, giữ nguyên lịch sử của cả hai. Còn git rebase áp lại từng commit của bạn lên trên một nhánh khác, tạo ra lịch sử thẳng hàng, không có merge commit. Merge an toàn và không làm mất dữ liệu; rebase cho lịch sử gọn hơn nhưng viết lại commit, nên tránh rebase những nhánh người khác đã pull về.Làm sao để hoàn tác một commit trong Git?
git reset --soft HEAD~1 hoàn tác commit gần nhất nhưng giữ thay đổi ở trạng thái đã stage, còn git reset --hard HEAD~1 bỏ hẳn các thay đổi đó. Với commit đã chia sẻ cho người khác, hãy dùng git revert <hash> để tạo một commit mới đảo ngược nó mà không viết lại lịch sử.Có thể luyện tập lệnh Git online không?
Có. Mở playground terminal để chạy lệnh Git trong một shell thật ngay trên trình duyệt, không cần cài đặt gì. Khi muốn học có lộ trình, khóa học Git tương tác miễn phí của Coddy dẫn bạn từng bước từ commit đầu tiên đến tạo nhánh, merge và làm việc với remote.
Cheat sheet này có phù hợp cho người mới bắt đầu không?
Có. Nội dung được sắp xếp từ cài đặt và commit (những thao tác cơ bản hằng ngày) đến rebase và hoàn tác thay đổi, nên ngay ngày đầu bạn đã dùng được các phần trên cùng, rồi dần tiến tới những quy trình nâng cao.