9

2つのブランチを持つgitリポジトリがあります。1つは製造/テストに使用されるコード用で、もう1つは実際の本番ファームウェアです(これらはほぼ同じです)。今度はリリースをカットしてメーカーに送信するときなので、当然、両方のブランチに適切なタグを付けたいと思います。

しかし、gitでは両方のブランチに同じタグ名を付けることができないようです。ブランチに個別にタグを付けようとすると、秒のブランチにタグを付けるときにタグがすでに存在していることがわかります。gitタグに2つのコミットを渡そうとしましたが、それも気に入らなかった。必ずしもロックステップで2つのブランチにタグを付ける必要はありませんが、名前の衝突を避けるためだけにタグにランダムな文字を追加したくありません。

私がやりたいことをする方法はありますか、それとも間違ったことをしたいですか?


1つのブランチは、デバイスが正しく組み立てられたことをテストするために製造業者がデバイスに配置するコードです。もう1つのブランチは、製品に同梱されているコードです。リリースごとに実際には2つのブランチではありません。これはこの製品の最初のリリースであり、したがって両方のブランチの最初のリリースであるため、両方のブランチに「release-1.0」のタグを付けようとしました。

4

3 に答える 3

18

あなたは間違ったことをしたいのです。タグの目的は、特定のリビジョンを明確に識別することです。私があなたなら、運用ブランチのみにタグを付け、テスト ブランチにはタグを付けないままにします。

ただし、リリースごとに 2 つの独立したブランチがあるのはかなり奇妙です。どうしてこれなの?答えは、より良い解決策を説明するのに役立つ場合があります。


タグは実際には同じリビジョンを指すとは想定されていませんが、(潜在的に) 異なるリビジョンを指しているため、タグは次のようにする必要があります。

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

そうすれば、各タグが属するリリースと、コードがどこにあるのかがわかります。

于 2009-06-09T23:01:44.013 に答える
5

タグは 1 つのコミットに名前を付けるだけなので、やりたいことを実行する方法はおそらくないでしょう。

望ましい結果がどうなるか興味があります。つまり、タグの目的の 1 つは、後でチェックアウトできる名前にすることです。git checkout2 つのブランチを参照するタグを使用すると、どうなりますか?

于 2009-06-09T23:03:52.310 に答える
2

遅れてパーティーに参加しますが、別の方法として 2 つのブランチをマージすることもできます。そのため、競合することなく共存できると仮定して、コミットには常にテスト コードと製品コードの状態が含まれていました (この場合、最終的にはこれを試みる価値があるかどうか、そのマージがどれほど難しいか)。これは、テスト ブランチと本番ブランチにタグを付けたときに同期を維持しようとする場合によく発生する可能性があるように、誤って間違ったブランチにタグを付ける状況を回避するのにも役立ちます。

于 2009-06-15T13:14:57.703 に答える