简体   繁体   English

如何从远程git存储库恢复已删除的文件?

[英]How to restore deleted files from remote git repository?

I have one project and I try to sync code. 我有一个项目,我尝试同步代码。

1st off I run: 我第一次跑:

git pull origin master

and got several conflicts: 并遇到了一些冲突:

Auto-merging mobile/www/img/meeting_details/attending_buttons_yes.png
Auto-merging mobile/www/css/group-details.css
CONFLICT (add/add): Merge conflict in mobile/www/css/group-details.css
Auto-merging mobile/platforms/ios/www/img/meeting_details/attending_buttons_yes.png
Auto-merging mobile/platforms/ios/www/css/group-details.css
CONFLICT (add/add): Merge conflict in mobile/platforms/ios/www/css/group-details.css
Auto-merging mobile/platforms/android/assets/www/img/meeting_details/attending_buttons_yes.png
Auto-merging mobile/platforms/android/assets/www/css/group-details.css
CONFLICT (add/add): Merge conflict in mobile/platforms/android/assets/www/css/group-details.css

I don't care about my changes only in CSS folder so like in SVN I removed all css files : 我不在乎仅在CSS文件夹中所做的更改,因此像在SVN中一样,我删除了所有css文件

rm -rf mobile/www/css/*.css

After, I run once more: 之后,我再次运行:

   git pull origin master

I expected to restore above mentioned files back but got: 我希望恢复上述文件,但得到:

U   mobile/platforms/android/assets/www/css/group-details.css
M   mobile/platforms/android/assets/www/img/meeting_details/attending_buttons_yes.png
U   mobile/platforms/ios/www/css/group-details.css
M   mobile/platforms/ios/www/img/meeting_details/attending_buttons_yes.png
U   mobile/www/css/group-details.css
M   mobile/www/img/meeting_details/attending_buttons_yes.png

As I understand U means Update, M - merge. 据我了解, U表示更新, M合并。

But My css folder is empty 但是我的css文件夹是空的

I deleted local files to prevent conflicts but sounds like I do something wrong 我删除了本地文件以防止发生冲突,但听起来我做错了

Please help, 请帮忙,

Do you want your local files to be exactly the same as the remote master branch? 您是否希望本地文件与远程主分支完全相同? If so, you can use: 如果是这样,您可以使用:

git reset --hard origin/master

First, make sure git config core.autocrlf is set to false , or git will try to add wrong eol style (LF or CRLF) where it should not. 首先,请确保将git config core.autocrlf设置为false ,否则git会尝试在不应添加的错误eol样式(LF或CRLF)中进行尝试。

Second, anything done "like SVN", when talking about Git, is likely to not go your way. 其次,在谈论Git时,凡是像“ SVN”一样做的事情,都可能会走不通。
Git is designed very differently from SVN. Git的设计与SVN完全不同。

I don't care about my changes 我不在乎我的变化

Then: 然后:

git checkout origin/master -- .

(or git reset --hard , as suggested) (或git reset --hard ,如建议的那样)

See also " How to handle/fix git add/add conflicts? ". 另请参见“ 如何处理/修复git添加/添加冲突? ”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM