在发布分支中隐藏git提交
我有一个git项目,有很多提交 a-b-c-d-e-f-g-h-i 我想把它推到一个发布分支,在那里只能看到标记的提交。e、 g a-d-h 我尝试过使用rebase和壁球合并,但似乎没有任何效果。 我读到,一旦提交被推送到git服务器上,就不可能实现rebase,这可能是我的问题吗。 有人有好的提示吗 编辑 我找到了一个有点难看但有用的解决方案。 我创建了一个发布存储库和一个小脚本,用于签出发布提交并将其复制到发布存储库并在那里提交在发布分支中隐藏git提交,git,Git,我有一个git项目,有很多提交 a-b-c-d-e-f-g-h-i 我想把它推到一个发布分支,在那里只能看到标记的提交。e、 g a-d-h 我尝试过使用rebase和壁球合并,但似乎没有任何效果。 我读到,一旦提交被推送到git服务器上,就不可能实现rebase,这可能是我的问题吗。 有人有好的提示吗 编辑 我找到了一个有点难看但有用的解决方案。 我创建了一个发布存储库和一个小脚本,用于签出发布提交并将其复制到发布存储库并在那里提交 感谢您的回复,说这实际上是不可能的。假设您希望看到的是一个只
感谢您的回复,说这实际上是不可能的。假设您希望看到的是一个只包含少量修订的直分支,并且与您用于开发的分支的历史无关,您可以通过两种方式来实现:
- 通过使用提交树。使用
可以创建修订,指定父(或多个父)和树(该修订上的文件内容)。 您可以从您喜欢的任何修订中指定树,并且可以提供希望新修订具有的父级。这样,您就可以“跳过”所有分支历史记录,如果这是您想要的。不漂亮,但可能。如果要使用修订版G的树创建修订版M,请将A作为父级:git commit tree
- 获取修订版G的树对象(git cat file-pg)
- 创建修订对象:git commit tree-pa-m“这是对修订的注释”tree-object-for-G-from-git-cat-file
- 将分支指向此新修订版
- 瞧
- 通过签出您想要的树并提交。那么,假设您在修订版A上签出:
- git签出A
- git checkout G--.#在修订版G上检查项目的全部内容。。。不确定文件是否将被删除/重命名。。。小心
- git commit-m“修订注释”
- 在此修订版上创建一个新分支,您就完成了