70

我有一个从 agliq/Anagen分叉的 repo iontech/ Anagen

我对我的 fork 做了一些提交并添加了一个标签。然后我打开了一个拉取请求。此拉取请求仅包括我的提交。

如何将我创建的标签包含到拉取请求中?

4

2 回答 2

84

如何将我创建的标签包含到拉取请求中?

你不能。拉取请求不包含标签。拉取请求只是指向存储库中的提交线程(分支)的指针,您建议将另一个存储库合并。

如果您想通知上游存储库应该创建标签,也许您应该在拉取请求中添加注释来解释这一点。

于 2012-09-05T10:21:43.947 回答
24

这是一篇旧帖子,但我在寻找类似的东西时遇到了这个问题,我会给你一个更完整的解释。

git 中的标签和分支称为引用或“refs”。您可以随时将 ref 移动到新的提交,因此如果您及时向后移动,则会创建松散的提交。更糟糕的是,这些提交可能会随着时间的流逝而丢失,因为它们在虚空中等待。

当您提交 PR 时,您实际上要求某人将您的分支名称(您的 ref)引用的存储库中的提交列表与也由 ref(基本分支)标识的远程存储库中的提交列表合并。如果您的存储库中不存在提交(您不是最新的)并且您的某些提交实际上涉及您没有的代码位置,则需要进行合并以解决冲突. 如果您不是最新的,但您的代码没有触及从那时起修改的内容,则不会发生冲突。

最后,当东西被合并到另一个存储库时,它通常会被压缩以保存提交历史,从而创建一个全新的提交哈希和一个新的提交树结构。

采取我到目前为止解释的内容,标签只是引用,就像分支一样。如果您在作为分支引用的两个存储库引用之间打开 PR,则无法创建标签,因为您最终没有创建任何新的 refs,您只是要求某人将您的提交提交到他的代码中并移动合并所有内容后,基本分支会转发到新提交!

最好也是唯一的方法真的变成了要求维护者通过标记是否是他们这样做的方式来发布他的代码的发布,但这是他们的自由裁量权!

于 2017-08-07T18:16:33.787 回答