2010-03-22 31 views
16

Tôi đang làm việc trên một dự án, và đã có tất cả các bài kiểm tra của tôi đi qua trên nhánh chính. Sau đó tôi đã thực hiện một số thay đổi, và khi mọi thứ bắt đầu thất bại, tôi nhận ra rằng có lẽ tôi nên thực hiện những thay đổi đó trên một nhánh khác. Có cách nào tôi có thể cam kết những thay đổi đối với một chi nhánh mới mà không cam kết họ với nhánh chính của tôi, để thầy vẫn có các bài kiểm tra vượt qua của tôi không?Git: Tôi có thể chuyển thư mục làm việc của mình đến một chi nhánh mới mà không cam kết vào chi nhánh hiện tại không?

Trả lời

23

Vâng, chỉ cần tạo các chi nhánh mới và kiểm tra xem nó ra:

$ git checkout -b new-branch 

Sau đó cam kết bất kỳ thay đổi mà bạn có. Chúng sẽ được áp dụng cho chi nhánh mới, đã thanh toán.

+0

ok tuyệt vời .. Tôi hiểu lầm rằng phần của tài liệu. Cảm ơn! – noli

+0

Bạn có thể chuyển đổi các nhánh thông thường với các tệp đã sửa đổi mà không gặp vấn đề gì, bạn sẽ thấy nó hiển thị danh sách các tệp đã sửa đổi/thêm/xóa khi bạn thanh toán đến một nhánh khác như lời nhắc rằng cây làm việc không sạch. Tôi nghĩ rằng trong một vài trường hợp, bạn có thể bị ngăn cản làm như vậy. Ở đây bạn chuyển sang một nhánh mới để nó an toàn. Khi nó không hoạt động, bạn có thể cố gắng để stash (git stash) và sau đó áp dụng stash trên các chi nhánh khác, vì vậy bạn có một thư mục sạch khi kiểm tra ra. –

+0

@faB sẽ thanh toán không đặt lại thư mục làm việc của tôi thành phiên bản chi nhánh mà bạn thanh toán? Im một chút lo lắng về việc mất công cụ với lệnh checkout chỉ để có thể cam kết trong một chi nhánh khác – nus

4

Bạn có thể giấu những thay đổi hiện tại của bạn (git stash), chuyển sang chi nhánh mới và sau đó áp dụng các thay đổi đối với chi nhánh mới sử dụng

git stash pop 
Các vấn đề liên quan