Как вернуть синхронизацию мастер-ветвей моего удаленного репо и локального репо в Team Explorer?
Положение:
У меня есть код приложения в VSTS в удаленном репозитории Git. Я делаю всю свою работу в Master, обычно на своем локальном (Dallas) компьютере, и использую VS 2017 Team Explorer "SYNC", чтобы периодически синхронизировать его с удаленным репозиторием в VSTS.
25 августа я внес некоторые изменения в код, но еще не зафиксировал их. 26 августа мне пришлось отправиться с трехдневным визитом в Остин. В Остине мне пришлось внести некоторые изменения в код, поэтому я клонировал репозиторий из VSTS на свой ноутбук, внес изменения, зафиксировал их (см. Commit 8af в журнале ниже) и синхронизировал с VSTS.
По возвращении в Даллас 29 августа я вошел в локальную машину, понял, что у меня есть некоторая незафиксированная работа, и выполнил ее (см. Коммит 310 в журнале ниже). Затем я попытался выполнить синхронизацию с мастером на VSTS и получил ошибку « tip is » (см. Журнал ниже).
Попробовал тянуть и получил еще одну ошибку:
Операция извлечения не удалась.
Извлечение перезапишет ваши локальные изменения в следующие 3 файла:
.vs/slnx.sqlite
/Account/Logout.cshtml
/App_Data/RESTORE BackupFile to SQL 2016 localdb.sql
С этого момента, пытаясь следовать (полезным?) Подсказкам и сообщениям об ошибках, я попал в еще более серьезную проблему, добавил еще несколько локальных коммитов и теперь совершенно сбит с толку. Прелесть интеграции Git в VS 2017 состоит в том, что она не дает вам возможности узнать много нового о Git. Это тоже зло в этой настройке! Я довольно невежествен, когда мне приходится работать под абстракциями VS 2017
Я хочу закончить с историей в происхождении и в местном репозитории Далласа, чтобы выглядеть так
Commit ORIGIN Local Notes
3d6 X(HEAD) X(HEAD)
db9 X X
5e6 X X
310 X X
8af X X
aa8 X X
В отличие от текущего состояния:
Commit ORIGIN Local
3d6 X(HEAD)
db9 X
5e6 X
310 X
8af X(HEAD)
aa8 X X (common parent of 8af and 3d6)
Надеюсь, что это описание и (отредактированная) информация журнала ниже помогут кому-то помочь мне выйти из этого беспорядка Оригинальная документация git невнятна и непонятна. Я попытался вернуться и сбросить (не полностью понимая их) и не получил нигде, но в беде.
Моя ситуация, кажется, не подходит ни к одному из решений, которые я смог найти с помощью Google и переполнения стека.
Мое лучшее предположение - git push -f
. Я единственный, кто работает над этим приложением. Тем не менее, я волнуюсь, учитывая все предупреждения об опасностях git push -f. Если я сделал git push -f
в приведенном выше сценарии, что будет перезаписано? Я предполагаю, что это будет коммит 8af (который находится только на мастере источника и имеет общего родителя с последними коммитами, которые будут выдвинуты. Это правильное предположение?
Буду признателен, если кто-нибудь скажет мне, что мне нужно здесь делать.
отредактированный ("объединенный") журнал
(Все коммиты, сделанные изменения и т. Д. Были в ветке Мастер)
C: \ Users \ rrrob \ Source \ VS2017Rafino> git log
commit 3d6 (HEAD -> master) NOT IN ORIGIN Четверг 30 августа 08:38:18 2018 -0500
commit db9 Ср 29 августа 16:01:53 2018 -0500 NOT IN ORIGIN
совершить 5e6 ср. 29 августа 15:08:24 2018 -0500 НЕ В ПРОИСХОЖДЕНИИ
29 августа вернулся в Даллас, передал ранее незафиксированные изменения в Master и попытался выполнить синхронизацию.
Получено «Произошла ошибка при отправке в удаленный репозиторий: отклонено Обновления были отклонены, поскольку кончик вашей текущей ветки находится за своим удаленным аналогом. Интегрируйте удаленные изменения перед повторной отправкой».
попытался извлечь) (возможно, получить?) из источника и получил дополнительную ошибку: «Операция извлечения не удалась».
совершить 310 ср. 29 августа 15:05:47 2018 -0500 НЕ В ПРОИСХОЖДЕНИИ (родитель aa8)
26 AUG отправился в Остин, клонировал репо, внес изменения в мастер, зафиксировал и синхронизировал с мастером в источнике
совершать 8af Вт 28 августа 12:56 17:56 (UTC) НЕ В Далласе Локальный репо (родитель aa8)
ПОСЛЕДНЯЯ успешная синхронизация в Team Explorer
совершить aa8 чт 16 августа 15:10:06 2018 -0500 в Далласе и в происхождении
commit a8b Вт. 14 августа 10:32:43 2018 -0500