git - 如何使下一个 git 提交准确地表示另一个提交的项目状态而无需 merge ?

标签 git

我有两个 git 分支:Alpha 和 Beta,我需要在 Alpha 分支上创建下一个提交,这样它的项目状态就会与在 Beta 分支上完全一样。没有 merge 。

我知道每个 git 提交——在逻辑层面上——都是一个完整且不可变的项目状态 + 一些元数据。所以我只需要分支 Alpha 拥有与 Beta 一样的文件状态。

这将是另一次提交(具有不同的散列),并且一个分支提示不会引用另一个。

最佳答案

c=$(git commit-tree Beta^{tree} -p Alpha -m 'foo')
test $c && git update-ref refs/heads/Alpha $c

git commit-tree 创建一个新提交,其树与 Beta 的 tip 相同,其父级为 Alpha 的 tip。

git update-ref 让 Alpha 指向新的提交。

关于git - 如何使下一个 git 提交准确地表示另一个提交的项目状态而无需 merge ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51905998/

相关文章:

Gitorious 分支权限

git push 在 gitlab 中失败

git - 使用现有更改创建新分支

git - 如何在不删除文件的情况下将文件添加到我的 .gitignore 中?

git - cap deploy 突然说身份验证失败

git - 仅 merge git 分支中的增量更改

git - 回滚到 Mercurial 中的旧版本(如 git reset)

Git:将更改保留在本地存储库中,并在添加到 .gitignore 后从索引中删除

javascript - 指向 Bower 上的本地 git 包,具有​​特定分支

git - 如何用子模块的内容替换 git 子模块?