2012-08-09 47 views
8

tốt, tôi vừa phạm một sai lầm lớn.chi nhánh git (không có chi nhánh)

Tôi đang làm việc trên một dự án và nghĩ rằng tôi đang làm việc trong nhánh chính.
Vì vậy, tôi đã thêm các tập tin tôi cần, cam kết họ và khi tôi đã cố gắng để đẩy nguồn gốc tôi đã nhận

Everything is up to date 

tôi đã sử dụng git branch và có

* (no branch) 
* master 

Vì vậy, trong căng thẳng, tôi giấu sự cấp phát thay đổi trong (không có chi nhánh) và kiểm tra chủ. Bây giờ tôi đã mất tất cả các thay đổi của mình, vì tôi không thể thanh toán chi nhánh "không được đặt tên". Khi tôi liệt kê các chi nhánh, tôi chỉ có

* master 

Trả lời

12

Bạn chưa mất các thay đổi nếu chúng được cam kết. Bạn chỉ không có một tham chiếu có tên cho họ.

Thử chạy git reflog và tìm dòng gần đầu sẽ có nội dung như checkout: moving from <commit-id> to master. Sau đó bạn có thể sử dụng <commit-id> để tạo ra một chi nhánh tạm thời để kiểm tra những thay đổi của bạn và mang lại cho các chi nhánh master:

git checkout -b temp-branch <commit-id> 

Bạn có thể sáp nhập chi nhánh này, hoặc chỉ cherry-chọn các cam kết cần thiết.

Tôi hy vọng điều này sẽ hữu ích.

+0

bạn là người tiết kiệm cuộc sống. cảm ơn bạn rất nhiều :) –

+2

'git reflog' là một phao cứu sinh :) – mamapitufo