たとえば、1.0.0
タグをリモートのmaster
ブランチにプッシュします。
私は今、次のことをしています:
git Push production +1.0.0:master
Pushを強制したいのは、1.0.0
タグ内のコードがリモートリポジトリのmaster
ブランチにプッシュされるだけだからです。
何が間違っていますか?
Git リポジトリがあるサーバーにSSHで接続し、git branch -l
を実行しても、master
ブランチが表示されません。
リモートGitリポジトリ内からgit tag -l
を実行すると、master
がリストされていることがわかります。つまり、次のコマンドを実行したときです。
git Push production 1.0.0:master
実際にタグをプッシュし、という名前のタグを作成しましたmaster
ではなく、新しいブランチ。
基本的に、タグ1.0.0
のcontentsをリモートGitリポジトリのmaster
ブランチにプッシュします。
1.0.0
は注釈付きタグであるため、おそらく失敗しています。次のエラーメッセージが表示された可能性があります。
エラー:ブランチrefs/heads/masterに非コミットオブジェクトを書き込もうとしています
注釈付きタグには、タグ付きコミットオブジェクトを指す独自の種類のオブジェクトがあります。ブランチはタグオブジェクトを有効に指すことができず、オブジェクトのみをコミットできます。オブジェクトをコミットするには、注釈付きタグを「ピール」して戻し、代わりにプッシュする必要があります。
git Push production +1.0.0^{commit}:master
git Push production +1.0.0~0:master # shorthand
この場合にも機能する別の構文がありますが、タグオブジェクトがコミット(または(...を指すタグオブジェクト)を指すタグオブジェクト)以外の何かを指す場合は、少し異なることを意味します。
git Push production +1.0.0^{}:master
これらのタグ剥離構文は git-rev-parse(1) で リビジョンの指定 で説明されています。
git Push --tags production
このようなタグを作成し、GitHubにプッシュします。
git tag -a v1.1 -m "Version 1.1 is waiting for review"
git Push --tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 180 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
To [email protected]:neoneye/triangle_draw.git
* [new tag] v1.1 -> v1.1
単一のタグをプッシュする場合:git Push <reponame> <tagname>
たとえば、git Push production 1.0.0
。タグはブランチにバインドされず、コミットにバインドされます。
タグのコンテンツをmasterブランチに配置する場合は、マシンでローカルに実行します。私はあなたがあなたの地元のマスターブランチで開発を続けたと思います。次に、git Push Origin master
で十分です。