git - 如何使下一个 git 提交准确地代表另一个提交的项目状态而不合并?
问题描述
我有两个 git 分支:Alpha 和 Beta,我需要在分支 Alpha 上创建下一个提交,因此它的项目状态将与分支 Beta 上的完全相同。没有合并。
我知道每个 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 的提示相同,其父级是 Alpha 的提示。
git update-ref
使 Alpha 指向新的提交。
推荐阅读
- node.js - 如何使用 multer gridfs 存储删除文件?
- java - 如何使用appium在具有recyclerview的android本机应用程序中滚动屏幕
- java - 数组元素导致] java 中的预期错误
- javascript - 如何安全地保存从 auth0 登录收到的 JWT 令牌(nodejs express)
- reactjs - 有没有办法使用一些Javascript将Auth0登录按钮添加到导航栏
- swiftui - SwiftUI 动态弹出带有链接列表的 NavigationLink
- java - 如何让 Eclipse 浏览器打开 servlet 的指定 @WebServlet URL
- javascript - 目标只点击锚点而不是兄弟姐妹
- javascript - 如何使用 javascript 和 HTML 处理此对象加载问题
- python - Quadpy Integration with multiple function Arguments