web-dev-qa-db-ja.com

git-ブランチエイリアス?

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

(モデルのテストが完了すると、ブランチ2012.05.01はマスターにマージされます)

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

Gitで同様のことをするそのような方法はありますか?

編集:人々はここで混乱しています。

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

こちらをご覧ください: https://stackoverflow.com/a/549949/60672

Gregが提案したようにマスターブランチトランクの名前を変更するか、マスターブランチへのシンボリック参照であるトランクを作成して、gitユーザーとsvnユーザーの両方が慣れ親しんでいる「メイン」ブランチを持つようにすることもできます。

git symbolic-ref refs/heads/trunk refs/heads/master

トランクはファーストクラスの市民ではないことに注意してください。トランクをチェックアウトしてgitステータスを実行すると、実際にはマスターになりますが、ブランチ名を使用するすべての場所(log、mergeなど)でtrunkコマンドを使用できます。

46
user606723

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

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

git checkout $model

この議論の残りの部分は、このディスカッションでどこから来たのかをここに残しておきます。

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

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

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

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

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

3
Adam Dymitruk

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

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

0
iMysak