git fetch <gitserver> <remotetag>:<localtag>
===================================
私はこれをやった。まず、タグ名のスペルを知っていることを確認しました。
git ls-remote --tags gitserver; : or origin, whatever your remote is called
これにより、gitサーバー上のタグのリストから選択できます。元のポスターは彼のタグの名前をすでに知っていたので、この手順は誰にとっても必要ではありません。実際のリストはより長くなりましたが、出力はこのようになりました。
8acb6864d10caa9baf25cc1e4857371efb01f7cd refs/tags/v5.2.2.2
f4ba9d79e3d760f1990c2117187b5010e92e1ea2 refs/tags/v5.2.3.1
8dd05466201b51fcaf4ca85897347d82fcb29518 refs/tags/Fix_109
9b5087090d9077c10ba22d99d5ce90d8a45c50a3 refs/tags/Fix_110
必要なタグを選び、それを取得しました。
git fetch gitserver Fix_110
次に、これをローカルマシンでタグ付けし、タグに同じ名前を付けました。
git tag Fix_110 FETCH_HEAD
私が取り組んでいるプロジェクトは大規模で、すっきりとしたクリーンな環境で開発したいので、他の人が提案するようにリモートリポジトリのクローンを作成したくありませんでした。これは、リポジトリ全体のクローンを作成することを提案するソリューションよりも、「特定のタグをダウンロードする方法を理解しようとしている」という元の質問に近いと思います。(たとえば)DOS 0.1のソースコードを確認したいのに、なぜWindows NTとWindows 8.1のソースコードのコピーが必要なのかわかりません。
他の人が提案したように、私もCHECKOUTを使用したくありませんでした。私はブランチをチェックアウトしてもらい、それに影響を与えたくありませんでした。私が意図したのは、私が欲しいソフトウェアをフェッチして、何かをチェリーピックして開発に追加できるようにすることでした。
タグ付けされたコミットのコピーだけでなく、タグ自体をフェッチする方法がおそらくあります。フェッチしたコミットを自分でタグ付けする必要がありました。編集:ああ、はい、私は今それを見つけました。
git fetch gitserver Fix_110:Fix_110
コロンが表示されている場所は、remote-name:local-nameで、ここではタグ名です。これは、作業ツリーなどを混乱させることなく実行されます。リモートからローカルマシンにデータをコピーするだけなので、独自のコピーを持っています。
git fetch gitserver --dry-run Fix_110:Fix_110
--dry-runオプションを追加すると、必要なコマンドを確認したい場合に、コマンドの実行内容を確認できます。だから私は簡単だと思います
git fetch gitserver remotetag:localtag
本当の答えです。
=
タグに関する個別の注記...新しいものを開始するときは、通常、git initの後に空のリポジトリにタグを付けます。
git rebase -i XXXXX
コミットが必要であり、「最初のソフトウェア変更を含む変更をどのようにリベースするのか」という疑問が生じます。だから私が働き始めると
git init
touch .gitignore
[then add it and commit it, and finally]
git tag EMPTY
つまり、最初の実際の変更の前にコミットを作成し、後で使用します
git rebase -i EMPTY
最初の変更を含むすべての作業をリベースする場合。