设置git远程源


179

我有以下回购。

  1. DEV REPO:在我进行更改的开发计算机上的目录中
  2. 主仓库:开发机器上的裸存储库,我将开发仓库中的更改推送到该仓库
  3. PRODUCTION REPO:主机上的存储库,用于从主存储库中提取更新

我曾经git remote add origin /Users/me/sites/main_repo将MAIN存储库设置为DEV存储库的来源。PRODUCTION存储库位于远程主机上。我是否可以使用同一命令的变体将MAIN存储库也设置为PRODUCTION存储库的来源?如果“是”,那么我想语法将包括一个IP地址。那会是什么样?


您不是说“将PRODUCTION回购设置为MAIN回购的来源”吗?
Pedro A

Answers:


288

使用SSH

git remote add origin ssh://login@IP/path/to/repository

使用HTTP

git remote add origin http://IP/path/to/repository

但是,拥有一个简单git pull的部署过程通常是个坏主意,应避免使用真正的部署脚本。


6
为什么这真的是个坏主意?现在进行一些搜索以获取部署脚本示例。
杰伊(Jay)

14
因为部署通常意味着的(不仅仅是读)总是git pull做什么。您可能需要设置生产数据库凭证,清除缓存,增加版本号,备份较旧的版本,以便在出现问题时可以回滚,优化/缩小资产(例如CSS和Js)以及其他成千上万个其他资产东西。
克莱门特·赫雷曼

33
@ClementHerreman-根据您的解释,使用git pull似乎不是一个“坏主意”,因为它是一个有限的解决方案。有时候,当我有一个简单的场景时,我发现git pull是一个非常有效,简单的部署解决方案。
布雷迪·霍尔特

4
我认为您需要为ssh方式指定ssh://,即git remote add origin ssh:// login @ IP / path / to / repository
kakyo 2012年

4
我认为,如果我们将最终声明修改为“有时是个坏主意”,那么不要大胆,这将是一个很好的答案。
克里斯·莫斯基尼

104

对于像我一样来到这里的任何人,寻找将原产地更改为其他位置的语法,您可以在此处找到该文档:https : //help.github.com/articles/changing-a-remote-s-url/。使用git remote add此操作将导致“致命:远程源已存在”。

果壳: git remote set-url origin https://github.com/username/repo

(标记的答案是正确的,我只是希望能帮助像我一样迷路的任何人……哈哈)


2
对于希望更改“ git remote url”(如果已存在)的人们,此答案更好。谢谢@lostphilosopher
eonist的

17

您可以包括该分支,以在设置遥控器时进行跟踪,以使一切正常运行:

git remote add --track master origin user@somesite.com:group/project.git   # git
git remote add --track master origin user@172.16.1.100:group/project.git   # git w/IP
git remote add --track master origin http://github.com/group/project.git   # http
git remote add --track master origin http://172.16.1.100/group/project.git # http w/IP
git remote add --track master origin /Volumes/Git/group/project/           # local
git remote add --track master origin G:/group/project/                     # local, Win

这使您不必手动编辑git config或手动指定分支跟踪。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.