49

starteam から Git への切り替えを検討しています。

現在、スターチームでは、特別な名前の「フローティング ビュー」を使用しています。これらのフローティング ビューは、基本的にエイリアスのように機能します。したがって、チェックアウト元の特定のエイリアスを指定でき、現在モデル テストを行っているブランチを取得できます。

これは Git でどのように行われますか? これは、基本的に私たちのブランチがどのように編成されているかです:

これらはすべて枝です

master (stable view)
   |  - Branch 2012.05.01
   |          | - Project 1
   |          | - Project 2
   |          | - model [floating view / alias to Branch 2012.05.01]
   |
   |  - Branch 2012.07.11   (these would also have various child views for projects)
   |  - Branch 2012.10.17

(モデルのテストが完了Branch 2012.05.01すると、 にマージされます。)master

自動化されたスクリプト (ant) では、モデルのデプロイを実行するために、 というブランチからチェックアウトするだけmodelです。このように、モデル テストを行うブランチを変更するときにスクリプトを変更する必要はありません。また、モデル テストを行うビューを見つけることは、modelブランチが参照するブランチを特定するのと同じくらい簡単です。

Gitで似たようなことをする方法はありますか?

明確にするために:

  1. ブランチのエイリアスが必要です。コミットではなくブランチ。
  2. Branch 2012.05.01は、2012.05.01 に出荷される予定のブランチを意味します。2012.05.01 の瞬間を意味するわけではありません。
  3. への別名が欲しいBranch 2012.05.01Branch 2012.05.01は統合ブランチであり、常に変更されています。しかし、私はそれを として参照したくありません。Branch 2012.05.01として参照したいのですmodel。このようにして、エイリアスを にBranch 2012.07.11変更すると、チェックアウト コード スクリプトを変更せずに、そのブランチから最新のコードを取得できます。
4

3 に答える 3

4

Git はブランチのエイリアスをサポートしていません。

これは、スクリプト内の変数に依存して、model="branch.2012.10.17" などを作成する必要があることを意味します。あなたのスクリプトは次のようになります:

git checkout $model

この議論のどこから来たのかについて、この回答の残りをここに残します。

分岐戦略に関する非常に複雑な議論がここにあります: http://dymitruk.com/blog/2012/02/05/branch-per-feature/

具体的には、統合ブランチとリリース候補ブランチの役割を見てください。これはあなたが探しているものかもしれません。

git は、フォルダーの履歴としてではなく、作業ディレクトリのスナップショットを取得するものと見なしてください。

progit.org/book では、履歴を保存する有向非巡回グラフについて説明しています。すべての参照は、その中のノードを指すものにすぎません。これにより、ワークフローをどのように構築したいかが明確になります。

開始タグを作成します - version2.1. そこから int-version2.1 を作成します (簡潔にするために、日付の代わりに数値を使用します)。どの作業もバージョン 2.1 タグから始めてください。作業を int-version2.1 にマージします。他の人も同じことをします。

于 2013-01-16T19:14:35.320 に答える
0

機能ごとにブランチが必要な場合— Adam Dymitrukの答えは正しいですが、リンクのブランチを保存する必要がある場合—特定の状態(時間に基づく)を変更せずに、gitタグを使用できます。

各製品リリースのストア状態にタグを使用しました。

于 2013-01-16T19:17:32.627 に答える