我无法使用笔记本电脑,只能将合并的分支(推送到主计算机)推入笔记本电脑,却忘记了更新分支本身。
所以我尝试了以下小实验:
$ 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)。
从现有提交到分支重新创建提交(不访问reflog)的正确命令是什么?
对于我的特定需求,我可以检查一下我是否具有以下信息:
$ 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
答案 0 :(得分:2)
您永远无法完全重新创建完全相同的提交哈希。尽管哈希值不同,但内容可以相同。
以下信息均用于确定提交哈希:
(请参阅this answer)。