Git с Visual Studio делает странные вещи с моим .csproj - PullRequest
0 голосов
/ 06 мая 2018

Хорошо, это странно, и я понятия не имею, как обойти эту проблему. Я использую следующую настройку:

  • Visual Studio 2017 v15.6.7
  • Git v2.17.0.windows.1

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

Вот шаги, чтобы воспроизвести это поведение в моем проекте. Не знаю, происходит ли это и с другими проектами.

  1. Мы используем «развитие» в качестве нашей ветви развития
  2. Создать новую ветку от 'development' с именем 'wake_on_lan'
  3. Проверьте, что филиал переключился на 'wake_on_lan'

C: \ Projects \ P2G \ P2G> git status
На ветке wake_on_lan
нечего коммитить, рабочее дерево чистое

  1. Перейдите в каталог Content / Images
  2. Щелкните файл wakeonlan.png, щелкните его правой кнопкой мыши и выберите «Исключить из проекта»

enter image description here

git status В ветке wake_on_lan Ваша ветка обновлена 'Происхождение / wake_on_lan'.

Изменения не подготовлены для коммита: (используйте "git add ..." для обновления что будет совершено) (используйте "git checkout - ..." для удаления изменения в рабочем каталоге)

    modified:   Sources/WUR.P2G.WEB/Wur.P2G.Web.csproj
    modified:   Sources/Wur.P2G.Web/Wur.P2G.Web.csproj

изменения не добавлены в коммит (используйте "git add" и / или "git commit -a")

  1. Перейти к Team Explorer. Изменения в .csproj теперь видны.

enter image description here

  1. Зафиксируйте изменение, и оно становится странным. Изменение зафиксировано, но другое изменение становится видимым для того же файла (.csproj).

Состояние Git говорит о том, что .csproj изменен (красным цветом), но никакие изменения не ставятся. Не могу отменить изменения с VS. Не могу оформить заказ - .csproj с командной строкой git Гиткракен говорит, что есть конфликт, но не могу отменить изменения либо

enter image description here

После этого единственный способ восстановить хотя бы проект, который я нашел до сих пор, - это сделать новый клон из репо.

Я где-то читал, что мне нужно было добавить * .csproj merge = union в файл .gitattributes, но это не имеет значения.

1 Ответ

0 голосов
/ 06 мая 2018

Похоже, что у вас есть дубликат файла в хранилище с разными случаями. Вы можете проверить это командой git ls-tree -r HEAD.

Вы должны удалить один из них. Самый простой способ сделать это - использовать компьютер с Linux или какой-либо веб-интерфейс. Это должно быть как-то возможно в Windows, но я не могу сказать, как, не пытаясь это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...