2012-03-16 39 views
5

Xin chào Tôi muốn hoàn tác cam kết cuối cùng của mình. Những gì tôi đã làm là tôi đã thực hiện một số thay đổi để tập tin sau đó tôi cam kết nhưng tôi đã không đẩy chúng vào repo chính được nêu ra. Sau khi git cam kết -m "bình luận" lệnh Tôi chạy trạng thái git và tôi nhận được thông báo nàycách hoàn tác cam kết

Your branch is ahead of 'origin/demo' by 1 commit 

Vì vậy, bây giờ tôi muốn hoàn tác cam kết cuối cùng của tôi để làm thế nào tôi có thể làm điều đó?

+1

[Đã được giải quyết ở đây] [1] [1]: http://stackoverflow.com/questions/495345/git-removing-selected-commits-from-repository –

Trả lời

16

Nếu bạn muốn hủy bỏ nó hoàn toàn:

git reset --hard HEAD^ 

Nếu bạn muốn hủy bỏ nó và giữ các thay đổi của bạn dàn dựng (trước khi cam kết):

git reset --soft HEAD^ 

Nếu bạn muốn hủy bỏ nó và giữ các tệp của bạn đã được sửa đổi (trước giai đoạn):

git reset --mixed HEAD^ 
+0

Bạn vui lòng cho tôi biết HEAD ở đây là gì? Tôi có nên sử dụng lệnh tương tự mà bạn đã nhập ở đây không? – 2619

+0

HEAD là tệp luôn tham chiếu đến lần commit cuối cùng trên nhánh hiện tại, HOẶC nếu bạn đã kiểm tra một commit (trong trạng thái HEAD tách rời) giá trị của nó là commit đó. Có, bạn nên sử dụng lệnh như, giả sử bạn chưa chuyển đổi chi nhánh, v.v. – ralphtheninja

1

Để hoàn nguyên cam kết của bạn bằng cách tạo một cam kết khác (giả sử master là chi nhánh làm việc của bạn):

git revert master 

Để hủy bỏ nó, ví dụ, giả vờ nó không bao giờ xảy ra:

git reset --hard master~ 
Các vấn đề liên quan