2010-06-29 28 views
5

Tôi không nhận được điều này: khi tôi 'git pull --rebase remote branch', nó sẽ chuyển đổi HEAD của tôi trở về root được chia sẻ của họ và sau đó bắt đầu phát lại tất cả các cam kết từ xa đã xảy ra trong thời gian chờ đợi. Tại sao các cam kết này đôi khi thất bại? Họ là những cam kết sạch sẽ trên một không gian làm việc sạch sẽ? Không phải là gần như điểm của rebasing?Tại sao git pull --rebase thất bại khi phát lại các cam kết hiện có?

+0

Xem thêm http://stackoverflow.com/questions/3051461/git-rebase-keeping-track-of-local-and-remote/3052118#3052118 để có tầm nhìn tốt hơn về những gì được phát lại trên đầu những gì trong thời gian một rebase. – VonC

Trả lời

4

Bạn có chắc chắn không phải là cam kết của bạn không thành công?

Giả sử bạn đang làm việc trên chi nhánh và thực hiện một loạt thay đổi đối với một tệp cụ thể.

Bây giờ bạn muốn rebase cam kết của bạn trên để bất cứ điều gì người đứng đầu của điều khiển từ xa.

Tất cả các thay đổi của bạn sẽ bị xóa, khi đó tất cả thay đổi của chúng được áp dụng, thì tất cả thay đổi của bạn sẽ được áp dụng lại trên đó. Vì vậy, nếu họ xóa các tập tin bạn đang làm việc trên? Hoặc nếu không thực hiện các thay đổi khiến các thay đổi của bạn không thể áp dụng?

+2

kwatford là đúng. bạn kết thúc với các xung đột vì các thay đổi của bạn dựa trên các phiên bản lỗi thời của các tệp. khi git cố gắng áp dụng các thay đổi của bạn, nó sẽ thấy rằng các thay đổi của bạn đang cố gắng thay đổi mã không giống với những gì bạn đã bắt đầu, do đó, nó đặt nó làm xung đột –

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