2011-07-26 42 views
5

Đồng nghiệp của tôi đã chuyển đến kho lưu trữ git của chúng tôi một lỗi. Tôi muốn cam kết một số mã cập nhật, nhưng tôi đã không git kéo và kết quả là 1 cam kết phía sau HEAD. Làm thế nào tôi có thể bỏ qua hoàn toàn những thay đổi của anh ấy và ghi đè sai lầm của anh ấy nếu tôi ở phía sau?Hoàn toàn ghi đè một cam kết git trước đây

+0

trước tiên sẽ hoàn nguyên về phiên bản trước đó. sau đó cam kết thay đổi của bạn. – Randy

+0

Bạn có đặc quyền truy cập vào máy chủ git không? –

+0

Có, tôi có quyền truy cập. – pqn

Trả lời

6

Tôi đoán bạn có nghĩa là anh ta đã đẩy một cam kết xấu vào repo trung tâm.

Nếu có, bạn có thể đẩy phiên bản của mình bằng cách sử dụng git push -f và thao tác này sẽ ghi đè lên kho lưu trữ. Tất nhiên, điều này cũng sẽ phá vỡ lịch sử (f có nghĩa là lực) để đồng nghiệp của bạn sẽ phải sao chép lại repo trung tâm.

+5

Đồng nghiệp của bạn không phải sao chép lại. Chỉ cần nói với anh ta, 'git fetch; git rebase origin/master ', hoặc đơn giản là' git pull --rebase '. Sau đó anh ta cần phải sửa chữa cam kết của mình, hoặc loại bỏ nó hoàn toàn. – cmcginty

8

Bạn có thể ép buộc như câu trả lời khác gợi ý, nhưng cách an toàn hơn là tiếp tục và kéo các thay đổi của mình, sau đó git revert cam kết của mình, điều này sẽ hoàn toàn hoàn tác tất cả thay đổi của anh ấy. Điều này không có nguy cơ vô tình làm mất các thay đổi:

git pull 
git revert <treeish naming his commit> 
git push 
+0

Chúng tôi đã quên thêm tệp .gitignore để ngăn việc thêm các tệp đã biên dịch và tôi không chắc chắn cách giải quyết xung đột hợp nhất. – pqn

+1

Nếu bạn đang sử dụng bất kỳ loại điều khiển nguồn nào trong một nhóm nhiều người, tôi khuyên bạn nên nghiên cứu xung đột hợp nhất trước khi bạn làm bất cứ điều gì khác. Giải quyết chúng là một hoạt động thường xuyên và cần thiết. Git tích hợp sẵn với kdiff3, một công cụ giải quyết xung đột đa nền tảng. Thiết lập nó sẽ là một khởi đầu tốt. Tôi đã viết một loạt các bài viết về Git, và một [hướng dẫn bạn qua các xung đột hợp nhất] (http://shotgunsandpenguins.blogspot.com/2009/07/journey-to-git-part-v-merging.html). Bạn có thể xem. –

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