Git 复制提交而不检出或变基?

问题描述 投票:0回答:1

我目前正在提交 123456 和分支

foo
。我想向分支
bar
添加一个新的提交,其中包含 123456 的确切内容(未重新设置基础,只是从同一快照创建,因此差异将是任何内容)。

我可以像这样完成这个:

$ git checkout bar
$ git reset foo
$ git commit -am '...'
$ git checkout foo

我有两个问题:

  • 有没有一种方法可以做到这一点而不需要离开
    foo
    或需要更改我的工作树?
  • 有没有一种干净的方法可以从 123456 复制提交消息? (我显然可以手动完成,但通过本机 git 命令自动完成会很好)
git branch git-branch rebase
1个回答
0
投票

很容易做

git checkout bar
git restore --worktree --staged --source=foo -- .
git commit -m "Here we make it just like 1234546 (or foo back when I created this commit)"

您可以使用

git commit -C 123456
将该提交的信息用于新提交但是这会产生误导,因为您正在创建单个提交并且您忽略了
foo..bar
中的所有历史记录....这有意义吗在一次提交中做到这一点?好吧,也许它适合您的用例但是我不认为它适用于每个人。

当然,可以在不更改工作树的情况下完成......通过使用超级第二工作树。所以,请检查

git help worktree

© www.soinside.com 2019 - 2024. All rights reserved.