某个遥控器的Fetch URL和Push URL何时不相同?
例如,当我为远程命名中心运行git remote show central
时,输出如下:
* remote central
Fetch URL: aoberoi@example.com:/home/aoberoi/Repositories/example.git
Push URL: aoberoi@example.com:/home/aoberoi/Repositories/example.git
HEAD branch: master
Remote branch:
master tracked
我只是不明白为什么我会从两个不同的URL中获取和推送,这是什么类型的工作流程?
答案 0 :(得分:11)
我不确定您的意思,因为您的示例包含2个相同的网址,但推送和拉取的网址可能因以下原因而有所不同:
据说,Git maintainer What is the cleverest use of source repository that you have ever seen? commit 697f652(Git 2.3.1 +,2015年第1季度/第2季)确实提到:
尝试使用单个遥控器(例如“原点”)从一个地方(即
upstream
)获取,同时推送到另一个地方(即您的发布点)似乎是一个常见的错误。这将永远不会令人满意,并且很容易理解为什么如果你考虑
refs/remotes/origin/*
在这样一个世界中意味着什么。它从根本上说不能反映现实 如果它遵循您的上游状态,则它与您拥有的不匹配 发表,反之亦然。文档不清楚,“
remote.<nick>.pushURL
”和“remote.<nick>.URL
”用于命名通过不同传输访问的相同存储库,不是两个单独的存储库。 / p>
答案 1 :(得分:0)
我认为你可以使用它,如果你想要一个“升级”回购贡献者会推动,然后其他人会在审查和批准后将更改从那里推送到主回购。所以你要从主回购中获取,然后推送到分段回购。