2011-10-20 31 views
6

Thỉnh thoảng tôi thấy mình trong tình huống sau: Tôi đang làm việc trên nhánh (nói master) và tôi đang chỉnh sửa một số tệp, nhưng khi nó đến thời điểm cho một cam kết tôi nhận ra rằng tôi muốn cam kết với một chi nhánh mới (nói thử nghiệm). Nói cách khác, nhánh cũ (chính) phải còn nguyên vẹn và nhánh mới sẽ được tạo ra trông giống như sau:git: Cam kết công việc hiện tại chưa được cam kết trong nhánh hiện tại đến chi nhánh mới

.. -- master -- new commit 

Cách dễ nhất để làm điều đó là gì?

Hiện tại, tôi cam kết với chi nhánh cũ, sau đó tạo nhánh mới và cuối cùng đặt lại chi nhánh cũ. Nhưng điều đó thực sự xấu xí.

+2

bản sao có thể có của [Git: Cách di chuyển công việc hiện tại sang chi nhánh mới?] (Http://stackoverflow.com/questions/1394797/git-how-to-move-existing-work-to-new-branch) – brendan

Trả lời

4
git checkout -b branch  # create new branch out of current head 
git add <files>    # the changes you had done in your working directory will be carried over 
git commit -m "message"  # commit! 
+0

trong câu hỏi "nhưng khi nói đến thời gian cho một cam kết, tôi nhận ra rằng tôi muốn cam kết với một chi nhánh mới" – COD3BOY

+0

@ Sanjay - Vâng và quan điểm của bạn là gì? – manojlds

+0

@ user1004474 - Hãy dùng thử. Cả thay đổi không được tổ chức và giai đoạn sẽ ở đó khi bạn chuyển nhánh. – manojlds

1

Nó hơi dễ dàng hơn nếu bạn tạo ra các chi nhánh mới đầu tiên:

$ git checkout -b new_branch 
$ git commit 
+0

Vấn đề là tôi đã không lên kế hoạch trước thời hạn, vì vậy những thay đổi đã được thực hiện trước (và có thể một số được thêm vào chỉ mục với git add) và sau đó tôi quyết định rẽ nhánh. – tros443

+0

@ user1004474: Nó vẫn hoạt động. Bạn có thể chạy 'git checkout -b new_branch' bất kể bạn có thay đổi hay không và liệu chúng có được thêm vào chỉ mục hay không. – hammar

+0

Có đúng là bạn đã chọn – tros443

0

Một khả năng khác là để bạn có thể đi trước và cam kết họ đến chi nhánh master, sau đó cắt đứt một chi nhánh khác từ mới HEAD (nói feature). Khi việc này hoàn tất, bạn có thể git reset làm chủ vị trí trước các cam kết.

+0

Ok, bạn đã không đọc 'Hiện tại, tôi cam kết nhánh cũ, sau đó tạo nhánh mới và cuối cùng đặt lại nhánh cũ. Nhưng đó thực sự là xấu xí. – manojlds

+0

Vâng. Tôi bỏ lỡ điều đó. Tôi không nghĩ rằng đó là xấu xí mặc dù FWIW. –

+0

Làm cho nó dễ dàng để làm, nhưng nó là IMO xấu xí – manojlds

Các vấn đề liên quan