2

長い間gitを使っていたのに、自分では答えられないという奇妙な質問に直面しました。

gitプロセスでは、本番環境に対応していると見なされるときに、単一のファイルにタグを付ける必要があります。他のファイルも「準備完了」になると、「タグ付け」する必要があります。最初にタグ付けされたファイルはその瞬間まで変更される可能性がありますが、それでもすべての「準備完了」ファイルを一度に取得できる必要があります。

コミットで単一のファイルにタグを付けることができれば機能しますが、そうではありません。

手がかり、回避策、これを実現する方法を教えてください。単一の基準でリンクされた複数のコミットで複数のファイルを取得しますか?

4

3 に答える 3

1

gitの柔軟性に感謝し、答えを見つけました!このソリューションには独自の欠点がありますが、機能します。

アイデアは単純です。すべてのproduction-ready変更は別々のブランチで追跡され、ファイルは開発ブランチとのマージではなく、必要なファイルのみをチェックアウトすることでそこに表示されます。

すべての先史時代を失っていますが、一度にすべてのファイルproduction-readyを取得するためのクリーンでシンプルな方法を受け取ります。production-ready

pre-production私たちの弁護では、この履歴の問題は、ファイルがチェックアウトされたコミットのブランチIDのコミットメッセージに追加することで平準化できると付け加えるかもしれません。また、必要な一連のコマンドを実行する単純なgitコマンドを実行することで、プロセスを簡素化することもできます。

これらのコマンドは次のとおりです。

git checkout pre-production

pre-productionブランチに切り替えます。

git checkout development file/name

developmentブランチから必要なファイルをチェックアウトします。

git commit -m "Moving file/name to pre-production from commit id 5364afb23"

ムーブメントをコミットしてラベルを付けます。

于 2013-02-24T11:10:12.667 に答える
1

そのような目的でファイルにタグを付けるには、ファイルがチェックインされているブランチが変更されないことが必要です。たとえば、ブランチの一部のバージョンがタグ付けされ、ブランチがリベースされた場合、タグは引き続き「古い」バージョンを指し、フォローしません。 「新しい」ブランチに。したがって、「ファイルがまだ配信されていない」シナリオの場合、タグ付けはおそらくうまく機能しません。

私がよりうまくいくと思うのは、特別なproduction_readyブランチを作成してから、そのブランチに本番環境で準備ができていると思う変更をチェリーピックすることです。そうすれば、実際の「本番環境への配信」が発生するときに、production_readyブランチをマージするだけです。

于 2013-02-21T17:00:43.547 に答える
1

あなたの要求に従って、

git を使用してソフトウェアの開発を行います。新しい変更をインデックスに追加し、必要に応じてリポジトリにコミットする通常git add .のプロセスを実行します。git commit -m "commit message"

一日の終わりには、上層部を喜ばせ、現在のすべての作業を他の CM システムにチェックインする必要があります。問題は、このシステムでは、ファイルの「セット」ではなく、すべてのファイルにタグ付け/ラベル付けする必要があることです。チェックインの直後に古い CM システムにある製品のすべてのファイルに、対応する git commit の SHAID ハッシュに一致するタグを付けることで、この問題を処理できます ( と入力すると到達できますgit log)。

これにより、特定の git コミットに対応する一連のファイルを 1 対 1 で記録できます。

于 2013-02-22T11:06:30.587 に答える