Đồ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
Trả lời
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.
Đồ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
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
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
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. –
- 1. ghi đè subclipse và cam kết?
- 2. Git cam kết không ghi đè tác giả gốc trong git đổ lỗi
- 3. git: squash/fixup trước đó cam kết
- 4. Khôi phục cam kết git trước đó?
- 5. Git ký tắt cam kết trước đó?
- 6. Biết mã GIT trước khi cam kết?
- 7. Hoàn nguyên một phần của cam kết với git
- 8. Khôi phục git ghi đè cam kết bị mất bằng vũ lực đẩy
- 9. Git, viết lại tên người dùng và email cam kết trước đây
- 10. Xấu cam kết Git
- 11. Cách hoàn nguyên tệp về phiên bản trước mà không ghi đè thay đổi hiện tại?
- 12. Cách git hoàn nguyên cam kết sử dụng SHA
- 13. Xem một Git cụ thể cam kết
- 14. Hoàn nguyên về cam kết trước đó trong Git cho studio trực quan 2012
- 15. cách hoàn tác cam kết
- 16. Ghi đè tác giả trên git merge
- 17. làm thế nào để hoàn tác git add trước khi cam kết
- 18. Hoàn toàn xóa cam kết khỏi cơ sở dữ liệu git
- 19. Cách hoàn nguyên nhiều cam kết như là một phần của một cam kết đơn
- 20. python ghi đè dòng trước
- 21. Làm cách nào để "hủy hoàn nguyên" một cam kết Git được hoàn nguyên?
- 22. Xóa hoàn toàn tệp khỏi toàn bộ kho git
- 23. Hoàn nguyên cam kết hợp nhất git, sau đó hoàn nguyên hoàn nguyên
- 24. cách git cam kết toàn bộ thư mục?
- 25. cách ghi đè bằng lệnh git push, ghi đè các thay đổi đối với máy chủ git?
- 26. Cam kết trong một gói git
- 27. Dừng một git cam kết bởi một tác giả cụ thể bằng cách sử dụng móc trước cam kết
- 28. Làm cách nào để chỉnh sửa các cam kết git trước đây để xóa mật khẩu của tôi khỏi nhật ký cam kết?
- 29. Git cam kết từ python
- 30. Hoàn tác "quay lại cam kết này"
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
Bạn có đặc quyền truy cập vào máy chủ git không? –
Có, tôi có quyền truy cập. – pqn