Bảng tổng hợp lệnh Git (Git cheatsheet) là gì?
Git cheatsheet là bảng tham khảo nhanh về cú pháp và mục đích của các lệnh Git. Thay vì đọc một tài liệu dài để nhớ lại cách tạo nhánh, xem thay đổi hay gửi commit, bạn có thể tìm mẫu lệnh tương ứng với nhu cầu đang gặp. Cheatsheet giúp gợi nhớ và lựa chọn lệnh, nhưng không thay thế tài liệu đầy đủ về tùy chọn, điều kiện sử dụng và tác động của từng lệnh.
Theo mã được cung cấp, bảng tra cứu này có 32 mẫu lệnh thuộc 8 nhóm công việc: khởi tạo và cấu hình, trạng thái và theo dõi, nhánh, gộp và so sánh, đồng bộ, hoàn tác, lưu tạm, lịch sử. Mỗi mẫu đi kèm mô tả tiếng Việt và nút sao chép. Danh sách được lọc ngay khi nội dung tìm kiếm thay đổi, giúp thu hẹp những mục cần đọc.
Đầu ra của công cụ là các mẫu lệnh phù hợp và văn bản có thể sao chép, không phải kết quả chạy Git. Trang không đọc repository của bạn, không tạo commit, không chuyển nhánh và không đẩy mã nguồn lên máy chủ bằng chức năng tra cứu này. Muốn thực hiện một thao tác, bạn vẫn phải dùng Git trong môi trường làm việc của mình.
Bảng phù hợp với người mới cần nhận diện lệnh và người đã sử dụng Git nhưng muốn nhớ nhanh cú pháp. Phạm vi của nó là những tác vụ phổ biến có trong danh sách, không phải mọi lệnh hay mọi tình huống Git.
Năm thuật ngữ Git cần hiểu trước khi dùng bảng tra cứu
Repository
Repository là kho quản lý phiên bản của một dự án, chứa lịch sử cùng thông tin Git dùng để theo dõi thay đổi. Khái niệm này không đồng nhất với riêng thư mục chứa các tệp đang làm việc, cũng không phải một tài khoản GitHub. Hiểu repository giúp bạn phân biệt khởi tạo kho mới bằng git init với lấy một kho đã có bằng git clone [url]. Bảng chỉ đưa mẫu cú pháp; nó không tạo hoặc kiểm tra kho ngay trên trang.
Staging Area
Staging Area là vùng chuẩn bị nội dung cho commit tiếp theo, còn gọi là index. Nội dung trong vùng này có thể khác cả tệp hiện tại trong thư mục làm việc lẫn trạng thái ở commit gần nhất. Ví dụ, bạn đưa một tệp vào vùng chuẩn bị rồi tiếp tục sửa tệp đó; phần sửa sau chưa tự động được chuẩn bị. Thuật ngữ này giúp hiểu add và hai dạng diff. Không nên nhầm Staging Area với stash, vốn phục vụ việc cất tạm công việc.
Commit
Commit là bản ghi một trạng thái dự án trong lịch sử Git, gắn với thông điệp và thông tin tác giả. Khi tạo commit theo cách thông thường, nội dung đã chuẩn bị là cơ sở của bản ghi đó; không phải mọi sửa đổi đang có đều được đưa vào. Điểm dễ nhầm là coi commit đồng nghĩa với gửi mã nguồn lên máy chủ. Commit có thể chỉ tồn tại trong kho cục bộ; việc trao đổi với kho khác cần thao tác riêng như push.
Branch
Branch là nhánh phát triển được Git biểu diễn bằng một tham chiếu tới commit. Nhánh giúp tổ chức các hướng làm việc, chẳng hạn phát triển tính năng riêng trong khi vẫn giữ một nhánh ổn định. Tạo nhánh và chuyển sang nhánh là hai hành động khác nhau: có lệnh chỉ tạo, có lệnh kết hợp tạo rồi chuyển. Ngoài ra, nhánh cục bộ không tự đồng nhất với nhánh trên remote. Bảng cung cấp mẫu thao tác, nhưng không biết bạn đang đứng ở nhánh nào.
Remote
Remote là tên tham chiếu đến một repository khác để trao đổi dữ liệu. origin là tên thường gặp, không phải tên bắt buộc và cũng không đồng nghĩa với GitHub hay GitLab. Repository được tham chiếu có thể nằm ở nền tảng hoặc vị trí khác. Khái niệm này cần thiết khi đọc các mẫu fetch, pull và push. Nếu mẫu có origin, bạn phải đối chiếu với remote thực tế của mình; công cụ không kiểm tra địa chỉ, quyền truy cập hay tự thay tên remote.
Đầu vào và kết quả của bảng tra cứu lệnh Git
Nhập gì để tìm một mẫu lệnh?
Đầu vào là văn bản tìm kiếm, không có đơn vị đo và không bắt buộc phải là một câu lệnh Git hợp lệ. Bạn có thể dùng tên lệnh như stash, một cờ như -am, cụm từ trong mô tả tiếng Việt hoặc từ khóa phụ trợ không dấu như xoa nhanh. Mục đích của văn bản này là lọc danh sách, không phải yêu cầu Git thực hiện công việc.
Trong phần mã được cung cấp, không thấy giới hạn độ dài riêng hay bước kiểm tra cú pháp Git cho truy vấn. Tuy vậy, nhập ngắn và cụ thể thường dễ đối chiếu hơn một câu hỏi dài. Công cụ không phân tích nhu cầu bằng ngôn ngữ tự nhiên; những từ bạn nhập cần xuất hiện trong nội dung mà cơ chế tìm kiếm xét đến.
Đọc kết quả và hiểu phần giữ chỗ
Kết quả gồm tên nhóm, mẫu lệnh và mô tả tiếng Việt. Những phần như [file], [branch-name], [message] hoặc [url] là phần giữ chỗ. Bạn phải thay chúng bằng tệp, nhánh, thông điệp hoặc địa chỉ phù hợp trước khi dùng. Đây không phải các ô nhập liệu được công cụ tự điền.
Khi sao chép thành công, nút có phản hồi xác nhận trong 1,2 giây rồi trở về trạng thái trước đó. Xác nhận ấy chỉ cho biết thao tác ghi mẫu lệnh vào clipboard đã hoàn tất, không xác nhận lệnh đúng với dự án. Nếu không mục nào khớp, trang hiển thị thông báo không tìm thấy. Khi truy vấn rỗng, toàn bộ danh sách được khôi phục; không có dữ liệu trạng thái repository nào được trả về.
Cách công cụ tìm và lọc lệnh Git
Tìm chuỗi con, không phải tìm kiếm gần đúng
Cơ chế lọc xét ba nguồn của từng mục: mẫu lệnh, mô tả và từ khóa phụ trợ. Truy vấn và các nội dung này được chuyển thành chữ thường trước khi so sánh. Một mục được giữ lại nếu truy vấn xuất hiện như một chuỗi liên tiếp trong ít nhất một nguồn. Vì vậy, khác biệt giữa chữ hoa và chữ thường không làm thay đổi kết quả.
Đây không phải tìm kiếm gần đúng: công cụ không sửa lỗi chính tả, suy đoán ý định hoặc tự bỏ dấu tiếng Việt. Khả năng tìm không dấu đến từ các cụm phụ trợ đã được thêm sẵn. Một cụm không dấu có thể tìm được lệnh, nhưng điều đó không có nghĩa mọi mô tả đều có thể được tìm bằng phiên bản bỏ dấu.
Truy vấn nhiều từ được xét nguyên cụm, không tách thành các điều kiện độc lập. Khoảng trắng đầu và cuối cũng không tự bị loại bỏ. Ngoài ra, tên nhóm không thuộc phạm vi tìm kiếm; thấy một từ trong tiêu đề nhóm chưa đủ để bảo đảm các lệnh của nhóm sẽ xuất hiện.
Vì sao một nhóm có thể biến mất khỏi kết quả?
Mỗi nhóm chỉ được hiển thị khi còn ít nhất một lệnh phù hợp. Nếu không lệnh nào trong nhóm khớp, nhóm đó bị ẩn khỏi danh sách đang xem. Khi tất cả nhóm đều không còn mục phù hợp, thông báo không có kết quả xuất hiện. Các lệnh được giữ lại vẫn theo thứ tự ban đầu, không được xếp hạng theo độ liên quan.
Cơ chế sao chép tách biệt với cơ chế lọc: nó lấy nguyên văn mẫu lệnh của mục được chọn. Không có bước điền tham số, kiểm tra trạng thái dự án hay thực thi câu lệnh. Do đó, tìm được một mẫu chỉ là tìm được tài liệu tham khảo tương ứng.
Ứng dụng bảng lệnh Git trong công việc hằng ngày
Bắt đầu và ghi nhận thay đổi
Khi bắt đầu dự án, nhóm khởi tạo và cấu hình giúp phân biệt ba nhu cầu: đặt thông tin tác giả, tạo kho mới trong thư mục hiện tại và lấy kho đã có. Cấu hình tên, email không phải thao tác đăng nhập tài khoản lưu trữ. Chọn đúng nhu cầu trước sẽ tránh nhầm giữa chuẩn bị danh tính commit và tạo repository.
Khi chuẩn bị ghi nhận thay đổi, bạn có thể tra nhóm trạng thái và so sánh để kiểm tra nội dung trước, sau đó tìm mẫu đưa nội dung vào vùng chuẩn bị và tạo commit. Giá trị của bảng nằm ở việc nhắc lại cú pháp; quyết định đưa phần nào vào lịch sử vẫn thuộc về người dùng.
Làm việc theo nhánh và trao đổi dữ liệu
Với công việc theo nhánh, bảng hỗ trợ tìm mẫu liệt kê, tạo, chuyển hoặc gộp nhánh. Nhóm đồng bộ phù hợp khi cần nhớ cách lấy dữ liệu từ remote hay gửi commit đi. Tuy nhiên, tên nhánh, remote và quyền truy cập phải được xác định trong môi trường thực tế; một mẫu push không bảo đảm máy chủ sẽ chấp nhận thao tác.
Tạm cất công việc và xem lại lịch sử
Khi cần tạm dừng một việc đang làm, nhóm stash là điểm tra cứu về cất tạm, lấy lại và liệt kê nội dung đã cất. Nhóm log giúp nhớ các dạng xem lịch sử thông thường, rút gọn hoặc có sơ đồ. Nếu mục tiêu là hoàn tác, hãy đọc kỹ tác động của lệnh thay vì chọn chỉ vì mô tả có chữ “xóa” hay “quay về”.
Những cặp lệnh Git dễ nhầm khi tra cứu
diff và diff –staged
Theo kiến thức nền Git, git diff thường trả lời câu hỏi: nội dung đang làm việc khác vùng chuẩn bị ở đâu? Trong khi đó, git diff --staged so sánh nội dung đã chuẩn bị với commit hiện tại. Hai mẫu giúp kiểm tra hai lớp thay đổi khác nhau, nên không thể dùng một kết quả để mặc nhiên kết luận về lớp còn lại.
fetch và pull
git fetch lấy dữ liệu và cập nhật thông tin từ remote mà không tự tích hợp vào nhánh đang làm việc. git pull còn có bước tích hợp sau khi lấy dữ liệu. Dù mô tả trong bảng nhắc đến merge, kiến thức nền Git cần được bổ sung: pull có thể dùng merge hoặc rebase tùy cấu hình và tùy chọn. Trang không kiểm tra cấu hình đó.
Tạo nhánh và chuyển nhánh
git branch [branch-name] tạo nhánh nhưng không chuyển bạn sang nhánh mới. git checkout -b [branch-name] kết hợp hai việc này. Trong các mẫu chuyển nhánh, switch hướng rõ vào nhiệm vụ chuyển nhánh; checkout có phạm vi sử dụng rộng hơn trong Git. Cần phân biệt mục tiêu thao tác, không chỉ chọn theo tên quen thuộc.
reset và revert
reset có nhiều dạng với tác động khác nhau; mẫu bỏ tệp khỏi vùng chuẩn bị không giống mẫu reset --hard. revert tạo commit mới nhằm đảo ngược thay đổi của commit được chỉ định, thay vì đơn giản xóa bản ghi cũ. Cách này thường phù hợp hơn với lịch sử đã chia sẻ, nhưng không an toàn tuyệt đối: vẫn có thể phát sinh xung đột hoặc đảo ngược nội dung không mong muốn.
Ví dụ tìm lệnh Git và diễn giải kết quả
Các tình huống dưới đây là kết quả suy ra từ dữ liệu và logic trong mã, không phải báo cáo đã chạy thử trên trang. Đầu vào đều là chuỗi văn bản; các con số biểu thị số mẫu tra cứu, không phải số tệp hoặc commit trong dự án.
Tìm bằng tiếng Việt không dấu
Giả sử bạn muốn nhớ mẫu xóa nhánh và nhập xoa nhanh. Cụm này xuất hiện liên tiếp trong từ khóa phụ trợ của mẫu git branch -d [branch-name], nên danh sách giữ lại một mẫu trong nhóm nhánh. Các mục khác không chứa cùng cụm trong ba nguồn được xét.
Kết quả không xóa nhánh nào. Trước khi sử dụng bên ngoài trang, bạn cần thay phần giữ chỗ và xem nhánh có đáp ứng điều kiện xóa hay không. Tùy chọn -d không phải lời bảo đảm rằng bất kỳ nhánh nào cũng sẽ bị xóa thành công.
Tìm bằng cờ lệnh và chữ hoa
Với truy vấn -am, dữ liệu hiện có cho một kết quả: git commit -am '[message]'. Đây là cách tìm khi nhớ cờ nhưng quên cú pháp đầy đủ. Theo kiến thức nền Git, tùy chọn này không tự đưa tệp mới chưa được theo dõi vào commit; bạn không nên hiểu mô tả rút gọn là “thêm mọi tệp”.
Nếu nhập DIFF, phép chuyển chữ thường khiến truy vấn được đối chiếu như diff. Hai mẫu xuất hiện là git diff và git diff --staged. Bạn chọn mẫu theo lớp nội dung muốn kiểm tra, như phần so sánh đã phân biệt, thay vì coi hai kết quả là hai cách viết tương đương.
Hiểu đúng tình huống không có kết quả
Truy vấn rebase không khớp mẫu lệnh, mô tả hay từ khóa phụ trợ nào trong danh sách này, nên xuất hiện thông báo không tìm thấy. Điều đó chỉ nói về phạm vi dữ liệu của bảng, không nói rằng Git thiếu thao tác rebase.
Truy vấn commit , với một khoảng trắng ở mỗi đầu, cũng không khớp dữ liệu hiện có vì khoảng trắng được giữ nguyên. Bỏ chúng tạo ra một truy vấn khác. Nếu để ô tìm kiếm rỗng, mọi mục đều khớp: tổng cộng 4 + 5 + 6 + 3 + 4 + 4 + 3 + 3 = 32 mẫu thuộc 8 nhóm, và thông báo không tìm thấy được ẩn.
Giới hạn của cheatsheet và lưu ý trước khi chạy lệnh
Đọc kỹ phạm vi của lệnh thay đổi dữ liệu
Bảng dùng danh sách cố định và mô tả ngắn, nên cần bổ sung kiến thức nền khi đọc các lệnh có tác động lớn. git add . có phạm vi theo thư mục hiện tại và chịu ảnh hưởng của quy tắc bỏ qua, không nên được hiểu là vô điều kiện thêm mọi tệp trong mọi vị trí. Stash mặc định cũng không bao gồm tệp chưa được theo dõi.
git reset --hard và git clean -fd có thể làm mất nội dung khi được thực thi. Reset hard không đồng nghĩa dọn sạch mọi tệp chưa được theo dõi. Clean với các cờ này xử lý tệp, thư mục chưa được theo dõi nhưng không mặc nhiên xóa cả tệp bị bỏ qua. Bảng không đánh giá dữ liệu sắp mất và không cung cấp khả năng phục hồi.
Những điều công cụ không xác nhận
Công cụ không kiểm tra phiên bản Git, trạng thái repository hay mức độ phù hợp của mẫu với công việc hiện tại. Trong mã được cung cấp, chưa thấy chức năng xuất PDF, tạo hình nền, cấu hình riêng cho zsh hoặc kết nối tài khoản GitHub/GitLab. Không thể suy ra những chức năng ấy từ từ khóa.
Sao chép phụ thuộc môi trường và quyền trình duyệt; thông báo lỗi không xác định chính xác nguyên nhân. Đồng thời, chỉ từ các đoạn mã này chưa thể kết luận về lưu dữ liệu, hoạt động theo dõi hay bảo mật của toàn trang.
Câu hỏi thường gặp
Vì sao một số từ khóa tiếng Việt không dấu không tìm được lệnh?
Vì công cụ không tự chuyển mọi nội dung tiếng Việt sang dạng không dấu. Nó tìm nguyên chuỗi bạn nhập trong mẫu lệnh, mô tả và các từ khóa phụ trợ đã có. Một cụm như xoa nhanh được bổ sung sẵn nên có thể khớp, nhưng một cách diễn đạt khác chưa chắc có trong dữ liệu. Khi không thấy kết quả, bạn có thể thử tên lệnh, một cờ hoặc cụm ngắn trong mô tả; không nên coi ô tìm kiếm là nơi hiểu mọi câu hỏi tự nhiên.
Vì sao thêm khoảng trắng vào từ khóa lại có thể làm mất kết quả?
Vì khoảng trắng là một phần của truy vấn và không được tự cắt bỏ. Cơ chế tìm cần toàn bộ chuỗi xuất hiện liên tiếp trong ít nhất một nguồn của từng mục. Thêm dấu cách ở đầu hoặc cuối có thể tạo ra chuỗi không tồn tại, dù từ chính vẫn có trong dữ liệu. Không phải cứ có khoảng trắng là mất kết quả: khoảng trắng nằm đúng trong một cụm có sẵn vẫn có thể khớp. Khi gặp kết quả bất ngờ, hãy kiểm tra cả những ký tự quanh từ khóa.
Nhấn COPY có chạy lệnh Git hoặc tự điền tên nhánh không?
Không. Chức năng COPY chỉ ghi nguyên mẫu lệnh vào clipboard khi trình duyệt cho phép, không chạy Git và không tự thay tên nhánh. Nếu mẫu chứa phần giữ chỗ, phần đó vẫn còn sau khi sao chép. Bạn cần thay bằng thông tin thực tế và kiểm tra ngữ cảnh trước khi dùng trong terminal. Phản hồi “đã copy” chỉ xác nhận thao tác sao chép văn bản; nó không chứng minh câu lệnh hợp lệ với repository, cũng không chứng minh một thao tác Git đã hoàn thành.
Tôi nên làm gì nếu trình duyệt báo không sao chép được?
Bạn có thể chọn và sao chép thủ công phần văn bản của mẫu lệnh, rồi kiểm tra lại nội dung sau khi dán. Tính năng tự động phụ thuộc vào khả năng sử dụng clipboard trong môi trường trình duyệt hiện tại, bao gồm điều kiện và quyền truy cập. Thông báo của bảng là phản hồi chung khi thao tác thất bại, không đủ để kết luận trình duyệt hoàn toàn thiếu hỗ trợ hoặc xác định một nguyên nhân duy nhất. Dù sao chép theo cách nào, phần giữ chỗ vẫn cần được thay trước khi thực thi.
Vì sao tìm rebase không có kết quả?
Vì danh sách được cung cấp không có mẫu, mô tả hay từ khóa phụ trợ chứa rebase. Bảng chỉ bao gồm 32 mẫu lựa chọn, không phải toàn bộ khả năng của Git. Bạn cần tra tài liệu phù hợp nếu muốn tìm hiểu thao tác này, thay vì suy ra rằng Git không hỗ trợ nó. Cũng không nên lấy mẫu merge để thay thế một cách máy móc: cách tổ chức lịch sử của merge và rebase khác nhau, và lựa chọn còn phụ thuộc quy trình làm việc của dự án.
Bảng tra cứu này có chức năng xuất PDF không?
Trong phần mã được cung cấp, chưa thấy chức năng xuất hoặc tải bảng dưới dạng PDF. Những chức năng được xác nhận ở đây là hiển thị danh sách, lọc theo văn bản và sao chép từng mẫu lệnh. Việc có từ khóa liên quan đến “git cheatsheet pdf” trong dữ liệu đầu vào không chứng minh trang có tính năng xuất PDF. Nếu trình duyệt của bạn hỗ trợ in thành PDF thì đó là khả năng của trình duyệt, không phải chức năng xuất riêng đã được xác nhận của bảng này.
commit -am có đưa tệp mới chưa được theo dõi vào commit không?
Không. Theo kiến thức nền Git, commit -am không tự thêm tệp mới chưa được theo dõi; nó hỗ trợ chuẩn bị các thay đổi phù hợp ở những tệp đã được theo dõi rồi tạo commit với thông điệp. Nếu muốn ghi nhận tệp mới, bạn cần đưa tệp đó vào vùng chuẩn bị bằng thao tác thích hợp trước. Vì thế, cách diễn đạt “gộp add và commit” chỉ là mô tả rút gọn, không phải quy tắc bao trùm mọi tệp. Hãy kiểm tra trạng thái và nội dung được chuẩn bị để tránh bỏ sót.


16 bình luận
Huỳnh Quốc Tú
web ngon nha, vua tra git vua thay co bang regex, luu lai dung dan thoi
Dương Hoài Thủy
Có hướng dẫn phân biệt git fetch và git pull không mọi người? Mình vẫn hay nhầm hai lệnh này.
Đỗ Xuân Vinh
Nếu thêm ô tìm kiếm theo nhu cầu như ‘đổi tên nhánh’ hoặc ‘xem lịch sử commit’ thì người mới sẽ dễ dùng hơn.
Vũ Minh Tú
Có bản tải về để xem offline không ạ? Đôi lúc mình làm trên máy không có mạng.
Vũ Đức Hải
Mình thấy JS Benchmark trong danh sách công cụ liên quan. Công cụ đó có dùng để so sánh tốc độ hai đoạn JavaScript được không?
Phan Minh Tú
Ủa công cụ tạo địa chỉ IPv6 ULA dùng trong trường hợp nào vậy mn? Thấy ở mục liên quan nên tò mò chút.
Dương Thanh Quang
Cứ tưởng Git chỉ có add, commit, push thôi, xem bảng này mới thấy còn nhiều thứ cần học ghê.
Phạm Minh Ngọc
Ưng phần Các Công Cụ Tương Tự, từ tra lệnh Git mình tìm được cả công cụ chuyển Docker run sang Docker compose.
Ngô Hoài Tài
Nội dung hữu ích, nhưng mong có thêm mục xử lý các lỗi thường gặp khi push. Mình hay bị từ chối push mà không biết bắt đầu kiểm tra từ đâu.
Hoàng Đức Kiên
Trang nên cảnh báo rõ những lệnh có thể làm mất thay đổi chưa commit, người mới copy chạy nhầm là hơi căng đó.
Hồ Đức Anh
Cho hỏi muốn bỏ thay đổi ở một file nhưng giữ nguyên những file khác thì nên tra lệnh nào vậy?
Đỗ Thanh Vy
Nếu có nút sao chép ngay cạnh từng lệnh thì tiện hơn nhiều, nhất là lúc đang làm việc trong terminal.
Vũ Tiến Tuấn
Mình thích phần giải thích Git cheatsheet là gì, đọc xong mới hiểu bảng này dùng để tra cứu chứ không phải giáo trình học từ đầu.
Vũ Hữu Mai
giao dien de nhin, tim lenh git nhanh, rat hop cho nguoi hay quen nhu minh :))
Dương Minh Hà
Cho mình hỏi mới học Git thì nên đọc phần năm thuật ngữ trước hay xem các lệnh cơ bản luôn ạ?
Lê Tiến Thắng
Bảng tra cứu Git này tiện thật, mỗi lần quên lệnh là mở ra xem, đỡ phải tìm từng câu trên Google.