使用git在本地和其他远程主机(不是github)上同步两个相同的repos one

时间:2014-10-10 06:52:29

标签: git

我在localhost上安装了git以及具有相同项目文件夹的远程主机。
因此在localhost上有1个repo,在远程主机上有1个包含相同文件的repo。我想要做的是使用localhost文件进行开发,然后将它们推送到远程进行更新。

如何去做?

1 个答案:

答案 0 :(得分:4)

只需将遥控器添加到本地存储库,然后推送到远程主机即可。

git remote add origin /url/remotehost/bare_repo
git push --all

为此,您的远程主机必须有一种方法可由本地主机通过 supported protocols 之一访问:

  • git daemon
  • 共享文件夹
  • HTTP(S)
  • SSH

您的远程主机必须有 bare repo ,才能推送到它。

在那个裸仓库上,您可以声明post-receive hook which will checkout the received content in your remote host project folder


OP选择了ssh(ssh://202.XXX.xx.xx:/path/to/repo.git),但是有抓取/推送问题。

  

克隆远程仓库也无法正常运行它给我的错误

 Bad port '' fatal: Could not read from remote repository.

我建议在远程服务器上指定拥有repo的用户 例如' git':git@202.XXX.xx.xx 然后尝试使用' :':

git@202.XXX.xx.xx:/path/to/repo.git 
# or 
git@202.XXX.xx.xx/path/to/repo.git

sshd必须正在运行。端口应该是默认端口(22) 可以查看sshd logs on the server side (/var/auth/log)

毕竟,Op报告设置正在运行。


必须将post-receive挂钩放在服务器上的裸存储库中,并使其成为可执行文件:

cat > /path/to/bare/repo.git/hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/path/to/live/folder GIT_DIR=/path/to/bare/repo.git git checkout -f


chmod +x /path/to/bare/repo.git/hooks/post-receive