git remote --v显示远程信息
origin https://github.com/test/testing-iOS.git (fetch)
origin https://github.com/test/testing-iOS.git (push)
Run Code Online (Sandbox Code Playgroud)
它表明fetch和push都使用相同的远程URL.
题:
什么时候(如果有的话)fetch和push的远程URL会有所不同?
您可以使用哪些命令来更改远程URL以便单独获取或推送?
Von*_*onC 22
是(使用不同的遥控器),这就是为什么Git 2.5引入了新的ref速记@{push}.
请参阅" 查看未推送的Git提交 "
您可以使用哪些命令来更改远程URL以便单独获取或推送?
你需要一个单独的遥控器:
git remote add myfork /url/for/my/fork
git config remote.pushdefault myfork
Run Code Online (Sandbox Code Playgroud)
GitHub博客文章" 改进了对三角工作流程的支持 "说明了以下内容的使用@{push}:
查看自上次推送以来您添加到当前分支的提交:
git clone https://github.com/YOUR-USERNAME/atom
cd atom
git config remote.pushdefault origin
git config push.default current
Run Code Online (Sandbox Code Playgroud)
remote.pushdefault指定其中推(向哪个远程回购).push.default指定什么推(什么的Refspec),当明确给出任何的Refspec.current在后一种情况下,意味着"推送当前分支以更新接收端具有相同名称的分支". 以下分支将从一个URL获取,推送到另一个URL:
git remote add upstream https://github.com/atom/atom
git fetch upstream
git checkout -b whizbang upstream/master
Run Code Online (Sandbox Code Playgroud)
(这里的whizbang分支跟踪upstream/master,但推动origin/whizbang)
git log @{push}..
Run Code Online (Sandbox Code Playgroud)
这使用新的
@{push}表示法,表示当前分支将被git push推送到的远程跟踪分支的当前值,即origin/whizbang.
您还可以使用表示法引用任意分支的推送目标whizbang@{push}.
小智 10
从文档中,Fetch和Push URL应该相同.
http://git-scm.com/docs/git-remote
用于设置Push和fetch urls的命令
'git remote set-url' [--push] <name> <newurl> [<oldurl>]
Run Code Online (Sandbox Code Playgroud)
请注意,推送URL和提取URL即使可以设置不同,仍必须引用相同的位置.您推送到推送URL的内容应该是您从提取URL中立即获取的内容.如果您尝试从一个地方(例如您的上游)获取并推送到另一个地方(例如您的发布存储库),请使用两个单独的遥控器.