2011-08-31 89 views
152

我有以下回购。设置git远程来源

  1. DEV REPO:在我的机器在那里我做变更
  2. 主仓库上的目录:纯仓库我的开发机器上,我推从开发回购的变化
  3. 生产REPO:库的主机上从主要回购拉动更新

我用git remote add origin /Users/me/sites/main_repo设置主回购作为DEV回购的原产地。 PRODUCTION repo在远程主机上。我可以使用相同命令的变体将MAIN回购作为PRODUCTION回购的原点吗?如果“是”,那么我想这个语法会包含一个IP地址。那将是什么样子?

回答

238

使用SSH

git remote add origin ssh://[email protected]/path/to/repository 

使用HTTP

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

但是具有简单git pull的部署过程通常是一个坏主意,应该有利于实际部署脚本来避免。

+6

为什么它是一个非常糟糕的主意?现在进行一些搜索以获取部署脚本示例。 – Jay

+14

因为部署通常意味着(阅读“总是”),而不仅仅是“git pull”做什么。您可能需要设置生产数据库凭证,清除缓存,增加版本号,备份旧版本,以便在出现问题时进行回滚,优化/缩小资产(例如CSS和Js)以及其他许多其他的东西。 –

+32

@ClementHerreman - 看起来,基于你的解释,使用git pull并不是一个“坏主意”,因为它是一个有限的解决方案。有时我发现git pull是一个非常有效的简单部署解决方案,当我有一个简单的场景时。 – Brady

12

可以包括分支设置遥控器时进行跟踪,让一切工作,你可能会想到:

git remote add --track master origin [email protected]:group/project.git # git 
git remote add --track master origin [email protected]: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 

这使您不必手动编辑混帐配置或指定分支手动跟踪。

76

对于任何人谁来到这里,像我一样,找语法变化起源到不同的位置,你可以在这里找到文档:https://help.github.com/articles/changing-a-remote-s-url/。使用git remote add来做到这一点将导致“致命的:远程原点已经存在”。

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

(所标记的答案是正确的,我只是希望能帮助任何人一样失去了,因为我是...哈哈)

+0

这个答案是更好的人想要改变“git远程URL”如果它已经存在。谢谢@lostphilosopher – eonist