それは現在、リモートで枝の先端にコミットにタグ付けすることは可能ですが、ありません(私の知る限り)とギフトの磁器や配管。リモートgit receive-pack
に直接話す必要があります。
は、ここで私たちがやりたい
dulwichを使用して、いくつかのPythonの:
#!/usr/bin/env python
from dulwich.client import get_transport_and_path
import sys
def tag_remote_branch(repo_url, branch, tag):
client, path = get_transport_and_path(repo_url)
def determine_wants(refs):
tag_ref_name = 'refs/tags/%s' % tag
branch_ref_name = 'refs/heads/%s' % branch
# try not to overwrite an existing tag
if tag_ref_name in refs:
assert refs[tag_ref_name] == refs[branch_ref_name]
refs[tag_ref_name] = refs[branch_ref_name]
return refs
# We know the other end already has the object referred to by our tag, so
# our pack should contain nothing.
def generate_pack_contents(have, want):
return []
client.send_pack(path, determine_wants, generate_pack_contents)
if __name__ == '__main__':
repo_url, branch, tag = sys.argv[1:]
tag_remote_branch(repo_url, branch, tag)
このリポジトリにはどのようにアクセスしますか?たとえば、これが裸のリポジトリでSSHを使ってアクセスする場合、SSHでタグコマンドを実行すればいいと思います。 – Legolas
@Legolasいいえ、裸のレポでコマンドを実行することはできません。 –
裸のリポジトリで 'git tag alpha master'を実行しようとしましたが、うまくいきました。 – Legolas