Сбросить один файл из многих уже вставленных в git - PullRequest
0 голосов
/ 10 апреля 2019

ALL,

Я пытаюсь разрешить следующую ситуацию.

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

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

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

Итак, после того как я сделаю:

git checkout <last_known_commit>

что мне делать, чтобы просто ввести код сурэ?

А может я могу сбросить файл с мастера?

Пожалуйста, помогите.

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Я пока не могу комментировать, поэтому вот мои мысли: Как обычно в git, у вас есть много вариантов решения проблемы. Быстрое исправление будет сбросить / вернуть ваш файл и нажать его. Поскольку вы уже добавили свой код, он будет виден в репозитории для других, но он будет работать. @Argo представило более элегантное, но более сложное решение.

Примечание для вашего файла Xcode IDE: может иметь смысл вставить эти файлы в соответствующий git ignore , если эти файлы являются индуктивными для каждого разработчика. Я вспоминаю о добавлении некоторых файлов Xcode в прошлом, но не могу вспомнить, какие именно. Я уверен, что вы найдете рекомендации в Интернете.

0 голосов
/ 10 апреля 2019

Вы можете выполнить следующие действия:

  • Извлечь версию, в которой вы сделали последний локальный коммит.

    git checkout <commit id>

  • Затем создайте оттуда ветку

    git checkout -b my-branch

  • сделайтеGit Remote Push этой ветви.Убедитесь, что в ветке присутствуют все ваши локальные изменения на удаленном сервере

  • , теперь выполните git reset hard *

    git reset --hard origin/master

Тада у тебя удаленный мастер обновлен.Теперь выполните объединение, чтобы обновить локальные изменения в мастере

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