git直接推送到URL而不需要远程?

xeufq47z  于 2022-12-02  发布在  Git
关注(0)|答案(3)|浏览(207)

我知道我可以使用URL直接从远程仓库拉到我当前的分支,而不必像下面这样将仓库添加为远程仓库:

git pull git://github.com/them/repository.git theirbranch

这对于快速 checkout 拉式请求非常方便。
现在我想知道的是,是否有可能对推送做同样的操作(假设我有所需的仓库访问权限)。我尝试了以下方法,但它不起作用:

git push git://github.com/them/repository.git theirbranch

我知道我可以通过git remote add添加URL,然后推送到指定的远程对象,但是为一次性推送创建一个配置似乎有点过头了。我觉得这应该是可能的,但我只是无法找出正确的语法,所有的示例都使用指定的远程对象。

at0kjp5o

at0kjp5o1#

当然可以推送到远程分支,但是您可能需要指定本地分支名称,并使用HTTP URI来执行此操作。
假设您维护一个项目,并希望在合并之前对提取请求进行一些调整。您可以从提取功能分支开始:

$ git checkout -b username-featurename master
$ git pull git://github.com/username/projectname.git featurename

在进行更改后,您可以直接推送到原始功能分支,假设所有者已经授予您适当的权限。您可能只被允许使用HTTP URI执行此操作,并且还必须在refspec中指定您的本地分支名称:

$ git push https://github.com/username/projectname.git username-featurename:featurename
m1m5dgzv

m1m5dgzv2#

根据推送的git文档,仓库可以被指定为有效的git url或对已保存的remote的引用。
这将适用于远程URL:

ssh://[user@]host.xz[:port]/path/to/repo.git/
git://host.xz[:port]/path/to/repo.git/
http[s]://host.xz[:port]/path/to/repo.git/
ftp[s]://host.xz[:port]/path/to/repo.git/

或本地回购协议:

/path/to/repo.git/
file:///path/to/repo.git/

并支持所有常见的装备(用户名,端口)。

xn1cxnb4

xn1cxnb43#

您可以:

git push --set-upstream*(您要推送到此处的URL)**(您要推送到此处的分支)*

那应该行

相关问题