Menu
CoddyTech

Git Checkout

Cập nhật lần cuối

git checkout là lệnh kinh điển để di chuyển trong repository: chuyển nhánh, tạo nhánh với -b, checkout một commit cụ thể hoặc khôi phục một tệp. Vì nó làm quá nhiều việc, các phiên bản Git mới đã tách nhiệm vụ của nó thành git switch (cho nhánh) và git restore (cho tệp). Cả hai cách đều vẫn dùng được.

Thử các lệnh này trong playground terminal: một shell thật ngay trên trình duyệt, không cần cài đặt gì.

git checkout chuyển HEAD từ nhánh này sang nhánh khác và cập nhật working tree cho khớp.

Cú pháp

LệnhTác dụng
git checkout mainChuyển sang một nhánh có sẵn
git checkout -b featureTạo nhánh mới và chuyển sang nhánh đó
git checkout <hash>Checkout một commit cụ thể (detached HEAD)
git checkout -- file.txtBỏ các thay đổi của một tệp (khôi phục tệp)
git checkout main -- file.txtKhôi phục một tệp từ nhánh khác

So sánh checkout, switch và restore

Việc cần làmCách cũ (checkout)Cách hiện đại
Chuyển nhánhgit checkout maingit switch main
Tạo và chuyển nhánhgit checkout -b xgit switch -c x
Bỏ thay đổi của tệpgit checkout -- fgit restore f

Câu hỏi thường gặp về git checkout

git checkout dùng để làm gì?
Lệnh này giúp bạn di chuyển trong repository. Thường dùng nhất là chuyển nhánh (git checkout main), nhưng nó cũng có thể tạo nhánh (-b), checkout một commit cụ thể hoặc khôi phục một tệp về phiên bản trước. Vì làm nhiều việc khác nhau, Git hiện đại đã đưa ra git switch và git restore để tách chúng ra.
git checkout và git switch khác nhau thế nào?
git switch là lệnh mới hơn, chỉ chuyên chuyển nhánh (và tạo nhánh với -c), nên rõ ràng hơn và khó dùng sai hơn. git checkout làm việc đó và còn khôi phục tệp, checkout commit. Khi làm việc với nhánh, git switch main và git checkout main tương đương nhau; dùng cách nào nhóm của bạn quen là được.
Làm sao để checkout một commit cụ thể?
Chạy git checkout <hash>. Lệnh này đưa bạn vào trạng thái "detached HEAD": bạn đang xem commit đó nhưng không đứng trên nhánh nào. Muốn giữ lại công việc làm từ đó, hãy tạo một nhánh: git switch -c newbranch. Để quay lại, checkout một nhánh lần nữa bằng git switch main.
Làm sao để bỏ thay đổi của một tệp bằng checkout?
Chạy git checkout -- file.txt để bỏ đi các thay đổi chưa commit của tệp đó và khôi phục phiên bản đã commit gần nhất. Trong Git hiện đại, lệnh tương đương rõ ràng hơn là git restore file.txt. Cả hai đều xóa chỉnh sửa của bạn, nên chỉ dùng khi chắc chắn không cần chúng nữa.
Có thể luyện tập lệnh này online không?
Có. Mở playground terminal để chạy git checkout trong một shell thật ngay trên trình duyệt, không cần cài đặt gì. Khóa học Git tương tác miễn phí của Coddy cũng hướng dẫn tạo và chuyển nhánh từng bước.
Hình minh họa các ngôn ngữ lập trình của Coddy

Học Git cùng Coddy

Bắt đầu