2012-08-27 27 views
15

Vì vậy, đây là những gì đã xảy ra: Tôi đã ở trên nhánh 'A' và đã sử dụng Git stash trên nhánh đó. Sau đó tôi chuyển sang nhánh khác 'B'. Tôi đã quay trở lại Chi nhánh 'A' nhưng không làm một cửa sổ bật lên Git. Tôi chuyển sang nhánh master và sau đó quay trở lại nhánh 'A'. Tôi đang cố gắng để đi một cửa sổ pop git stash bây giờ nhưng cant dường như để có được những thay đổi của tôi trở lại .. Tôi cần phải phục hồi mã đó nhưng bất cứ khi nào tôi làm một cửa sổ pop stit git, thay đổi tập tin của tôi không được liệt kê. Tôi không cam kết bất kỳ mã nào.mất các thay đổi stit git

Có cách nào để khôi phục các thay đổi mà tôi đã thực hiện không? sẽ thực sự đánh giá cao sự giúp đỡ nào về vấn đề này.

+1

thử "danh sách stit git" để xem những gì bạn có sẵn. – JamesOR

Trả lời

7

ẩn nấp nên có thể xem qua

git stash list 

hoặc

gitk --all 

cũng có, git stash không giấu file được theo dõi. Nếu bạn đã làm điều này và sau đó đã làm một git checkout --force của một chi nhánh khác để ghi đè lên các tập tin không được theo dõi với những người theo dõi trong một chi nhánh khác, bạn đã mất nội dung đó. Cách được đề xuất để stash là với

git stash -u 

Điều này sẽ ngăn ngừa tổn thất loại này.

+0

Cảm ơn. Điều này đã giúp. – nids

10

Chúng tôi cũng gặp phải sự cố tương tự. Vì vậy, đây là cách chúng tôi phục hồi những thay đổi bị mất:

  1. Quay trở lại chi nhánh B.

    git checkout B

  2. Sử dụng git reflog tùy chọn để quản lý thông tin reflog.

    git reflog --all

    Output:

    refs f332d5c/stash @ {0}: WIP trên B: aa1d0c1 xyz cam kết thông báo

  3. Bây giờ, hãy chuyển sang nhánh A bằng cách sử dụng git checkout A

  4. Cuối cùng, để khôi phục các thay đổi bị mất của bạn.

    git stash áp dụng f332d5c

+1

Đã có quyền truy cập để cam kết, nhưng mất stash của tôi. Phục hồi công việc của tôi 'git stash apply'. Cảm ơn! – Mitkins

+0

@Mitkins cảm ơn rất nhiều, tôi cũng đã gặp phải điều này và 'git stash apply' làm việc cho tôi! – AnnabellChan

0

Something tương tự xảy ra với tôi. Tóm lại, hãy kiểm tra để chắc chắn rằng bạn không vô tình đẩy các tệp mới vào nhánh khác.

Đây là những gì đã xảy ra với tôi: Tôi đã lưu trữ nội dung của mình, chuyển từ 'dev' sang 'master' để thực hiện cập nhật nhanh.Khi tôi đẩy hotfix của tôi để làm chủ, tôi đã không nhận thấy rằng tôi cũng đã thêm các tệp mới của tôi có nghĩa là cho dev vào nhánh chính - tôi cũng giả sử stash bao gồm các tệp đó.

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