2012-03-16 3 views
0

Я не уверен, что случилось с моим репозиторием git, но в течение двух дней каждый раз, когда я делаю фиксацию, он начинает удалять файлы, казалось бы, наугад, а затем не отпускает меня слияние из-за конфликтов и т. д. и т. д.создать новый репозиторий git после удаления старого

Теперь у меня есть приложение обратно в пригодное для использования состояние, и я подумал, что просто удалю файл .git и запустил git init, чтобы создать новый git.

Когда я делаю это, я получаю

 
git init 
fatal: cannot copy '/usr/share/git-core/templates/hooks/commit-msg.sample' to '/media/sf_Ruby192/myapp/.git/hooks/commit-msg.sample': Operation not permitted 

--------------- UPDATE из LS -al

Это работает в виртуальном окне убунту на Хост Windows. Странно, что это работает около 7 месяцев без проблем, и вдруг GIT начал удалять файлы, и я понял, что мой .git был поврежден, попытался перестроить его и столкнулся со всеми этими проблемами.

 
total 62 
drwxrwx--- 1 root vboxsf 4096 2012-03-16 15:03 . 
drwxrwx--- 1 root vboxsf 8192 2012-03-15 13:29 .. 
drwxrwx--- 1 root vboxsf 4096 2012-02-20 06:43 app 
drwxrwx--- 1 root vboxsf 4096 2012-03-16 09:45 config 
-rwxrwx--- 1 root vboxsf 161 2011-12-27 05:31 config.ru 
drwxrwx--- 1 root vboxsf 4096 2012-03-08 09:58 db 
drwxrwx--- 1 root vboxsf 0 2011-12-27 05:31 doc 
-rwxrwx--- 1 root vboxsf 1369 2012-02-27 07:23 Gemfile 
-rwxrwx--- 1 root vboxsf 4374 2012-02-27 07:24 Gemfile.lock 
-rwxrwx--- 1 root vboxsf 86 2012-02-22 13:21 .gitignore 
drwxrwx--- 1 root vboxsf 0 2012-02-20 06:43 lib 
drwxrwx--- 1 root vboxsf 4096 2012-02-22 08:50 log 
drwxrwx--- 1 root vboxsf 4096 2012-03-18 09:02 public 
-rwxrwx--- 1 root vboxsf 274 2011-12-27 05:31 Rakefile 
-rwxrwx--- 1 root vboxsf 9386 2011-12-27 05:31 README 
drwxrwx--- 1 root vboxsf 0 2012-02-27 07:16 redis 
drwxrwx--- 1 root vboxsf 4096 2011-12-27 05:31 s 
drwxrwx--- 1 root vboxsf 0 2011-12-27 05:31 script 
drwxrwx--- 1 root vboxsf 0 2011-12-27 05:31 solr 
-rwxrwx--- 1 root vboxsf 4 2012-02-20 06:43 sunspot-solr.pid 
drwxrwx--- 1 root vboxsf 4096 2011-12-27 05:31 test 
drwxrwx--- 1 root vboxsf 4096 2011-12-27 05:31 thin 
drwxrwx--- 1 root vboxsf 0 2011-10-09 09:23 tmp 
drwxrwx--- 1 root vboxsf 0 2011-12-27 05:31 vendor 

------------------ ОБНОВЛЕНИЕ ------------------------ -----

происходит через шаги, рекомендованные Брайаном, есть каталог .git (который я новый, и был переименован перед запуском начальной git init., когда я сделать ls -l .git, я получаю

 
ls cannot access .git: No such file or directory 

Однако я могу записать cd в папку .git, но также не могу запустить -ls изнутри .git, поскольку я получаю

 
ls cannot access directory: Operation not permitted 

любые предложения о том, как выбраться из этой дыры?

+0

у вас возникли проблемы с вашей файловой системой? например, ваша файловая система была перемонтирована как доступная только для чтения? или, возможно, есть проблема с разрешениями? – kclair

+0

@kclair, git говорит мне, что у меня проблемы (или у меня проблемы), но я добавляю, удаляя, перемещая файлы без проблем. – pedalpete

+0

ok ... Я просто говорю, что я думаю, что ошибка выглядит как прямая файловая система или ошибка разрешений. does /media/sf_Ruby192/myapp/.git/ уже существует? как выглядит ls -la этого каталога? – kclair

ответ

1

Чтобы отладить проблему с разрешениями, обычно полезно проверять разрешения соответствующих файлов: исходный файл, целевой файл и целевой каталог.

Попробуйте ls -l /usr/share/git-core/templates/hooks/commit-msg.sample, чтобы определить разрешения для вашего шаблона commit-msg.sample; если у вас нет разрешения на чтение, вы не сможете его прочитать (git init копирует несколько файлов шаблонов в ваш репозиторий git, если он не может прочитать исходные файлы, вы получите сообщение об ошибке).

Затем попробуйте проверить разрешения для файлов назначения. Из каталога проекта запустите ls -al. Проверьте, какие разрешения для . (текущий каталог). У вас есть разрешение на запись: .? Есть ли каталог .git? У вас есть разрешение на запись? Если есть каталог .git, тогда сделайте ls -l. Есть ли каталог hooks? У вас есть разрешение на запись? Наконец, посмотрите, что произойдет, если вы вручную попытаетесь скопировать /usr/share/git-core/templates/hooks/commit-msg.sample в свой каталог .git/hooks. Вы получаете ту же ошибку?

Возможно, следующие шаги помогут решить проблему самостоятельно. Если нет, укажите в своем ответе выходные команды ls -l, что поможет нам выяснить, что происходит.

+0

благодарит Брайана, я сделал то, что вы сказали, и обновил вопрос с помощью проблем с папкой '.git'. кажется, что вы правы, что что-то неловко с разрешениями там. к сожалению, я не могу заставить 'ls' выводить разрешения для этой папки. – pedalpete

1

У меня была эта проблема. Оказалось, что оболочка держится за некоторые свойства об удаленном git-репо. После удаления я получил ту же ошибку fatal: cannot copy. Закрытие оболочки и открытие новой решены. В новой оболочке я смог запустить новый git-репо.У меня также была эта проблема при попытке повторного клонирования репо после его удаления. Запуск новой оболочки снова решил проблему.

+0

У меня была эта проблема на Windows-машине, и в моем случае было недостаточно перезапустить оболочку (Git Bash). Я продолжал получать «фатальную ошибку: не могу скопировать», но после перезагрузки Windows это работало без проблем. – Johan

0

Я также встретил эту проблему. Причина была в диске полностью ...

Смежные вопросы