9

我有一个带有两个分支的 git 存储库;一种用于制造/测试的代码,另一种是实际的生产固件(它们几乎相同)。现在是时候剪下一个版本发送给制造商了,所以我自然想在两个分支上都放一些合适的标签。

但是,似乎 git 不允许我在两个分支上放置相同的标签名称。如果我尝试单独标记分支,它会告诉我标记已经存在,当我去标记秒分支时。我尝试将两个提交传递给 git tag,但它也不喜欢那样。我不一定需要始终以同步方式标记两个分支,但我不想为了避免名称冲突而在标签中添加随机字符。

有什么方法可以做我想做的事,还是我想做错事?


一个分支是制造商在设备上放置的代码,以测试它是否正确组装。另一个分支是产品中附带的代码。每个版本实际上并不是两个分支。这是该产品的第一个版本,因此是两个分支的第一个版本,所以我尝试用“release-1.0”标记两个分支。

4

3 回答 3

18

你想做错事。标记的目的是明确标识特定的修订。如果我是你,我会只标记生产分支,不标记测试分支。

但是,每个版本都有两个独立的分支,这很奇怪。为什么是这样?答案可能有助于描述更好的解决方案。


由于标签实际上并不应该指向相同的修订版,而是(可能)不同的修订版,因此标签应该是这样的:

  • appname-1.0-manufacturing
  • appname-1.0-production

这样,您将知道每个标签属于哪个版本,以及代码在哪里结束。

于 2009-06-09T23:01:44.013 回答
5

一个标签只是给一个单一的提交一个名字,所以不,可能没有办法做你想做的事。

我很好奇想要的结果是什么。我的意思是,标签的一个目的是成为您以后可以签出的名称。因此,如果您git checkout在一个引用两个分支的标签上.. 会发生什么?

于 2009-06-09T23:03:52.310 回答
2

迟到了,但另一种选择是合并两个分支,因此在任何时候提交都包含测试代码和生产代码的状态,假设它们可以共存而没有冲突(在这种情况下归结为这种合并有多难是否值得尝试)。这也有助于避免您意外标记错误分支的情况,当您标记测试分支和生产分支时,可能会发生这种情况。

于 2009-06-15T13:14:57.703 回答