Мой уровень в отношении git - beginner: я в основном могу коммитить, тянуть, толкать и переключать / создавать ветки.

Мой текущий коммит 222222222 а предыдущий в той же ветке был 111111111 .

Я хочу получить ветку в том виде, в котором она была в коммите 111111111 , скопировать содержащиеся в ней файлы и вернуться к 222222222 чтобы я мог продолжить свою работу на основе этого коммита. Возврат, кажется, то, что мне нужно.

Используя revert, я могу получить следующее (revert также фиксирует, если я правильно понимаю):

  1. совершить 111111111
  2. совершить 222222222
  3. вернуться к 111111111 (он также фиксирует 111111111 снова)
  4. вернуться к 222222222 (он также фиксирует 222222222 снова)

Но я не хочу, чтобы возвращение появилось в моей истории.

Так как же я могу на самом деле сделать снимок моего хранилища в момент моего коммита 111111111?

1 ответ1

2

В Git коммиты сами являются снимками репозитория. Вам просто нужно переключаться между ними.


Нет, git revert - это не то, что вам нужно, потому что он специально создан для того, чтобы возвраты появлялись в истории. Описанные действия - это то, что делает git checkout .

Чтобы остаться на 22222 но скопируйте некоторые или все файлы из старого коммита:

git checkout 11111 file1.c file2.txt dir1
[or]
git checkout 11111 .

(как . означает "текущий каталог")

Чтобы временно переключить весь репозиторий на старый коммит, вернитесь назад:

git checkout 11111
[copy files]
git checkout master

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