Есть ли способ, чтобы вернуться и отменить команду git тянуть, так что мой источник/РЕПО придет в прежнее состояние, что было перед этим ГИТ тянуть ? Я хочу сделать это, потому что он слил некоторые файлы, которые я не'т хотите, но только объединить другие оставшиеся файлы. Итак, я хочу получить эти файлы обратно, это возможно ? Спасибо :)
Редактировать я хочу отменить ГИТ слияния для разъяснения. Увидев ответы, я сделал это
git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...
Теперь, что я должен делать ? Делаешь ГИТ сброс --жесткий
это нормально ? Я не'т хочу снова облажаться, поэтому прошу подробные инструкции ?
Запустить git тянуть
выполняет следующие задачи, в порядке:
ГИТ выборки
ГИТ слияния
Слияние шаг сочетает в себе ветви, которые были настроены, чтобы быть объединены в свой конфиг. Вы хотите отменить объединения шаг, но, вероятно, не получить (не'т сделать много смысла и должны'т быть необходимости).
Чтобы отменить объединения, использую ГИТ сброс --жесткий сброс локального репозитория в предыдущее состояние; использовать на Git reflog, чтобы найти ша-1 в предыдущее состояние, а затем сбросить его.
Предупреждение
Команды, перечисленные в этом разделе, удалить все незафиксированные изменения, что может привести к потере работы:
git reset --hard
Кроме того, возврат к определенной точке во времени, например:
git reset --hard master@{"10 minutes ago"}
Так же, как jkp'ы ответ, но здесь'с полной командой:
git reset --hard a0d3fe6
где a0d3fe6 найдено делаешь
git reflog
и глядя на точку, в которой вы хотите отменить.
Более современным способом отмены слияния:
git merge --abort
И немного старых путь:
git reset --merge
Старый способ, описанный в предыдущем ответе (предупреждение: будет сбросить все локальные изменения):
git reset --hard
Но на самом деле, стоит заметить, что Git для слияния --аборт-это только эквивалентно
ГИТ сброс --слиянияучитывая, что
MERGE_HEAD` присутствует. Об этом можно прочесть в ГИТ справки для команды merge.
git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.
После неудачного слияния, когда нет MERGE_HEAD
, неудавшегося слияния может быть отменено с ГИТ сброс --слияния
но не обязательно Git для слияния --аборт
, так они не только старый и новый синтаксис за одно и то же. Вот почему я найти ГИТ сброс --слияния
, чтобы быть намного более полезным в повседневной работе.
он работает
первое использование: в Git reflog
найти свой ша ваше состояние превиус и сделать (начальник@{1} пример)
git reset --hard HEAD@{1}
Если у вас есть гифок (попробуйте запустить "и гифок-все из своего команду git "новая линия"), это's простое. Просто запустите его, выберите commit вы хотите отката к (правой кнопкой мыши) и выберите "и сбрасывать ветку master, чтобы здесь". Если у вас нет неподтвержденными изменениям, выбрал "жесткий" и вариант.
Предположим, $обязательства
был последний идентификатор коммита, до выполнения ГИТ тянуть
.
То, что вам нужно, чтобы отменить последний рывок
ГИТ сброс --жесткий $обязательства
.
Говоря о тянуть, я хочу поделиться интересным трюком,
ГИТ тянуть --перебазировать
Эта команда-самая полезная команда в моей ГИТ жизни, который спас много времени.
Перед отправкой вновь совершить с сервером, попробуйте эту команду, и он будет автоматически синхронизировать последние изменения сервере (с собой принести + слияние) и место фиксации вверху в журнале git. Не нужно беспокоиться о ручной тяги/слияния.
Найти детали на: http://gitolite.com/git-pull--rebase
вы можете сделать ГИТ сброс --жесткий ORIG_HEAD
так что "тянуть" или "слияние" и установить ORIG_HEAD для текущего состояния перед выполнением этих действий.
Это самый простой способ возврата вы тянете изменения.
git reset --hard 9573e3e0
Где 9573e3e0-ваш {совершают ИД}
Если не сольют, которая является самой распространенной причиной, по которой хотят отменить ГИТ тянуть
, работает ГИТ сброс --слияния
делает то, что и следовало ожидать: сохранить выбранные файлы, но отменить слияние, что ГИТ тянуть
пытались объединить. Затем можно решать, что делать без помех, что Git для слияния
иногда создает. И она не нуждается в один, чтобы найти нужный идентификатор коммита, которых--трудно, упомянутых в любой другой ответа не требует.