Bài 5: git checkout, switch & restore
(Chuyển nhánh và phục hồi)
Giả sử đang ở nhánh nào đó, muốn chuyển sang nhánh master thì thực hiện lệnh:
git checkout master
Lúc này nhánh master hoạt động, và thư mục làm việc là các file tương ứng với nhánh này
Giả sử có file index.html, muốn phục hồi nó về phiên bản ở commit có mã hash là HASH, thì thực hiện:
git checkout HASH index.html
Nếu bạn muốn phục hồi nội dung từ index (staging nếu có, nếu không từ commit cuối) thì đơn giản là
git checkout index.html
Phục hồi nhiều file, ví dụ *.html từ index (staging nếu có, nếu không từ commit cuối)
git checkout -- *.html
Có thể thực hiện với tất cả các file bằng
git checkout -- .
Khi bạn trở về hẳn một commit có mã HASH nào đó bằng lệnh:
git checkout HASH
Thì lúc này con trỏ HEAD sẽ chuyển đến commit này, và Git ở chế độ head detached, bạn làm việc trên một nhánh tạm thời
Nếu có thực hiện các commit trên nhánh này và cần lưu lại thì cuối cùng tạo nhánh mới bằng lệnh
git switch -c ten-nhanh-moi
Lệnh này dùng để chuyển nhánh và có thể tạo nhánh mới, ví dụ chuyển về nhánh master
git switch master
Tạo nhánh mới, kích hoạt nhánh bắt đầu từ một commit có mã HASH
git switch -c ten-nhanh HASH
Hoặc tạo nhanh từ commit cuối
git switch -c ten-nhanh
Chuyển về làm việc tại nhánh tạm thời bắt đầu từ commit có mã HASH
git switch --detach HASH
Lệnh git restore để phục hồi các file của thư mục làm việc.
Để phục hồi tất cả các file dùng lệnh:
git restore .
Cách sử dụng giống như git checkout cho trường hợp phục hồi