2016-07-30 1 views
1

Ну, теперь я, кажется, ушел и получил все испорченное.Переключение ветвей подсказки для сохранения файла

Я пытаюсь узнать, как работает Git и как его использовать в среде Visual Studio/TFS 2015.3.

Вот проблема: когда я создаю ветку и вношу изменения в нее - например, добавление нового SomeClass class-VS теперь спрашивает меня, хочу ли я сохранить измененный проект, когда я дважды щелкаю, чтобы переключать ветви. Такое поведение является новым - ранее я мог переключаться между ветвями без такого приглашения.

Принесите меня сюда ... Мне нужно дать вам долгую историю, чтобы вы знали весь контекст.

Мне удалось получить VS-решение, синхронизированное с удаленным репо. Я запустил свою первую сборку TFS, и я был абсолютно в восторге. Однако в сборке появилось предупреждение о том, что тесты не проводились. Справедливо; Я не включил тестовый проект. Поэтому я создал новый локальный филиал под названием add-test-project и добавил проект.

Я обнаружил, что в VS я мог переключаться между master и add-test-project двойным щелчком мыши. Я заметил, что ветка master не включила тестовый проект, но ответвление add-test-project. Это имело смысл; Я еще ничего не слил.

Итак, я сделал запрос на объединение/фиксацию/вытягивание/синхронизацию (я не помню, как и в каком порядке), и казалось, что он сработал - на этот раз сборка не зарегистрировала предупреждение.

(Примечание стороны:., Когда я сделал запрос тянущего я был немного разочарован, чтобы увидеть, что VS открыл соответствующую страницу TFS в моем браузере по умолчанию, я бы хотел сделать это все в пределах IDE)

Я решил пропустить всю вещь запроса на тягу, потому что 1) я хочу остаться в IDE и 2) Я работаю соло, так что это лишний шаг. И это то, что, я думаю, в конечном итоге привело к моей проблеме.

Затем я сделал еще несколько циклов разветвления/синхронизации/фиксации/слияния (как я уже сказал, я не помню, и я точно не уверен, в каком порядке я их делал/должен был их делать - и каждый цикл имел другую последовательность Я уверен). Теперь я не могу переключать ветки, не запрашивая сохранения изменений. И изменения присутствуют в обеих ветвях.

Был ли мой локальный реестр Git каким-то образом испорчен? Я попытался использовать File Explorer, чтобы удалить скрытые папки .git и .vs, повторно открыть VS и повторно клонировать репо, но проблема не устранена.

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

Я уверен, что смогу выправить это с помощью решения «выжженной земли», например. вытрите все и начните с нуля, но я хотел бы знать, что я сделал неправильно (и как исправить это), поэтому я могу избежать этого.

EDIT

Стоит отметить, что теперь все пошло так сильно, что, когда я внести изменения в файл класса-например. add constructor-VS больше не помещает красную галочку рядом с этим файлом. Что-то есть действительно ушел боком здесь.

ответ

1

ОК, я понял. У меня была комедия ошибок.

Сначала я объясню проблему с галочками: оказалось, что я повторно клонировал в совершенно другое место, поэтому у меня даже не было открытого решения. Поэтому вместо того, чтобы ранее удалять только папки .git и .vs, я должен был удалить все локально и начать с нуля путем повторного клонирования в исходное местоположение.

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

И теперь я уверен, что я получил правильную последовательность вниз:

  1. Новый филиал
  2. Сделать желаемое кодирование изменяет
  3. Местное обязательство
  4. Локальное объединение освоить
  5. Push to remote

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

EDIT

Я также установил новое правило для себя: использовать такое же имя для локального репозитория, как и для пульта дистанционного управления.

+1

Yup, gotta commit (или stash, но это совершенно другая команда), ваши изменения локально, прежде чем менять ветки. И да, это правильная последовательность. – ChallahuAkbar

+0

@ChallahuAkbar: Очень хорошо, спасибо :-) – InteXX