Просмотр предыдущих версий файла в git (сжатые коммиты) - PullRequest
1 голос
/ 06 июня 2019

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

Вот как выглядит моя история коммитов:

Date: <date1>
    commit 3  

Date: <date2>
    commit 2  
    commit 1

(я раздавил коммит 1 в коммит 2.)

Как сказано в верхнем ответе на вопрос, связанный выше, я сделал git show HEAD~2: file.x, но это показывает мне файл до коммита 1, а выполнение git show HEAD~1: file.x показывает мне файл после коммита 2.

Как просмотреть файл после коммита 1, но до коммита 2?

1 Ответ

0 голосов
/ 06 июня 2019

Если сквош произошел недавно, вы можете получить исходные коммиты 1 и 2 в reflog соответствующей ветки.

git reflog

, которая выводит список записей этой формы:

<commitHash> (optional decoration, as in, branches pointing here) <ref>: <operation>: <details>

Там вы должны найти свою операцию перебазирования в последних.Создайте временную ветвь непосредственно перед этой точкой:

git checkout -b temp HEAD@{n+1}

, где n - соответствующая ссылка, которую вы заметили.

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

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

...