Hoàn tác một cú git


335

Tôi vừa mới thực hiện một dự án mà tôi chưa cam kết. Có cách nào để trở lại trạng thái trước khi tôi bị đâm không? Làm thế nào tôi có thể làm điều này? Tôi đã đóng thiết bị đầu cuối và máy tính xách tay của tôi bị tắt. Tôi đã thực hiện một số nghiên cứu và dường như không có cách nào để làm điều này.


Bài viết liên quan ở đây .
RBT

Câu trả lời:


650

Bạn chỉ có thể chạy:

git stash pop

và nó sẽ hủy bỏ những thay đổi của bạn.

Nếu bạn muốn duy trì trạng thái của tệp (theo giai đoạn so với làm việc), hãy sử dụng

git stash apply --index

10
Vâng, không hoàn toàn. Nó sẽ không thiết lập lại những gì trong thư mục dàn dựng, vì vậy bạn sẽ phải khôi phục lại tất cả những điều đó (có thể gây phiền nhiễu nếu bạn vừa thực hiện một git add -p phức tạp
Nick

Không làm việc cho tôi. Tôi đã có một lỗi : mymodule/MyClass.java: needs merge - unable to refresh index. Tránh hợp nhất thủ công chính xác là mục tiêu của tôi khi sử dụng git stash pop...
TanguyP

Cứu cuộc đời tôi. Tôi mặc dù tất cả các thay đổi của tôi đã biến mất và cần tất cả mọi thứ một lần nữa. Cảm ơn
Ankit Shah

@TanguyP vậy giải pháp cuối cùng của bạn là gì?
theonlygusti

118

git stash list để liệt kê các thay đổi được sắp xếp của bạn.

git stash showđể xem những gì ntrong các lệnh dưới đây.

git stash apply để áp dụng stash gần đây nhất.

git stash apply stash@{n} để áp dụng một stash cũ.

http://git-scm.com/book/en/Git-Tools-Stashing


1
cũng "git stash show" sau "git stash list" chỉ để làm tròn câu trả lời xuất sắc này và xác định rõ hơn những gì cần thay thế n bằng. Hóa ra tôi có những thứ được cất giấu từ các tập tin không còn tồn tại nữa!
JimLohse

15

Điều này cũng sẽ khôi phục thư mục dàn:

git stash apply --index
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.