2010-09-28 48 views
5

Dường như một số lỗi sửa lỗi cũ của tôi bị giảm trong quá trình hợp nhất chi nhánh cũ thành mới. Tôi đã tìm thấy cam kết trong nhật ký và có ID (403357cab89465ce68001762d35fe27b57aeec65). Bây giờ tôi chỉ muốn khôi phục lại cam kết đó với nhánh đang làm việc hiện tại, vì vậy trước tiên tôi có thể phân biệt những thay đổi đó nhưng có khả năng cam kết tất cả chúng lại. Tôi có thể làm cái này như thế nào?Khôi phục cam kết git trước đó?

git checkout 403357cab89465ce68001762d35fe27b57aeec65

không hoạt động.

Và nhân tiện, cam kết liên quan đến chỉnh sửa đối với nhiều tệp.

Trả lời

12

Thực hiện git cherry-pick sha1 và nó sẽ kéo cam kết đó lên trên HEAD hiện tại của bạn.

+0

oh wow, về cơ bản đã thực hiện cam kết và cắm lại ngay! cảm ơn, nhưng đã hy vọng để xem những thay đổi dàn dựng đầu tiên vì vậy tôi có thể diff chúng, xác minh tôi cần chúng, vv trước khi quyết định để bắt đầu. – Doug

+1

Bạn có thể thực hiện 'git reset HEAD ^' ngay bây giờ để lại các thay đổi trong bản sao làm việc của bạn nhưng loại bỏ các cam kết (giả sử bạn chưa đẩy). Ngoài ra, bạn có thể đánh dấu câu trả lời như được chấp nhận trong hệ thống ở đây bằng cách nhấp vào dấu kiểm :) – Daenyth

+0

Đây chính xác là những gì tôi cần để khôi phục từ một đường ống bị hỏng trên sự hợp nhất của thượng nguồn. Cảm ơn! – Brian

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