Visual Studio 2017 - смена ветки не меняет код - PullRequest
0 голосов
/ 18 марта 2019

У меня очень странная проблема в моей Visual Studio 2017 (установлена ​​последняя версия) и в моих репозиториях GIT.

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

Пример:

  • Я работаю над веткой-1 и добавляю файл
  • Теперь я могу перейти на ветку-2
  • в ветке-2, новый файл также доступен

Это не должно работать!Это делает ветки просто бесполезными!Как я могу исправить это странное поведение?

Спасибо!Стефан

РЕДАКТИРОВАТЬ: Может быть, мой пример не был лучшим.Я уверен, что все файлы отслеживаются.Я пробую другой пример:

  • Я создаю новую ветку "new_feature"
  • , в этой ветке я вносю изменения в существующий файл feature.aspx
  • компонента.aspx правильно перечислен в области «незафиксированных изменений»
  • , затем я возвращаюсь в основную ветку
  • Я ожидаю, чтобы вернуть неизмененный feature.aspx (как он работал несколько месяцев назад)
  • , но файл featue.aspx содержит мои изменения и указан в разделе «незафиксированные изменения» главной ветви

В каждой ветви - файлы кодов одинаковы.

ОБНОВЛЕНИЕ:

Я обнаружил следующее: если я фиксирую изменения в файле feature.aspx в ветви new_feature и переключаюсь обратно в основную ветвь - тогда я получаю обратно unchange feature.aspx, как я бы объяснилЭто.Но это потенциальный источник ошибок!Так что, похоже, я просто хочу вернуть ограничение, что я не могу изменить ветку, если в текущей ветке есть незафиксированные изменения.Где я могу найти этот параметр?Это особенность VisualStudio или GIT?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Хотя я согласен с ответом Джоша Густа, вот более ориентированный на Visual Studio подход:

Кажется, что файл, который вы добавляете, находится за пределами папок, которые Git может отследить для вашего решения. Чтобы определить, что это, вам нужно найти папку .git - это скрытая папка, поэтому убедитесь, что вы можете просматривать скрытые папки в проводнике . Обычно вы можете щелкнуть правой кнопкой мыши свое решение в обозревателе решений и выбрать Открыть папку в проводнике файлов из контекстного меню. Оказавшись там, вы должны увидеть папку .git, если ваше решение находится под контролем исходного кода Git. Посмотрите путь к папке / файлу к папке .git, и это корень Git. Вооружившись этой информацией, вы должны убедиться, что любой добавляемый вами файл добавляется либо в эту корневую папку, либо в одну из ее подпапок. Основываясь на том, что вы описываете, вы добавляете файл, который находится выше - и, таким образом, вне - корня Git вашего решения, и в этом случае этот добавленный файл не может быть отслежен.

0 голосов
/ 18 марта 2019

Если файл не отслеживается, то в Git нет записей о разнице в содержании этого файла между ветвями.Если этот файл должен быть частью вашего хранилища в этой ветке, вы должны зафиксировать файл или хотя бы подготовить его для фиксации и использовать git stash.Если вы спрятаны, вы можете git pop файл вернуться в свой индекс, когда вернетесь к branch-1.

...