2011-07-06 38 views
8

Tôi muốn khôi phục lại cam kết cuối cùng sau khi tạo ra một lỗi lớn, nhưng tôi quản lý để rollback một chút quá công bằng. Cam kết tôi muốn khẳng định lại không xuất hiện khi tôi nhập 'git log' vào bash (tôi cho rằng nó không còn trong lịch sử). Có cách nào tôi có thể phục hồi cam kết cuối cùng theo ngày không?Làm thế nào để hoàn tác một cuộn Git

Tôi cũng đang sử dụng eGit trong nhật thực cho cùng một dự án nếu điều đó giúp mọi thứ trở nên dễ dàng hơn. Cảm ơn.

Trả lời

21

Nếu bạn là ok với dòng lệnh, đi với bạn repo, làm một git reflog và nhận được cam kết mà bạn muốn "rollback" đến và đi làm một git reset --hard <commit>

Bạn cũng sẽ có thể làm git reset --hard [email protected]{1} và sau đó quay trở lại egit và rollback đến cam kết mong muốn.

+2

Có liên quan: [git reflog, mạng lưới an toàn của bạn] (http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html) –

+0

Tuyệt vời! Bạn đã cứu tôi rất nhiều công việc, cảm ơn bạn. – Chironex

2

Tôi nhận thấy rằng tốt hơn hết là nên thực hiện các thay đổi của bạn về phía trước đúng lúc hơn là lạc hậu.

Cách tiếp cận của Git là "hoàn nguyên" cam kết. Khi bạn hoàn nguyên một cam kết, bạn hãy kiểm tra vào thư mục làm việc của bạn nghịch đảo của cam kết được đề cập. Sau đó, bạn thêm và cam kết điều đó, và bạn vừa thực hiện một cam kết MỚI, cam kết "hoàn tác" của cam kết bạn đang hoàn nguyên, và nó để lại một bản ghi trong lịch sử rằng một điều như vậy đã xảy ra, vì vậy nếu bạn muốn hoàn tác hoàn tác của bạn, thật dễ dàng để làm.

+0

Khi bạn nhận ra rằng bạn đã làm điều gì đó sai lầm trước khi nó là một phần không thể xóa nhòa của lịch sử (tức là được chia sẻ với những người khác), tốt hơn là không ghi lại nó. Ghi lại các cam kết xấu có nghĩa là các công cụ như 'git bisect' có nhiều tình trạng lộn xộn hơn. – Novelocrat

+0

Tôi đoán đó là sự thật. Tôi thấy rằng các thông điệp cam kết rõ ràng đã cứu tôi khỏi sự đau buồn quá mức trong vấn đề đó. Và nếu tôi cần phải hoàn nguyên sự trở lại của mình (thỉnh thoảng tôi có), thì tốt nhất là nên quay lại đó. –

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