Воссоздать git коммит после слияния ветки с веткой - PullRequest
0 голосов
/ 25 февраля 2020

Я потерял доступ к ноутбуку, где я выдвинул только объединенную ветвь (на мастер), но забыл обновить саму ветвь.

Поэтому я попробовал следующий небольшой эксперимент:

$ mkdir g
$ cd g
$ git init
$ echo 1 >> README.md
$ git add README.md 
$ git commit -m"First commit" -- README.md 
$ git checkout -b b1
$ echo 2 >> README.md
$ git commit -m"Second commit" -- README.md 
$ git checkout master
$ git merge b1
$ git checkout b1
$ git reset --hard HEAD~
$ git cherry-pick 365163b00fee76cdc6d3e34b139b0ed42b184437

Вышеприведенное не создает заново коммит 365163b00fee76cdc6d3e34b139b0ed42b184437 идентично, но создает другой (d6debaa050c5).

Какая команда является правильной для воссоздания коммита из существующего коммита в ветку (нет доступа к журналу рефлогов)?


Для моей конкретной потребности c я могу проверить, что У меня есть следующая информация:

$ git show --pretty=fuller 365163b00fee76cdc6d3e34b139b0ed42b184437
commit 365163b00fee76cdc6d3e34b139b0ed42b184437
Author:     Mathieu Malaterre <example@example.org>
AuthorDate: Tue Feb 25 14:02:06 2020 +0100
Commit:     Mathieu Malaterre <example@example.org>
CommitDate: Tue Feb 25 14:02:06 2020 +0100

    Second commit

diff --git a/README.md b/README.md
index d00491fd7e5b..1191247b6d9a 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
 1
+2
  • Ветвь b1 не изменилась, поэтому родительский sha1 правильный,
  • информация о фиксации верна (сообщение, автор, коммиттер и метка времени) .

1 Ответ

2 голосов
/ 25 февраля 2020

вы никогда не сможете воссоздать точно такой же коммит ha sh. Содержимое может быть одинаковым, хотя га sh отличается.

Следующая информация используется для определения фиксации га sh:

  • Исходное дерево фиксации (который распространяется на все поддеревья и BLOB-объекты)
  • Родительский коммит sha1
  • Информация об авторе (с отметкой времени)
  • Информация о коммитере (верно, они разные !, также с отметкой времени)
  • Сообщение о фиксации

(см. этот ответ ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...