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 reset
trang 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
master
nhá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/wip
nhánh "" hiện tại HEAD
.
- Tua lại
master
chi nhánh để thoát khỏi ba cam kết đó.
- Chuyển sang
topic/wip
chi nhánh "" và tiếp tục làm việc.
Lưu ý: do hiệu ứng "phá hủy" của git reset --hard
lệ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 --soft
tù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