2014-09-29 3 views
17

Я пытаюсь синхронизировать удаленное репо с локальным репо, но получаю следующие ошибки. Некоторые файлы (которые не имеют расширения) не синхронизируются с локальным репо на машине WINDOWS, но я могу успешно синхронизировать работу на машине MAC.Ошибка Git pull: невозможно создать файл (недопустимый аргумент)

Есть ли какие-либо настройки конфигурации в WINDOWS для обработки такого случая?

  1. Использование TortoiseGit
  2. Windows 7 64 бит машина

ОШИБКА ДЕТАЛИ

git.exe clone  --progress -v "https://github.com/xxxx/xxxxx.git" "C:\Data\GitHub\simility\vishesh-common" 

Cloning into 'C:\Data\GitHub\simility\vishesh-common'... 
POST git-upload-pack (200 bytes) 
remote: Counting objects: 3912, done. 
remote: Compressing objects: 100% (487/487), done. 
Receiving objects: 100% (3912/3912), 2.70 MiB | 567.00 KiB/s, done. 
Resolving deltas: 100% (1578/1578), done. 
remote: Total 3912 (delta 409), reused 0 (delta 0) 
Checking connectivity... error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030050305_fantasy-trilogy-spin?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030295038_laser-dogs?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_arizona-native-bird-painting-series?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_native-birds-ii?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard-0?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_only-you-can-prevent-computercide?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_vector-cupholder-protect-your-laptop-and-your-lap?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_103055429_death-of-an-angel?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030650665_rachel-vanslyke-making-a-new-record-together-we-ca?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030835091_russian-trucks-of-world-war-two?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-expansion-next-level?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-project-expansion?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099860912_yaw-clock?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099992656_heavenly-sight-a-vision-out-of-blindness?ref=users (Invalid argument) 
fatal: unable to checkout working tree 
warning: Clone succeeded, but checkout failed. 
You can inspect what was checked out with 'git status' and retry the checkout with 'git checkout -f HEAD' 

git did not exit cleanly (exit code 128) (21746 ms @ 29-09-2014 13:32:13) 

ответ

15

Если бы я прочитал, что журнал хорошо, эти файлы имеют имена, которые заканчиваются «? Исх = пользователей "

Windows не позволяет вам иметь«? » в имени файла, так же, как это не позволяет иметь «\» или «*». В Linux возможно, если вы избежите этих символов. В Windows я думаю, что это невозможно вообще. См. http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247

У вас будет трудное время с такими именами. На самом деле я не могу придумать ни одной идеи, которая позволила бы вам синхронизировать этот 1: 1. Вы, безусловно, можете получить их и сохранить их под такими безопасными именами, как _projects_1099992656_heavenly-sight-a-vision-out-of-blindness__ref=users, но я не знаю, как это сделать автоматически, или как позже сообщить Git об этом сопоставлении, извините ..

Эти имена файлов выглядят так, Параметры HTML-запроса, добавленные к ним. Это действительно требуется? может быть, это просто какой-то артефакт, который можно удалить? попробуйте поговорить с mantainers проекта, может быть, они смогут просто удалить этот нечетный суффикс?

20

Я столкнулся с той же проблемой, но не хотел переименовывать или удалять эти файлы. Итак, вот обходной путь, если вы можете жить без доступа к этим файлам с использованием разреженной проверки:

Перейдите в папку .git в своем репо и откройте файл config. (Вы также можете изменить конфигурацию с помощью черепаху-ГИТ, но я havn't получил он установлен здесь.) В разделе [core] добавьте строку

sparsecheckout = true 

затем перейти в папку .git/info и создать файл sparse-checkout. Добавить что-то вроде

* 
!kickstarter/parsers/data/kickstarter/campaigndetails/* 

Первая линия включает в себя все, а второй исключает все файлы в kickstarter/parsers/data/kickstarter/campaigndetails/. Теперь вы сможете проверить репо. Используя wild-cards, вы, вероятно, можете сделать более сложные исключения.

+0

это здорово, очень полезно, спасибо – blueimpb

2

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

Это то, что я делаю.

  1. Перейдите в ваш репозиторий.
  2. Выберите меню «совершить».
  3. Выберите отрасль, в которой вы хотите удалить файл проблемы.
  4. Перейдите в свой файл и нажмите на него. Вы увидите обзор файла, который показывает деталь файла, например. ваш код, дата выполнения этого файла и т. д.
  5. Посмотрите на верхний правый угол, вы увидите кнопку со стрелкой вниз (аналогично алфавиту v) щелкните по ней.
  6. Он выйдет и покажет вам кнопку переименования и кнопку удаления внутри нее.
  7. Тогда это ваш выбор, переименуйте его или удалите. Выбирай с умом.
  8. После нажатия кнопки. Bitbucket покажет вам диалоговое окно, как сказано, и зафиксирует файл с кнопкой фиксации.
  9. После фиксации вы можете вернуться в sourcetree и потянуть свой код без проблем.
  10. Наслаждайтесь!