0

Bというブランチで作業していて、GITのリモートリポジトリにプッシュしているとします。T1 などのある時点で、T という名前の新しいタグを作成し、ブランチ B でさらにいくつかの変更を行いました。そのため、T2 (つまり現在) の時点で、ブランチはタグよりも数コミット進んでいます。ブランチから選択した新しいファイル (時間 T1 と T2 の間に変更されたファイル) を、リモート リポジトリのタグ T に再度移動したいと考えています。

タグ T をリモートで削除し、ブランチ B から新しいタグを再度作成できることはわかっていますが、ブランチからタグ付けされたすべてのファイルは必要ありません。代わりに、特定のファイル (T1 と T2 の間で変更されたもの) を最新のブランチから既存のタグに移動したいと考えています。

そのようにする方法はありますか?

4

1 に答える 1

0

「ブランチからタグ付けされたすべてのファイルが必要ない」?

git では、タグは特定のコミットを指します (取得したタグのリストについては .git/refs/tags を参照してください。各タグは、タグが関係する SHA-1 を含むファイルです)。

あなたの例では、時刻 T1 に作成されたコミット (C1 と呼びましょう) と、時刻 T2 に作成されたコミット (C2) があります。C1 に「T」のタグを付けました。

C2 をリモート リポジトリにプッシュし、リモート リポジトリのタグを C2 に移動したいのですが、ローカル タグ T を C1 に残しますか?

これは避けるべきだと思います (同じ名前のタグを付けても、ローカルとリモートで異なるコミットを指していると混乱します)。

したがって、ローカル タグを C2 に移動することをお勧めします (これがブランチ B の現在のヒントであると仮定します):git checkout B; git tag -f T次に、それらの変更をリモート リポジトリにプッシュしますgit push --tags <remote>

もちろん、タグをまったく移動せずに、新しいタグを作成することをお勧めします。または、希望どおりのリポジトリを取得したことを確認するまで、リモート リポジトリにプッシュしないでください。

また、Git ブランチのタグを別のコミットに移動するにはどうすればよいですか?も参照してください。

于 2013-02-26T14:51:32.040 に答える