Почему git удаляет файлы? - PullRequest
0 голосов
/ 16 марта 2020

Я не уверен, может ли это быть причиной, но предисловие. У меня возникла проблема, которую я не могу вытащить из удаленного репо, чтобы решить эту проблему. Я создал новое репо в новой папке git init и установил git remote, после чего вытащил из источника.

О текущей проблеме: другие разработчики слили изменения в ветку master, и теперь мне нужно перенести ее в мою ветку dev. После слияния я узнал, что я получаю все новые файлы после извлечения из основной ветки, но также вижу, что слияние удаляет все новые файлы, которые я создал локально ...

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

Что я делаю не так? Как это решить?

РЕДАКТИРОВАТЬ

Я использую GitExentions в качестве пользовательского интерфейса.

После слияния с мастером было несколько конфликты, которые я решил.

EDIT2 Согласно предложению @RJFalconer в комментариях, лучше сконцентрироваться на решении проблемы с git clone из репозитория источника, но в любом случае я уже внесено много изменений, которых нет в удаленном репо. Поэтому, даже если я исправлю проблему get clone, мне нужно каким-то образом перенести мои изменения из текущего репо.

1 Ответ

0 голосов
/ 16 марта 2020

Краткий ответ: «Он не удаляет файлы». Если вы явно не выполните reset --hard или clean -f, тогда git не удалит неотслеживаемые файлы в вашей локальной кассе

Я создал новое хранилище в новой папке git init и установил git remote

Похоже, вы сделали новый репо и добавили пульт для первого репо. Я думаю, что вы действительно хотели сделать git clone первым репо.

все новые файлы, которые я создал локально

Неясно, что вы подразумеваете под этим, но, похоже, вы добавили несколько файлов в репозиторий (пустой). созданный с git init), возможно, фиксируя их. Предположим, вы их зафиксировали, как если бы вы этого не делали, а их нет на диске, теперь они все равно потеряны.

Моя теория

Возможно, у вас есть 2 дерева в репо; файлы, которые вы добавили, и удаленный мастер с пульта. Вы проверили пульт, и ваши файлы исчезли.

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

Узнайте ваше удаленное имя:
git remote -v
Должно вернуть что-то вроде:
your-remote-name https://my-url/something

Затем выполните ребазинг:
git rebase --onto master --root your-remote-name/master

Если это не сработает go прочитайте о git reflog до go, вернувшись через последние коммиты, чтобы найти тот, который содержит добавленные вами файлы. (Если у вас больше нет копий файлов, которые вы хотите добавить)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...