Подтвердить что ты не робот

Visual Studio TFS Git не видит изменений

Я не получаю что-то о Visual Studio Git для TFS.

Я клонировал решение коллеги в Git в TFS и начал добавлять код. Затем я понял, что мне нужны собственные ветки для изменений, которые я делал, и поэтому следуя инструкциям в Направить новую локальную ветвь на удаленный репозиторий Git и отслеживать его тоже Я побежал

git checkout -b e4ctim
git push -u origin e4ctim

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

VS red-tick

И затем, когда я сохраняю файл, Visual Studio возвращает значок синему замку. Я предполагаю, что это изменение от красного до синего замка означает, что изменение было проверено локально в Git:

VS blue-lock

Но когда я смотрю историю измененного файла, его нет!

No history

Я хотел бы локально выполнить локальные изменения и синхронизировать их с сервером TFS.

Visual Studio вообще не видит изменений:

VS TFS Changes

Из командной строки я вижу, что Git заметил все мои изменения, выполнив команду

git status

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

git status cmd

Наслаждайтесь Git book Я мог бы использовать

git add

или более конкретно

git add -u .

чтобы скомпилировать файлы, готовые к фиксации, но я неохотно это делаю как Разработайте свое приложение в репозитории Git (track, commit) Документация Visual Studio гласит:

Q: Где этап Git?
A: Если вы опытный пользователь Git, вы могли заметить, что Visual Studio обрабатывает изменения, отличные от командной строки. Возможно, вы задались вопросом, содержит ли раздел Включенные изменения ваши поэтапные изменения. Фактически, Visual Studio обычно обходит Gitдля вас. Когда вы совершаете изменения, Visual Studio одновременно этапов и совершает их. Единственное исключение возникает, когда вы добавляете файл в репозиторий Git; Visual Studio делает такой вид изменение.

Студии Visual Studio и одновременно фиксируют изменения. Но почему это не перечисление каких-либо изменений, которые я сделал для отслеживаемых файлов, как изменений, и, таким образом, позволить мне их совершить?

4b9b3361

Ответ 1

Это скорее обходное решение, чем объяснение, но я обнаружил, что если я проигнорировал документацию ", когда вы совершаете изменения, Visual Studio одновременно этапы и совершает их", и вместо этого добавили изменения в этап с помощью команды

git add -u .

тогда Visual Studio внезапно узнала об изменениях и позвольте мне зафиксировать их локально и синхронизировать их с сервером TFS. Кроме того, он добавил зеленый крестик "новые файлы" в файлы, которые я добавил, и я обнаружил, что могу сделать еще одну фиксацию, а затем еще одну синхронизацию, чтобы подхватить дополнения и удаления, которые я сделал.

С тех пор Visual Studio делает то, что я ожидаю: когда я вношу изменения в файл, файл указан как измененный в окне фиксации.

Я до сих пор не знаю, почему Visual Studio не удалось получить изменения до тех пор, пока не будет начат git add, но по крайней мере он работает сейчас.

Ответ 2

Мне пришлось добавить эту строку в мой .gitignore:

[path to project]/node_modules/

Видимо VS2015 рушился на очень длинном пути туда и просто решил отказаться от надежды

Ответ 3

У меня был тот же самый проб и я понял следующее: Чтобы показать набор изменений, как сказал @dumbledad, Visual Studio запускает команду

git add -u 

внутренне для размещения обновлений. Если некоторые файлы, которые вы пытаетесь добавить в свой набор изменений, открыты другим процессом, тогда команда git получает ошибку разрешения. И Visual Studio не покажет изменения.

В моем случае у меня был документ в моем репо, открытый другим приложением, и это заставило Visual Studio не показывать изменения из-за ошибки разрешения git. Поэтому проверьте, не открыт ли какой-либо из файлов вашего репозитория git каким-либо другим приложением.

Ответ 4

удалить файл myProject\.git\index.lock исправил его в моем случае.

Ответ 5

Я использую VS 2015 Update 1, а также встречаю эту проблему. Кроме того, в то же время окно вывода VS показало, что мой файл VC.opendb в папке решения занят другой программой. В соответствии с этим я исправил проблему окклюзии: добавьте *.VC.opendb и *.VC.db в файл .gitignore. Тогда все идет хорошо.

Ответ 6

У меня была такая же проблема с Visual Studio Update 3. VS сохранялся локально, но не собирал никаких изменений, поэтому я не мог выполнить.

Я загрузил Git для Windows из https://git-for-windows.github.io/ (спасибо @fhilton), открыл командную строку разработчика и сменил каталог на C:\Repos\Scheduler (расположение моего исходного кода).

Затем я запустил GET ADD -U и получил следующую ошибку...

error: open ( "WindowsServices\Scheduler.WindowServices.InstallLog" ): Разрешение отклонено

ошибка: невозможно индексировать файл WindowsServices\Scheduler.WindowServices.InstallLog

fatal: не удалось обновить файлы

Как говорили другие, похоже, что инструменты Git в Visual Studio могут терпеть неудачу, даже для самых простых ошибок уровня Windows. Хуже того, он может сказать, что Git полностью синхронизирован. Командная строка, безусловно, является вашим другом на данный момент.

Ответ 7

У меня была эта проблема на новой машине со свежей установкой VS2013 Update 5 и VS 2015, и это сводило меня с ума. Затем я обнаружил, что если я установил Git для Windows, проблема исчезла! https://git-for-windows.github.io/

Ответ 8

Затем я пытался внести изменения, но файлы не получили... Для этого есть простое решение. Основной проблемой является один из ваших файлов git ignore, игнорирующих ваши файлы.

Откройте локальное репо, например, D://repos, затем посмотрите файл, который вы хотите

- > D://repos/project1/HomeViewModel.cs

- > Щелкните правой кнопкой мыши по нему и нажмите git Extentions

- > Выбрать + Добавить файлы

введите описание изображения здесь

- > затем параметр Force

введите описание изображения здесь

- > Нажмите на Addfiles.. Вот вам файл будет добавлен в изменения

Ответ 9

Полезная статья! Использование Git Bash (git add -u) помогло мне приблизиться к причине проблемы. После принятия изменений, ранее не показанных в Visual Studio, из-за использования проекта базы данных SQL Server была сделана только промежуточная фиксация; По-видимому, Windows 10 начала добавлять jfm файлы в одну и ту же папку, постоянно открывая ее и предотвращая доступ к ней VS. Решением было добавить его в .gitignore перед фиксацией.

Смотрите эту тему для получения дополнительной информации:

Каталог проекта базы данных Visual Studio 2015 содержит файл с расширением jfm

Ответ 10

Откройте View> Output, выберите "Source Control - Git" в "Show Output from" и проверьте наличие ошибок. Как уже упоминалось, любая ошибка в Git заставляет MS Project молча игнорировать любые изменения.