git直接推送到URL而不需要遥控器?

时间:2017-09-02 13:57:30

标签: git

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

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

快速检查拉取请求非常方便。

现在我想知道是否有可能为推送做同样的事情(假设我有所需的存储库访问权限)。我尝试了以下但是它不起作用:

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

我知道我可以通过git remote add添加网址,然后推送到那个名为remote的网址,但是为一次性推送创建配置似乎有些过分。我觉得应该可以,但我根本无法弄清楚正确的语法,所有的例子总是使用命名的遥控器。

2 个答案:

答案 0 :(得分:4)

根据push的git文档,可以将存储库指定为有效的git 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/

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

答案 1 :(得分:2)

当然可以推送到远程分支,但是您可能需要指定本地分支名称以及使用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