设置git远程源

Jay*_*Jay 170 git

我有以下回购.

  1. DEV REPO:在我的开发机器上的一个目录中,我进行了更改
  2. MAIN REPO:我的开发机器上的裸存储库,我从dev repo推送更改
  3. PRODUCTION REPO:主机上的存储库,用于从主存储库中提取更新

我曾经git remote add origin /Users/me/sites/main_repo将MAIN仓库设置为DEV仓库的原产地.PRODUCTION仓库位于远程主机上.我是否可以使用相同命令的变体将MAIN回购设置为PRODUCTION回购的原点?如果"是",那么我想语法将包括IP地址.那会是什么样的?

Cle*_*man 273

使用SSH

git remote add origin ssh://login@IP/path/to/repository
Run Code Online (Sandbox Code Playgroud)

使用HTTP

git remote add origin http://IP/path/to/repository
Run Code Online (Sandbox Code Playgroud)

但是,将git pull部署过程作为一个简单的过程通常是一个坏主意,应该避免使用真正的部署脚本.

  • @ClementHerreman - 看起来,基于你的解释,使用git pull并不是一个"坏主意",因为它是一个有限的解决方案.有时候,当我有一个简单的场景时,我发现git pull是一个非常有效,简单的部署解决方案. (33认同)
  • 因为部署通常意味着(读"总是")不仅仅是'git pull`.您可能需要设置生产数据库凭据,清除缓存,增加版本号,备份旧版本,以便在出现问题时进行回滚,优化/缩小资产(例如CSS和Js)以及其他的bazillions的东西. (14认同)
  • 为什么这是一个非常糟糕的主意?现在进行一些搜索以获取部署脚本示例. (6认同)
  • 我认为你需要为ssh方式指定ssh://,即git remote add origin ssh:// login @ IP/path/to/repository (4认同)
  • 我认为,如果我们将最终声明修改为"有时候是一个坏主意",那么这不是一个很好的答案. (4认同)
  • @Brady这就是为什么我经常写"而不是永远".没有100%总是真正的规则. (3认同)

los*_*her 94

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

概括地说: git remote set-url origin https://github.com/username/repo

(明确的答案是正确的,我只是希望帮助像我一样迷失的人......哈哈)

  • 如果“git remote url”已经存在,那么这个答案更适合想要更改“git remote url”的人。谢谢@lostphilosopher (2认同)

Mic*_*son 16

您可以在设置遥控器时包含分支以跟踪,以保持工作正常;

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
Run Code Online (Sandbox Code Playgroud)

这使您无需手动编辑git配置或手动指定分支跟踪.