Visual studio git не видит изменения

Обновлено: 07.07.2024

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

однако дома этого, похоже, не происходит. У меня есть доступ к управлению версиями и использование управления версиями explorer, сопоставил проекты с локальными каталогами. Это, казалось, работало нормально. Однако, когда я открываю проекты и открываю файлы, изменения, которые я делаю, не проверяют файлы автоматически. Фактически, visual studio даже не меняет свой статус только для чтения, пока я не попытаюсь сохранить свои изменения; в этот момент он предупреждает меня, что файл доступен только для чтения, и спрашивает, хочу ли я, чтобы он попытался перезаписать разрешения и сохранить. Я делаю, и это отлично работает. Но опять же, никакие изменения не регистрируются в ожидающих изменениях окно. Я вроде как заблудился. Единственный опыт управления версиями, который у меня есть, - это subversion и плагин visual studio AnkhSVN.

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

любая помощь очень ценится.

редактировать поскольку люди, похоже, зациклены на том, что Я сказал "дома", позвольте уточнить. Проблем с сетью нет. Я на VPN. Я могу просматривать систему управления версиями. С тех пор я переустановил все по разным причинам. Все прошло хорошо. У меня просто проблема с Visual Studio, не отслеживая изменения в файлах и позволяя им быть зафиксированными обратно в систему управления версиями. Итак, подводя итог:

как Visual Studio может остановить отслеживание изменений после правильного отображения и позволяет мне получить последнюю версию? Я могу обновить из источника контроль, я просто не могу взять на себя обязательства. Окно ожидающие изменения пусто даже после внесения изменений.

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

обычно это первый с достойным ответом, но сегодня я думаю, что кто-то положил кнопки на стулья нескольких людей. Другой сайт ответил на мой вопрос, и с большой точностью. Вот ответ:

щелкните правой кнопкой мыши на узле решения и перейдите к "GO online". По разным причинам visual studio может пометить ваше решение как отслеживаемое системой управления версиями, но "автономное". Он по-прежнему отслеживает изменения за кулисами, ожидая, когда вы снова выйдете в интернет. После этого мое ожидание окно изменений заполнено и все нормально. Я решил, что где-то здесь все просто.

Я надеюсь, что это помогает другим с той же проблемой.

Я нашел интересную настройку в разделе файл > управление версиями > Дополнительно > Изменить управление версиями.

Если я привязываю решение и проект к моему серверу управления версиями (сначала отмените привязку, если он уже привязан), то внезапно он работает! Сохранение файла автоматически проверяет файл и отслеживает изменения.

Я получал ошибку "только для чтения", как и все остальные. Я получил маленький красный чек рядом с файлами, которые я редактировал, но когда я пошел, чтобы сохранить, он попросил меня сохранить файл b / c, он был доступен только для чтения. Я переместил файлы из другой системы управления версиями, и они все еще были доступны только для чтения. Но я не думаю, что Git заботится о сохранении файлов только для чтения, как мой старый исходный контроль. Поэтому я просто удалил флаги только для чтения в Проводнике Windows и был хорош.

для меня решение состояло в том, чтобы перейти в окно Team Explorer в ожидании изменений и оттуда инициировать регистрацию. Не видел вариант go online, я на VS2013. Спасибо всем за указатели!

Я обнаружил, что один из моих проектов на самом деле не был добавлен в исходный элемент управления вообще - как-то это было пропущено, и поэтому любые изменения в этом проекте не будут проверены. Я щелкнул правой кнопкой мыши на узле решения, нажал "добавить в систему управления версиями", он предупредил меня, что некоторые проекты уже отслеживаются, и я решил игнорировать эти проекты, и он продолжил добавлять отсутствующие проекты в систему управления версиями. Теперь выезд работает отлично. Совместное использование в случае, если это кому-то поможет еще!

в моем случае я решил проблему, применив следующие шаги:

  1. щелкните правой кнопкой мыши файл решения в обозревателе решений.
  2. нажмите кнопку Добавить решение в систему управления версиями
  3. Если вы уже добавили свои файлы в tfs нажмите игнорировать для замены файлов всплывающие окна

перейдите в привязки управления версиями (файл->управление версиями->изменить управление версиями) - вы можете заметить, что привязан только проект - не решение. Выберите решение, нажмите Bind.

О мастере филиала

ничего не фиксировать, рабочий каталог чист

И файл, который я использую, был только что изменен.

Если вы уже совершили коммит, вам нечего будет коммитить, проверьте журнал git. Если git diff (или git status ) не показывает ничего, что объясняет, почему нечего добавить. Итак, вопрос действительно таков: «Почему git не распознает, что мой файл был изменен?»

У меня была проблема, когда однажды я установил для индекса git значение «считать неизменным» в моем файле.

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

Если это не поможет, сброса может быть достаточно для других странных случаев.

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

В git rm --cached средстве для только удалить файл из индекса, и reset говорит мерзавец перезагрузить индекс GIT от последней фиксации.

git add -f path/to/the/file он принудительно добавит файлы для фиксации. Этот ответ был единственным, который помог решить мою проблему. Не уверен, что это связано с Windows (у меня никогда не было подобных проблем в прошлом, ни в OSX, ни в Linux). Так что спасибо @ThorSummoner. Между прочим, я попробовал git add -f файл, который находился в этом состоянии «предположить неизменным», и он не сработал - нужно было либо, git update-index либо git rm --cached после него, git reset чтобы он заработал. Кроме того, если вы действительно не уверены в текущем состоянии своего репо, сделайте следующее: git rm --cached -r . а затем git reset . . Есть еще один вариант, чтобы попробовать, git update-index --no-skip-worktree path/to/file вот как я решил свою проблему

Проверьте свой .gitignore файл . Вы можете обнаружить, что файл или расширение файла, или путь к файлу, с которым вы пытаетесь работать, совпадает с записью .gitignore , что объясняет, почему этот файл игнорируется (и не распознается как измененный файл).

Это случилось со мной, когда у меня была аналогичная проблема.

Я использовал gitignore.io для создания своего .gitignore и нашел строку с lib/ , что заставляет git игнорировать эту папку. С этим нет проблем - по крайней мере, если эта папка не является основной папкой вашего проекта, как то, что случилось со мной. Сначала это не сработало. Но я заставил его работать. В моем случае вещь, которую нужно игнорировать, дважды упоминалась в файле gitignore. Всегда ищите все вхождения и заменяйте все.

Как уже говорилось, файлы, вероятно, были помечены флажком "предположить-без изменений", который в основном сообщает git, что вы не будете изменять файлы, поэтому ему не нужно отслеживать изменения с их помощью. Однако это может повлиять на несколько файлов, и если это большое рабочее пространство, вы можете не захотеть проверять их все по одному. В этом случае вы можете попробовать: git update-index --really-refresh

По сути, это заставит git отслеживать изменения всех файлов, независимо от флагов «предполагать без изменений».

Для меня git status говорит, что файлы не меняются, но git add . добавляет два файла и git update-index --really-refresh говорит, что эти два нуждаются в обновлении, но, похоже, ничего не делает. Любая идея?

Звучит безумно, но иногда вы не в правильном репо, даже если думаете, что это так. Например, вы могли переместить родительский каталог, но забыли переключить репозиторий в текстовом редакторе. Или наоборот: вы находитесь в правильном репозитории в текстовом редакторе, но не в том репозитории в командной строке. В первой ситуации вы вносите изменения в правильный файл, но это не та папка, которая открыта в вашей командной строке, поэтому на самом деле это не тот файл. Во второй ситуации вы действительно отредактировали правильный файл, но git вашей командной строки не распознает изменение, потому что вы находитесь не в правильном каталоге в командной строке.

2) у вас были изменения и вы их зафиксировали, вы должны увидеть свою фиксацию в git log

3) у вас были какие-то git reset --hard изменения, ваши изменения могут быть там в журнале ссылок, введите, git reflog --all а затем проверьте или выберите ссылку, если вы когда-нибудь ее найдете.

4) вы проверяли одно и то же репо несколько раз и ошиблись.

1) тайник не найден 2) Я внес изменения и зафиксировал, могу ли я сделать коммит еще раз? 3) Я этого не делал 4) Я если у вас были изменения и вы их зафиксировали, тогда вы можете перейти к следующему шагу, нажать или что бы там ни было . Вы можете зафиксировать еще раз, если у вас есть больше изменений, вы даже можете, git commit --amend что поместит ваши новые изменения в вашу последнюю фиксацию , не делайте этого, если вы уже поделились своим коммитом. Закрытие и повторное открытие терминала сделали это для меня после очистки репозитория проекта.

Произошла такая странная вещь. Плагин Eclipse Kepler git автоматически отмечал все мои папки проекта как игнорируемые в папке .gitignore.

Когда я заходил commit в Team меню, все они снова игнорировались. Насколько я могу судить, это произошло потому, что я установил их как производные в родительском проекте. Снятие отметки с них как dervied исправлено. Я никогда раньше не видел этого на Индиго. Надеюсь, это кому-то поможет.

TL; DR; Вы вообще находитесь в правильном репозитории?

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

На самом деле на моей машине, у меня было два отдельных GIT репозиториев repo1 и repo2 настроен в том же корневом каталоге с именем source . Эти два репозитория по сути являются репозиториями двух продуктов, над которыми я работаю в своей компании. Дело в том, что, как правило, структура каталогов исходного кода всех продуктов в моей компании одинакова.

О мастере филиала

ничего не фиксировать, рабочий каталог чист

в течение получаса. Затем мой коллега заметил это как независимую пару глаз и обратил на это мое внимание, что я был в неправильном, но очень похожем хранилище. В тот момент, когда я переключился на repo1 Git, я начал замечать измененные файлы.

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

Теперь GIT является интерфейсом системы управления версиями по умолчанию в Visual Studio 2019. Начиная с версии 16.6 мы работаем над созданием набора функций на основе ваших отзывов. В версии 16.8 Git стал интерфейсом управления версиями по умолчанию для всех.

Мы продолжаем расширять набор возможностей Git в Visual Studio 2022. Дополнительные сведения о последнем обновлении компонентов см. в записи блога Поддержка нескольких репозиториев в Visual Studio.

Дополнительные сведения о Git

Использование GIT в Visual Studio

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

Длительность видео: 05:27 мин.

Существует три способа начать использование Git в Visual Studio для повышения производительности:

    . Если ваш код не связан с GIT, можно создать новый репозиторий GIT. . Если код, с которым вы хотите работать, не находится на вашем компьютере, можно клонировать любые существующие удаленные репозитории. . Если у вас уже есть код на компьютере, его можно открыть с помощью пункта меню Файл > Открыть > Решение/проект (или Папка). Visual Studio автоматически определяет, имеется ли инициализированный репозиторий GIT.

Начиная с версии 16.8 Visual Studio 2019 включает полностью интегрированный интерфейс для работы с учетными записями GitHub. Теперь вы можете добавить в цепочку ключей учетные записи GitHub и GitHub Enterprise. Вы сможете добавлять и использовать их так же, как и учетные записи Майкрософт. Это позволит упростить доступ к ресурсам GitHub в Visual Studio. Дополнительные сведения см. на странице Работа с учетными записями GitHub в Visual Studio.

Visual Studio включает полностью интегрированную учетную запись GitHub. Вы не только можете добавить учетные записи GitHub и GitHub Enterprise в цепочку ключей, но и использовать их так же, как учетные записи Майкрософт. Дополнительные сведения см. на странице Работа с учетными записями GitHub в Visual Studio.

Создание репозитория GIT

Если ваш код не связан с GIT, можно начать с создания нового репозитория GIT. Подробные сведения см. в разделе Создание репозитория в Visual Studio.

Если ваш код не связан с GIT, можно начать с создания нового репозитория GIT. Для этого в строке меню выберите GIT > Создать репозиторий GIT. Затем в диалоговом окне Создание репозитория GIT введите свои данные.

Диалоговое окно "Создание репозитория Git" в Visual Studio.

Независимо от того, является ли репозиторий общедоступным или частным, лучше создать удаленную резервную копию кода, которая будет безопасно храниться в GitHub, даже если вы работаете сами по себе. Это также позволит вам получать доступ к коду с любого компьютера.

Вы можете создать исключительно локальный репозиторий GIT, выбрав параметр Только локальный. Вы также можете связать локальный проект с любым существующим пустым удаленным репозиторием, размещенным в Azure DevOps или у любого другого поставщика Git, с помощью параметра Существующий удаленный репозиторий.

Клонирование существующего репозитория GIT

В Visual Studio процесс клонирования прост. Пошаговые инструкции см. в разделе Клонирование репозитория в Visual Studio.

В Visual Studio процесс клонирования прост. Если вы знаете URL-адрес репозитория, который нужно клонировать, можно вставить его в разделе Расположение репозитория, а затем выбрать место на диске, в которое будет клонирован репозиторий.

Диалоговое окно "Клонирование репозитория Git" в Visual Studio.

Если вы не знаете URL-адрес репозитория, в Visual Studio можно легко перейти к существующему репозиторию GitHub или Azure DevOps и выбрать его.

Открытие существующего локального репозитория

После клонирования или создания репозитория GIT Visual Studio обнаружит его и добавит в список Локальные репозитории в меню GIT.

В нем можно быстро открывать репозитории GIT и переключаться между ними.

Вариант "Локальные репозитории" в меню Git в Visual Studio.

Просмотр файлов в обозревателе решений

При клонировании репозитория или открытии локального репозитория Visual Studio переключается в этот контекст GIT, сохраняя и закрывая все ранее открытые решения и проекты. Обозреватель решений загружает папку в корне репозитория Git и проверяет дерево каталогов на наличие просматриваемых файлов. К ним относятся такие файлы, как CMakeLists.txt или файлы с расширением SLN.

Visual Studio настраивает представление в зависимости от файла, загруженного в обозреватель решений:

  • При клонировании репозитория, содержащего один SLN-файл, обозреватель решений напрямую загружает это решение.
  • Если обозреватель решений не обнаруживает файлов SLN в репозитории, по умолчанию он загружает представление папки.
  • Если репозиторий содержит несколько файлов SLN, то обозреватель решений выводит список доступных представлений для выбора.

Переключаться между текущим представлением и списком представлений можно с помощью кнопки Переключить представления на панели инструментов обозревателя решений.

Обозреватель решений с нажатой кнопкой "Переключить представления" в Visual Studio.

Окно "Изменения GIT"

GIT отслеживает изменения файлов в репозитории в процессе работы и разделяет файлы на три категории. Это те же изменения, которые отображаются при вводе команды git status в командной строке.

  • Файлы без изменений: эти файлы не были изменены с момента последней фиксации.
  • Измененные файлы: эти файлы изменились с момента последней фиксации, но еще не были подготовлены для следующей фиксации.
  • Промежуточные файлы: эти файлы содержат изменения, которые будут добавлены в следующую фиксацию.

В процессе работы Visual Studio отслеживает изменения в файлах проекта в разделе Изменения окна Изменения GIT.

Окно "Изменения Git" в Visual Studio.

Когда вы будете готовы подготовить изменения, нажмите кнопку + (плюс) для каждого из файлов, которые необходимо подготовить, или щелкните файл правой кнопкой мыши и выберите пункт Промежуточно сохранить. Можно также подготовить все измененные файлы одним щелчком мыши, используя кнопку "Промежуточно сохранить все" ( + ) в верхней части раздела Изменения.

При подготовке изменения Visual Studio создает раздел Подготовленные изменения. Только изменения из раздела Подготовленные изменения добавляются к следующей фиксации, которую можно выполнить, выбрав команду Зафиксировать промежуточные. Эквивалентная команда для этого действия — git commit -m "Your commit message" . Можно также отменить подготовку изменений, нажав кнопку – (минус). Эквивалентная команда для этого действия — git reset <file_path> для отмены размещения одного файла или git reset <directory_path> для отмены размещения всех файлов в каталоге.

Построчное сравнение версий файла в Visual Studio.

Выбор существующей ветви

В Visual Studio текущая ветвь отображается в селекторе в верхней части окна Изменения GIT.

Текущие ветви, которые можно просмотреть с помощью селектора в верхней части окна &quot;Изменения Git&quot; в Visual Studio.

Текущая ветвь также доступна в строке состояния в правом нижнем углу интегрированной среды разработки Visual Studio.

Текущие ветви, которые можно просмотреть с помощью строки состояния в правом нижнем углу интегрированной среды разработки Visual Studio.

В обоих местах можно переключаться между имеющимися ветвями.

Создание ветви

Можно также создать новую ветвь. Эквивалентная команда для этого действия — git checkout -b <branchname> .

Чтобы создать ветвь, достаточно ввести ее имя и указать существующую ветвь, на основе которой будет создана данная.

Диалоговое окно &quot;Создание новой ветви&quot; в Visual Studio.

В качестве базовой можно выбрать существующую локальную или удаленную ветвь. Если флажок Извлечь ветвь установлен, вы автоматически переключитесь на новую ветвь после ее создания. Эквивалентная команда для этого действия — git checkout -b <new-branch><existing-branch> .

Окно "Репозиторий GIT"

В Visual Studio имеется новое окно Репозиторий GIT, в котором представлены все сведения о репозитории, включая все ветви, удаленные репозитории и журналы фиксации. Открыть это окно можно из меню GIT или Вид либо непосредственно из строки состояния.

Управление ветвями

При выборе в меню GIT пункта Управление ветвями отображается древовидное представление ветвей в окне Репозиторий GIT. В левой области можно использовать контекстное меню для извлечения, создания, объединения ветвей, перемещения изменений из одной ветви в другую, отбора изменений и других действий. Щелкнув ветвь, можно просмотреть ее журнал фиксаций в правой области.

При принесении ветви в окне Изменения GIT под раскрывающемся списком ветвей отображается индикатор, который показывает количество фиксаций, которые не были вытянуты из удаленной ветви. Он также показывает число локальных фиксаций, которые не были отправлены.

Окно &quot;Изменения Git&quot; с индикатором под раскрывающимся списком в Visual Studio.

Окно &quot;Репозиторий Git&quot; с журналом фиксаций для ветви в Visual Studio.

Сведения о фиксации

Диалоговое окно &quot;Сведения о фиксации&quot; в Visual Studio.

Разрешение конфликтов слияния

Во время слияния могут возникать конфликты, если два разработчика изменяют одни и те же строки в файле и GIT неизвестно, какой вариант правильный. В этом случае GIT прерывает слияние и сообщает о конфликтном состоянии.

Дополнительные сведения о конфликтах слияния и способах их обработки см. на странице Устранение конфликтов слияния.

В Visual Studio можно легко выявлять и устранять конфликты слияния. Во-первых, в верхней части окна Репозиторий GIT имеется золотистая информационная панель.

Но если ни одно из этих окон не открыто и вы переходите к файлу с конфликтами слияния, вам не придется искать следующий текст:

Редактор слияния

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

Редактор слияния в Visual Studio.

Настройка параметров GIT

Чтобы настроить параметры GIT на уровне репозитория, а также на глобальном уровне, выберите в строке меню пункты GIT > Параметры или Сервис > Параметры > Управление исходным кодом. Затем выберите нужные параметры.

Диалоговое окно &quot;Параметры&quot; Visual Studio IDE, в котором можно выбрать параметры персонализации и настройки.

Использование всех возможностей Team Explorer в Visual Studio

Новый интерфейс GIT — это система контроля версий по умолчанию в Visual Studio 2019 начиная с версии 16.8. Однако при желании этот интерфейс можно отключить. Чтобы вернуться в Team Explorer для Git, выберите Средства > Параметры > Среда > Функции предварительной версии и снимите флажок Новый пользовательский интерфейс Git.

Раздел &quot;Функции предварительной версии&quot; диалогового окна &quot;Параметры&quot; в Visual Studio.

Что дальше?

Хотя новый интерфейс Git теперь включен по умолчанию в Visual Studio 2019 начиная с версии 16.8, мы продолжаем добавлять новые функции для его совершенствования. Чтобы ознакомиться с новыми обновлениями интерфейса Git в предварительном выпуске, скачайте и установите его со страницы Visual Studio 2022, предварительная версия.

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

Если у вас есть предложение, отправьте его нам. Мы будем рады вашему участию в работе над решением на портале Сообщества разработчиков.

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

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

VS red-tick

VS blue-lock

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

No history

Я хочу зафиксировать свои изменения локально и синхронизировать их с сервером TFS.

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

VS TFS Changes

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

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

git status cmd

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

Подготовить файлы для фиксации, но я не хочу делать это, поскольку Develop ваше приложение в репозитории Git (отслеживание, фиксация) В документации Visual Studio указано:

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

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

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

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

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

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

В моем случае моя проблема заключалась в том, что я использую Linux с символическими ссылками на пути к моему проекту (не могу сказать, есть ли у окон с символическими ссылками такая же проблема)

Откройте «Просмотр»> «Вывод», выберите «Source Control - Git» в «Показать вывод из» и проверьте наличие ошибок. Как уже упоминалось, любая ошибка в Git заставляет MS Project игнорировать любые изменения.

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

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

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

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

-> Щелкните его правой кнопкой мыши и выберите Git Extensions

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

enter image description here

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

enter image description here

-> Нажмите Addfiles..Здесь вы идете, файл будет добавлен в изменения

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

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

ошибка: открыть ("WindowsServices \ Scheduler.WindowServices.InstallLog"): Отказано в разрешении

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

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

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

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

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

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

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

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

По-видимому, VS2015 терпит крах на каком-то очень долгом пути и просто решил отказаться от всякой надежды.

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

VS red-tick

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

VS blue-lock

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

No history

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

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

VS TFS Changes

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

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

git status cmd

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

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

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

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


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

Читайте также: