Bảng lệnh Git — Lệnh bạn có thể copy ngay

Mọi lệnh Git bạn dùng hằng ngày, và cả những lệnh cần khi có sự cố, được giải thích trong một dòng. Nhập tên nhánh, remote và tệp một lần, rồi copy các lệnh sẵn sàng chạy.

Cập nhật
Giá trị của bạnMọi ví dụ bên dưới cập nhật khi bạn gõ

Cài đặt & cấu hình

7
git config --global user.name "Ada Lovelace"

Đặt tên tác giả sẽ được ghi trên các commit của bạn.

git config --global user.email "ada@example.com"

Đặt email ghi trên commit — nên dùng email đã liên kết với tài khoản GitHub/GitLab của bạn.

git config --global init.defaultBranch main

Đặt tên cho nhánh đầu tiên của mọi repository mới.

git config --global pull.rebase true

Để git pull rebase các commit local thay vì tạo merge commit.

git config --global core.editor "code --wait"

Dùng VS Code để viết commit message và chạy interactive rebase.

git config --global alias.lg "log --oneline --graph --decorate --all"

Thêm lệnh tắt git lg để xem đồ thị lịch sử gọn gàng.

git config --list --show-origin

Hiển thị mọi cấu hình và tệp chứa nó — hữu ích khi một cấu hình “không hoạt động”.

Tạo repository

6
git init

Biến thư mục hiện tại thành Git repository.

git clone git@github.com:acme/app.git

Tải repository kèm toàn bộ lịch sử.

git clone --depth 1 git@github.com:acme/app.git

Clone nông chỉ lấy commit mới nhất — nhanh hơn nhiều với repository lớn và CI.

git remote add origin git@github.com:acme/app.git

Kết nối repository local với remote.

git remote -v

Liệt kê các remote và URL fetch/push của chúng.

git remote set-url origin git@github.com:acme/app.git

Đổi URL của remote, ví dụ từ HTTPS sang SSH.

Stage & commit

12
git status -sb

Trạng thái ngắn gọn kèm tên nhánh và số commit bạn đang đi trước hoặc chậm hơn remote.

git add src/app.js

Stage một tệp cho commit tiếp theo.

git add -p

Xem lại và stage thay đổi theo từng đoạn — cách tốt nhất để tạo commit gọn, tập trung.

git add -A

Stage tất cả: tệp mới, tệp đã sửa và tệp đã xóa.

git commit -m "Add login form"

Commit các thay đổi đã stage kèm thông điệp.

git commit --amend --no-edit

Thêm thay đổi đã stage vào commit gần nhất và giữ nguyên message. Tránh dùng với commit đã push.

git commit --amend -m "Better message"

Viết lại message của commit gần nhất.

git diff

Xem các thay đổi chưa được stage.

git diff --staged

Xem chính xác commit tiếp theo sẽ chứa gì.

git restore --staged src/app.js

Bỏ stage một tệp nhưng giữ lại chỉnh sửa.

git restore src/app.js

nguy hiểm Bỏ các chỉnh sửa chưa commit của tệp và đưa về trạng thái commit gần nhất.

git rm --cached src/app.js

Ngừng theo dõi một tệp (ví dụ sau khi thêm vào .gitignore) nhưng vẫn giữ trên ổ đĩa.

Nhánh

9
git branch -a

Liệt kê các nhánh local và remote.

git switch -c feature/login

Tạo nhánh mới và chuyển sang nhánh đó.

git switch feature/login

Chuyển sang một nhánh có sẵn.

git switch -

Quay lại nhánh bạn đang làm trước đó.

git branch -m feature/login

Đổi tên nhánh hiện tại.

git branch --merged main

Liệt kê các nhánh đã merge vào nhánh chính — có thể xóa an toàn.

git branch -d feature/login

Xóa một nhánh local đã được merge.

git branch -D feature/login

nguy hiểm Xóa bắt buộc một nhánh local ngay cả khi các commit của nó chưa được merge ở đâu.

git push origin --delete feature/login

nguy hiểm Xóa nhánh trên remote.

Đồng bộ với remote

6
git fetch --all --prune

Tải commit mới và xóa tham chiếu các nhánh remote đã bị xóa.

git pull

Fetch và tích hợp nhánh upstream vào nhánh hiện tại.

git pull --rebase origin main

Áp lại các commit local lên trên main mới nhất.

git push -u origin feature/login

Push nhánh mới và đặt làm upstream, để các lần git push sau không cần tham số.

git push --force-with-lease

nguy hiểm Force-push sau rebase, nhưng sẽ từ chối nếu người khác đã push trong lúc đó. An toàn hơn nhiều so với --force.

git push origin --tags

Push tất cả tag local.

Merge & rebase

10
git merge feature/login

Merge một nhánh khác vào nhánh hiện tại.

git merge --no-ff feature/login

Luôn tạo merge commit để nhánh vẫn hiển thị trong lịch sử.

git merge --squash feature/login

Stage toàn bộ thay đổi của nhánh thành một thay đổi duy nhất, sẵn sàng cho một commit.

git rebase main

Chuyển các commit của nhánh lên trên main mới nhất để có lịch sử tuyến tính.

git rebase -i HEAD~3

nguy hiểm Gộp, sắp xếp lại, sửa message hoặc bỏ N commit gần nhất theo kiểu tương tác. Viết lại lịch sử.

git rebase --continue

Tiếp tục rebase sau khi giải quyết xung đột và stage các tệp.

git rebase --abort

Hủy rebase và quay về trạng thái ban đầu.

git merge --abort

Hủy merge đang có xung đột.

git checkout --theirs src/app.js

Khi xung đột, lấy phiên bản đến của tệp (--ours sẽ giữ phiên bản của bạn).

git cherry-pick a1b2c3d

Áp một commit từ nhánh khác vào nhánh hiện tại.

Hoàn tác & sửa lỗi

9
git reset --soft HEAD~1

Hoàn tác commit gần nhất nhưng giữ thay đổi ở trạng thái đã stage.

git reset HEAD~1

Hoàn tác commit gần nhất và giữ thay đổi như chỉnh sửa chưa stage.

git revert a1b2c3d

Tạo commit mới để hoàn tác một commit cũ — cách an toàn để hoàn tác trên nhánh dùng chung.

git reset --hard HEAD~1

nguy hiểm Xóa commit gần nhất và toàn bộ thay đổi của nó.

git reset --hard origin/main

nguy hiểm Đưa nhánh local khớp hoàn toàn với remote, bỏ các commit và chỉnh sửa local.

git reflog

Liệt kê mọi commit mà HEAD đã trỏ tới gần đây — cách tìm lại commit “bị mất” sau một reset hoặc rebase sai.

git reset --hard HEAD@{1}

nguy hiểm Quay lại vị trí HEAD trước lần reset, rebase hoặc checkout gần nhất.

git clean -nd

Xem trước các tệp và thư mục chưa theo dõi mà git clean sẽ xóa.

git clean -fd

nguy hiểm Xóa tệp và thư mục chưa theo dõi. Hãy chạy bản xem trước -nd trước.

Stash

6
git stash push -m "wip: feature/login"

Cất các thay đổi chưa commit đi kèm nhãn.

git stash -u

Stash cả các tệp chưa theo dõi.

git stash list

Liệt kê tất cả stash.

git stash pop

Áp lại stash gần nhất và xóa khỏi danh sách.

git stash apply stash@{0}

Áp lại stash nhưng giữ trong danh sách.

git stash drop stash@{0}

nguy hiểm Xóa vĩnh viễn một stash.

Lịch sử & kiểm tra

9
git log --oneline --graph --all

Đồ thị gọn của tất cả nhánh.

git log -p -- src/app.js

Lịch sử của một tệp kèm diff của mọi thay đổi.

git log --author="Ada Lovelace" --since="2 weeks ago"

Các commit của một tác giả trong khoảng thời gian nhất định.

git log -S "functionName"

Tìm commit đã thêm hoặc xóa một chuỗi — rất hữu ích khi muốn biết “đoạn này biến mất từ lúc nào?”.

git blame -w src/app.js

Xem ai là người sửa cuối cùng từng dòng, bỏ qua các thay đổi chỉ về khoảng trắng.

git show a1b2c3d

Xem message và diff của một commit.

git diff main...feature/login

Các thay đổi trên nhánh kể từ khi tách khỏi main — đây là những gì pull request sẽ hiển thị.

git shortlog -sn

Số commit của mỗi tác giả.

git bisect start
git bisect bad
git bisect good v1.2.0

Tìm kiếm nhị phân trong lịch sử để tìm commit gây ra lỗi. Đánh dấu từng bước là good hoặc bad, sau đó chạy git bisect reset.

Tag & phát hành

4
git tag -a v1.2.0 -m "Release v1.2.0"

Tạo annotated tag cho một bản phát hành.

git push origin v1.2.0

Push một tag.

git describe --tags --abbrev=0

In ra tag gần nhất.

git tag -d v1.2.0

nguy hiểm Xóa một tag local.

Worktree & tiện ích khác

4
git worktree add ../feature/login feature/login

Checkout nhánh khác vào một thư mục riêng — làm việc trên hai nhánh mà không cần stash.

git worktree list

Liệt kê các worktree đã liên kết.

git submodule update --init --recursive

Fetch và checkout tất cả submodule sau khi clone.

git archive --format=zip -o release.zip HEAD

Xuất cây thư mục hiện tại thành ZIP, không kèm thư mục .git.

Dữ liệu của bạn không bao giờ rời khỏi máy tính. Mọi xử lý diễn ra 100% cục bộ trong trình duyệt của bạn.

Công cụ này có hữu ích không?0.0 0 lượt đánh giá
Mô tả việc bạn muốn làm trong GitCông cụ tạo lệnh Git →

Cách dùng Bảng lệnh Git

  1. Nhập giá trị của bạn (nhánh, remote, tệp, commit) vào các ô ở trên cùng — mọi ví dụ trên trang sẽ cập nhật ngay.
  2. Tìm kiếm hoặc chuyển nhanh đến một mục để tìm lệnh bạn cần.
  3. Nhấn Copy để sao chép một dòng lệnh sẵn sàng chạy, hoặc Copy section để sao chép cả khối lệnh có chú thích.
  4. Các lệnh được đánh dấu nguy hiểm sẽ xóa hoặc ghi đè dữ liệu — hãy đọc ghi chú trước khi chạy.

Quy trình Git trong một phút

Hầu hết công việc đều theo cùng một vòng lặp: tạo nhánh bằng git switch -c, chỉnh sửa, xem lại bằng git diff, stage bằng git add -p, commit, rồi push bằng git push -u. Trước khi mở pull request, hãy cập nhật nhánh bằng git pull --rebase origin main để thay đổi được áp dụng sạch sẽ.

Các lệnh viết lại lịch sử

commit --amend, rebase, reset và push --force thay đổi các commit đã có. Điều này không sao nếu chỉ bạn dùng nhánh đó, nhưng trên nhánh dùng chung nó buộc mọi người khác phải sửa lại bản sao của họ. Trên nhánh dùng chung, hãy hoàn tác bằng git revert, và nếu buộc phải force-push, hãy dùng --force-with-lease.

Không mất gì trong 30 ngày

Ngay cả sau một lệnh reset --hard hoặc rebase sai, công việc đã commit vẫn còn trong repository. git reflog liệt kê những vị trí HEAD đã trỏ tới, nhờ đó bạn có thể quay lại bất kỳ trạng thái gần đây nào. Ngoại lệ là các thay đổi chưa commit — hãy commit hoặc stash thường xuyên.

Tạo lệnh cho các tình huống cụ thể với trình tạo lệnh Git và khởi tạo repository mới với trình tạo .gitignore.

Cũng được tìm dưới tên: lệnh git, danh sách lệnh git, git cheat sheet, hoàn tác commit git, git rebase, git stash, lệnh git có ví dụ.

Các công cụ dùng kèm tốt với Bảng lệnh Git

  • Bảng lệnh Docker — Các lệnh Docker và Docker Compose bạn dùng mỗi tuần, giải thích trong một dòng.
  • Cheat sheet lệnh Linux — Các lệnh Linux và bash mà lập trình viên dùng trên máy chủ và laptop: tệp, tìm kiếm, phân quyền, tiến trình, log, mạng và SSH.
  • Prompt AI cho lập trình viên — Prompt đã kiểm chứng cho những việc lập trình bạn làm hằng ngày — gỡ lỗi, review, viết test, refactor, SQL, commit message và tài liệu.
  • Bảng lệnh PowerShell — Các lệnh PowerShell mà lập trình viên và quản trị viên dùng hằng ngày trên Windows, và trong PowerShell 7 trên macOS và Linux, được giải thích ngắn gọn trong một dòng mỗi lệnh.

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

Sự khác nhau giữa git fetch và git pull là gì?
git fetch tải các commit mới từ remote nhưng không thay đổi nhánh của bạn. git pull thực hiện fetch rồi merge (hoặc rebase) chúng vào nhánh hiện tại.
Làm thế nào để hoàn tác commit gần nhất?
Dùng git reset --soft HEAD~1 để hoàn tác commit và giữ các thay đổi ở trạng thái đã stage. Nếu commit đã được push lên nhánh dùng chung, hãy dùng git revert <commit> để không ai phải viết lại lịch sử của họ.
Nên dùng merge hay rebase?
Rebase nhánh tính năng của bạn lên main để lịch sử tuyến tính và dễ đọc. Dùng merge (hoặc squash-merge) khi đưa công việc đã hoàn thành vào nhánh dùng chung. Không bao giờ rebase các commit mà người khác đã pull.
Làm sao lấy lại commit đã mất sau khi reset?
Chạy git reflog, tìm dòng trước thời điểm reset, rồi chạy git reset --hard HEAD@{n} hoặc tạo nhánh từ hash của commit đó.
Tôi có thể cài Bảng lệnh Git như một ứng dụng web và dùng khi không có mạng không?
Có. Bảng lệnh Git là một ứng dụng web (PWA) có thể cài đặt — cài trực tiếp từ trình duyệt, không cần tải từ cửa hàng ứng dụng. Trên Chrome hoặc Edge (Windows, macOS, Linux, ChromeOS) hoặc Android, bấm Cài đặt ứng dụng ở đầu trang này; trên iPhone và iPad, dùng Chia sẻ → Thêm vào Màn hình chính; trên Mac, dùng File → Add to Dock trong Safari 17 trở lên. Sau đó ứng dụng mở trong cửa sổ riêng với biểu tượng riêng, và vì chạy hoàn toàn trên trình duyệt nên vẫn hoạt động khi không có mạng. Firefox trên máy tính không thể cài ứng dụng web. Cách cài đặt hoạt động thế nào.

Công cụ liên quan