2012-01-05 45 views
10

Ngày khác tôi đã cố gắng đẩy một số thay đổi cho máy chủ từ xa.Có thể mất một số thay đổi thông qua git

Tôi đã gặp lỗi vì vậy tôi đã xem chi nhánh nào tôi đang ở.

Tôi thấy rằng tôi đã là một chi nhánh không xác định cục bộ, điều này thực sự kỳ lạ nên tôi đã kiểm tra chủ và sau đó có thể đẩy.

Chỉ cần kiểm tra kết hợp và không có thay đổi nào của tôi ở đó. Họ không ở đây tại địa phương. Hơn 10 giờ làm việc và tôi không thể tìm thấy ở bất cứ đâu.

Tôi đã thực hiện một gitk và tôi không thấy bất kỳ thay đổi nào của mình. Tôi thấy một sự hợp nhất của chủ trông như thế này:

Author: Sara Chipps <[email protected]> 2012-01-04 13:48:20 
Committer: Sara Chipps <[email protected]> 2012-01-04 13:48:20 
Parent: 1a294db3a244d7aeaafbc99c986af86ce7cf17da (Merge branch 'master' of https://github.com/thing/thing) 
Parent: 8ed995c7a5a370333ab27485be07f6a5f647e8d4 (added subscription button to edit profile section) 
Child: 0dbf7e53737c0e7ee7ab908812299c1d60ef0c46 (removed coffee icon on getting started) 
Branches: master, remotes/origin/master 
Follows: 
Precedes: 

    Merge branch 'master' of https://github.com/thing/thing 

Tôi không phải là người duy nhất cam kết dự án này, tôi không biết làm thế nào tôi có một chi nhánh không xác định tại địa phương. Bất cứ ai có thể đề nghị một sửa chữa? Lo lắng về việc mất rất nhiều công việc.

cảm ơn bạn.

+0

Bạn chỉ có thể đến trên "chi nhánh không xác định" (tôi cho rằng bạn có nghĩa là đầu bị tách rời?) Thông qua hành động của riêng bạn. Bạn có thể đã cố hợp nhất và không nhận thấy có xung đột. – meagar

+0

@meagar: Hợp nhất, xung đột hay không, không tách HEAD. Rebase mặc dù! – Cascabel

+0

@Jefromi True. Tôi đang sử dụng để 'git kéo --rebase'ing – meagar

Trả lời

17

Kiểm tra

git reflog 

Điều đó sẽ cung cấp cho bạn một lịch sử hoạt động, và nếu thay đổi của bạn đã được kiểm tra, họ sẽ ở trong một phiên bản ở đâu đó trong nhật ký đó.

Bạn cũng có thể nhìn vào sản lượng từ:

git rev-list --all --header HEAD 

này sẽ hiển thị một đoạn lớn của những gì trong kho. Bạn có thể cần phải làm việc với -n để giới hạn, và đầu ra là một chút khó hiểu. Hãy xem trang man cho git-rev-list để biết thêm thông tin. Điều này hy vọng sẽ giúp tìm ra bạn đang ở đâu.

Bạn cũng có thể tạo ra một chi nhánh tại các vị trí hiện tại:

git branch my temporary 

Sau đó sử dụng gitk

gitk --all 

để có được một ý tưởng quá.

+0

omg, tìm thấy nó, cảm ơn rất nhiều. Tôi chưa thể đánh dấu câu trả lời này là câu trả lời, nhưng tôi sẽ giới hạn thời gian. –

+0

Tôi chỉ phát hiện ra các reflog gần đây sau khi một tình huống tương tự befell tôi khi tôi đã sử dụng git-svn! Tôi nghĩ rằng tôi đã cam chịu, ba ngày làm việc trong sự cân bằng, tôi nghĩ rằng tôi chỉ khóc khi tôi tìm thấy bản sửa đổi! – PlexQ

+0

Đó là cảm giác của tôi, thật tuyệt vời khi thấy nó vẫn còn đó. –

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