2012-03-14 4 views
24

Tôi đã sao chép dự án git vào kho lưu trữ git cục bộ. Sau đó, tôi đã làm một cái gì đó khó chịu với một trong các tập tin và trong hoảng loạn tôi đã xóa tập tin vật lý từ ổ đĩa (rm style.css) và cũng loại bỏ nó từ git (git rm style.css).Làm cách nào để kéo tệp bị thiếu trở lại chi nhánh của tôi

Tôi muốn nhận lại số style.css gốc từ gốc đến chi nhánh nhà phát triển của tôi. Thật không may git của tôi nghĩ rằng nó là up-to-date và sẽ không làm bất cứ điều gì.

[email protected]:~/project.me# git status 
# On branch dev 
nothing to commit (working directory clean) 

[email protected]:~/project.me# git pull origin dev 
Password for 'https://[email protected]': 
From https://github.com/somewhere/project.me 
* branch   dev  -> FETCH_HEAD 
Already up-to-date. 

gì tôi cần phải làm gì để nói với git mà tôi muốn tải về gốc style.css tập tin trở lại vào chi nhánh dev của tôi?

Trả lời

46

Sử dụng git checkout. Trong trường hợp của bạn:

git checkout origin/master style.css 

Lệnh này sẽ cập nhật tệp được yêu cầu từ nhánh cụ thể (tại đây chi nhánh từ xa origin/master).

Hope this helps

+0

Cảm ơn - điều này đã giúp tôi. Nếu bạn có nhiều tệp để khôi phục (như tôi đã làm), bạn có thể sử dụng: 'git diff --name-status | sed -n '/^D/s/^ D \ s * // gp' | xargs git checkout origin/master' sẽ trả lại tất cả các tệp đã xóa. – spikyjt

5

Chuyển đến vị trí của style.css (có thể ứng dụng/css /) sử dụng giao diện điều khiển nếu không sẽ có lỗi pathspec.

sau đó thực hiện:

git checkout origin/master style.css

26

Nếu bạn muốn khôi phục lại tất cả các file bị mất từ ​​các kho lưu trữ địa phương

git checkout . 

Warning: Phương pháp này cũng khôi phục các file tất cả đã thay đổi và giảm tất cả các thay đổi

+0

Cảm ơn! Điều này giải quyết vấn đề thiếu tập tin, rõ ràng. – Smartis

+0

không giúp khôi phục các tệp bị thiếu trong remote/master nhưng không phải địa phương – vsync

+0

@vsync Nó có thể, nhưng bạn phải chạy git fetch before – aleskva