2017-01-24 2 views
0

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

Для удаленной и автоматизированной машины, которая имеет клонированное git-репо, которое при каждом нажатии на кнопку «pull» нажимает на интерфейс, возможно ли реализовать функциональность возврата к предыдущей фиксации?

Я могу легко добавить кнопку, но я не уверен, как это сделать. Я имею в виду, мне нужно знать, имеет ли git команду, которая дает вам предыдущую фиксацию ее ветви, а затем команду, которая изменяет статус локального репо на предыдущую фиксацию.

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

Возможно ли это?

+2

Возможный дубликат [Как отменить мерзавец тянуть?] (HTTP: // stackoverflow.com/questions/5815448/how-to-undo-a-git-pull) –

ответ

0

Наконец я решил его с помощью этого:

git reset --hard $SHA1 

$ SHA1 является идентификатор ревизии, которую вы хотите получить.

Позже, когда вы хотите быть в курсе еще раз со всеми фиксаций репо, вам просто нужно сделать:

git pull 
+0

Поскольку вы, кажется, думаете, что 'HEAD @ {1}' не соответствует вашим потребностям, но указав какой-то '$ SHA1', не могли бы вы объяснить, как вы знаете идентификатор предыдущего коммита и как это отличается от использования reflog? –

+0

Я передам его с полем, потому что HEAD @ {1} дает ошибку: «фатальный: журнал для« хозяина »имеет только 1 запись». – NullPointerException

+0

После небольшого исследования я не уверен точно, что такое reflog и как его безопасно использовать – NullPointerException

0

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

git reset --hard [email protected]{1} 
+0

У этой команды есть какие-то проблемы? почему вы голосуете? – NullPointerException

+0

не может найти информацию об этой команде с ее параметрами, которые вы мне рассказывали в google – NullPointerException

+0

Не знаю, почему кто-то отказал в этом. Команда выполняет именно то, что я описал. Возможно, downvoter прочитал «Revert» в вашем вопросе, и я не дал вам команду вернуться, но сбросить, но сброс - это то, что вы имели в виду. – Vampire

Смежные вопросы