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ì.
Cú pháp
| Lệnh | Tác dụng |
|---|---|
git checkout main | Chuyển sang một nhánh có sẵn |
git checkout -b feature | Tạ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.txt | Bỏ các thay đổi của một tệp (khôi phục tệp) |
git checkout main -- file.txt | Khôi phục một tệp từ nhánh khác |
So sánh checkout, switch và restore
| Việc cần làm | Cách cũ (checkout) | Cách hiện đại |
|---|---|---|
| Chuyển nhánh | git checkout main | git switch main |
| Tạo và chuyển nhánh | git checkout -b x | git switch -c x |
| Bỏ thay đổi của tệp | git checkout -- f | git restore f |
Câu hỏi thường gặp về git checkout
git checkout dùng để làm gì?
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ể?
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?
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?
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.