Nếu bạn chưa thực hiện bất kỳ cam kết nào, chỉ (1: chi nhánh) và (3: thanh toán) là đủ.
Hoặc, trong một lệnh:git checkout -b newBranch
Như đã đề cập trong git resettrang người đàn ông :
$ git branch topic/wip # (1)
$ git reset --hard HEAD~3 # (2) NOTE: use $git reset --soft HEAD~3 (explanation below)
$ git checkout topic/wip # (3)
- Bạn đã thực hiện một số cam kết, nhưng nhận ra rằng họ còn sớm để ở trong
masternhánh "". Bạn muốn tiếp tục đánh bóng chúng trong một nhánh chủ đề, vì vậy hãy tạo ra topic/wipnhánh "" hiện tại HEAD.
- Tua lại
masterchi nhánh để thoát khỏi ba cam kết đó.
- Chuyển sang
topic/wipchi nhánh "" và tiếp tục làm việc.
Lưu ý: do hiệu ứng "phá hủy" của git reset --hardlệnh (nó đặt lại chỉ mục và cây làm việc. Mọi thay đổi đối với các tệp được theo dõi trong cây làm việc kể từ khi <commit>bị loại bỏ), tôi muốn đi theo:
$ git reset --soft HEAD~3 # (2)
Điều này sẽ đảm bảo tôi không mất bất kỳ tệp riêng tư nào (không được thêm vào chỉ mục).
Các --softtùy chọn sẽ không chạm vào file index cũng không phải là cây làm việc tại tất cả (nhưng reset đầu đến <commit>, giống như tất cả các chế độ làm).
Với Git 2.23+ , lệnh mớigit switch sẽ tạo nhánh trong một dòng (với cùng loại reset --hard, vì vậy hãy cẩn thận với tác dụng của nó):
git switch -f -c topic/wip HEAD~3