Làm cách nào để di chuyển công việc của tôi và các thay đổi từ chi nhánh master
sang chi nhánh mới được tạo và để nguyên nhánh nguyên vẹn sau khi di chuyển?Làm cách nào để di chuyển các thay đổi từ một chi nhánh sang một nhánh khác?
Trả lời
Bạn có thể tạo chi nhánh mới trỏ đến cam kết hiện tại sử dụng git branch branchname
(hoặc git checkout -b branchname
nếu bạn muốn trực tiếp kiểm tra chi nhánh). Điều này về cơ bản sẽ sao chép chi nhánh chính của bạn, vì vậy bạn có thể tiếp tục làm việc trên đó.
Nếu bạn đã sao chép thành công chi nhánh, bạn có thể đặt lại master
thành điểm ban đầu bằng cách sử dụng git reset --hard commit
trong đó commit
là giá trị băm của cam kết phải là giá trị cuối cùng trên trang cái.
Vì vậy, ví dụ bạn có một tình huống như thế này:
---- 1 ---- 2 ---- 3 ---- 4 ---- 5 ---- 6
^ ^
original master
master commit
Vì vậy, bạn đã kiểm tra ra master
trên phạm 6
, và bạn muốn tạo một chi nhánh mới ticket
trỏ đến 6
rằng trong khi đặt master
-3
:
git branch ticket
git reset --hard 3
git checkout ticket
Và sau đó bạn đang ở trên ticket
trỏ đến cam kết 6
, trong khi master
điểm đến 3
.
Nếu bạn có cam kết (nói) 2 lần sau khi bạn nhận ra rằng bạn cần phải có được trong một chi nhánh sau đó chỉ cần làm
git branch work_branch
git reset --hard HEAD~2
thay thế 2 với số lượng cam kết sao bạn muốn đi. Bạn vẫn sẽ ở chế độ chủ tại thời điểm này, nếu bạn muốn chuyển đến chi nhánh để tiếp tục công việc, chỉ cần git checkout work_branch
xem git rev-parse --help
nếu bạn muốn hiểu cú pháp về cách sao lưu cây cam kết với tham chiếu như HEAD~2
Hi @Mark Fisher, bạn có ý nghĩa gì bởi "2 lần"? –
@adrianmann - Ý tôi là nếu bạn thực hiện 2 công việc riêng biệt, hãy thêm các thay đổi và cam kết mỗi cái, vì vậy lịch sử của bạn trông giống như Start -> A -> B, trong đó A và B là 2 commit. –
thats tuyệt vời, cảm ơn một triệu. –
Tạo một chi tiết mới chi nhánh từ nơi bạn cần có, và sau đó anh đào chọn các thay đổi trên chi nhánh không chính xác vào chi nhánh mới.
Sau đó, bạn có thể xóa chi nhánh xấu, giả sử bạn chưa đẩy nó ở nơi khác và các thay đổi khác đã được thực hiện đối với nó.
- 1. Di chuyển các cam kết từ một chi nhánh này sang một chi nhánh khác
- 2. TFS đặt giá trị di chuyển từ một chi nhánh này sang một chi nhánh khác
- 3. Git: nhận các thay đổi từ một chi nhánh khác
- 4. Chuyển các thay đổi từ chi nhánh này sang chi nhánh khác mà không cần hợp nhất
- 5. Trên chi nhánh địa phương, không muốn thực hiện thay đổi, nhưng cần phải chuyển sang một chi nhánh khác
- 6. Làm thế nào để đẩy từ chi nhánh này sang chi nhánh khác và thanh toán?
- 7. Làm thế nào để di chuyển tất cả các cam kết từ một chi nhánh khác?
- 8. Làm cách nào để di chuyển nội dung của nhánh chính sang nhánh Git mới?
- 9. Sử dụng git, làm cách nào để bạn di chuyển một số thay đổi không được cam kết từ một chi nhánh sang một chi nhánh khác trong một thư mục khác?
- 10. sáp nhập các sửa đổi đã chọn từ một chi nhánh này sang chi nhánh khác trong Mercurial
- 11. Làm cách nào để phân biệt một chi nhánh với chi nhánh mặc định
- 12. Thay đổi di chuyển bằng Mercurial đến chi nhánh mới
- 13. cách di chuyển các thay đổi đã cam kết nhưng chưa được hủy bỏ sang chi nhánh khác?
- 14. Di chuyển các thay đổi cục bộ vào một chi nhánh
- 15. TFS: gửi các thay đổi được thực hiện cục bộ trong một chi nhánh đến một chi nhánh khác
- 16. TFS: Ghi đè chi nhánh với một chi nhánh khác
- 17. SVN chi nhánh của một chi nhánh
- 18. Tạo chi nhánh git dựa trên một chi nhánh khác
- 19. git: di chuyển chi nhánh đầu
- 20. Git: Cách di chuyển thay đổi kể từ lần commit cuối cùng đến chi nhánh mới
- 21. Tại sao các Mercurial backouts trong một chi nhánh ảnh hưởng đến các chi nhánh khác?
- 22. Cập nhật chi nhánh địa phương với các thay đổi từ một chi nhánh được theo dõi từ xa
- 23. Thay đổi điểm chi nhánh
- 24. Làm cách nào để sao chép các tệp từ chi nhánh này sang nhánh khác bằng git?
- 25. Cam kết thay đổi đối với một chi nhánh khác với chi nhánh hiện tại đã kiểm tra với subversion
- 26. Cách đặt chi nhánh git để chuyển sang điều khiển từ xa có tên chi nhánh khác và kéo từ url hoàn toàn khác
- 27. Tạo chi nhánh SVN từ các thay đổi trong thân
- 28. Subversion - làm thế nào để di chuyển một số changesets từ thân cây đến một chi nhánh?
- 29. git - di chuyển nhánh "thẻ" sang cam kết khác?
- 30. Chỉ kết hợp một changeset từ một chi nhánh khác
Điều đó sẽ hiệu quả nếu chi nhánh mới của bạn được cho là thoát khỏi 'chủ nhân'. Nếu bạn cần nó trên một dòng phát triển khác, bạn sẽ phải xem xét [git-rebase] (http://linux.die.net/man/1/git-rebase) – che
tuyệt vời. cảm ơn bạn. "-b" là gì? – Ramy
'-b' trong' git checkout' yêu cầu Git tạo chi nhánh trước khi kiểm tra. Về cơ bản, nó là một phím tắt để 'git branch name' và' git checkout name'; bạn thường sử dụng nó khi bạn muốn bắt đầu làm việc trên một chi nhánh mới cho một cái gì đó. – poke