2

Я только начал использовать Git на Windows, и у меня есть маленький вопрос. Когда я говорю git commit вместе с сообщением, я понимаю, что git фиксирует файл. Но где именно он хранит зафиксированный файл?

Допустим, я внес некоторые изменения и хочу вернуться к своему третьему коммиту с помощью Git GUI. Как именно я это делаю?

2 ответа2

12

Вышеприведенный ответ не совсем корректен - git revert <ID> не устанавливает ваш репозиторий на этот коммит - git revert <ID> создает новый коммит, который отменяет изменения, внесенные коммитом <ID> . Это более или менее способ «отменить» коммит и сохранить его в своей истории как новый коммит.

Если вы хотите установить в своей ветке состояние определенного коммита (как подразумевается в OP), вы можете использовать git reset <commit> или git reset --hard <commit> . Первый параметр обновляет только INDEX, оставляя файлы в вашем рабочем каталоге без изменений, как будто вы внесли изменения, но еще не зафиксировали их. С параметром --hard он заменяет содержимое вашего рабочего каталога тем, что было на <commit> .

Замечание о том, что git reset изменит историю - если я сделал несколько коммитов, а затем перешел на первый коммит, последующие коммиты больше не будут в истории коммитов. Это может вызвать некоторые серьезные головные боли, если какой-либо из этих потерянных коммитов был перенесен в публичный репозиторий. Убедитесь, что вы используете его только для того, чтобы избавиться от коммитов, которые не были перенесены в другой репозиторий!

5

Git commit только сохраняет его на сцене, которая находится локально на вашем компьютере. Используйте Push, чтобы обновить его до удаленного сервера (например, github).

Используйте git revert <ID> чтобы вернуться к предыдущей фиксации. Каждый коммит имеет идентификационный код.

Смотрите здесь для более подробной информации о возврате

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .