【发布时间】:2018-11-30 00:37:54
【问题描述】:
我想将远程计算机的目录/home/myproject 与本地计算机的目录D:\myproject\ 作为源同步。我想使用git(也可以从提交历史等中受益)
我在远程机器上做了这个(创建一个裸存储库,另见What is the difference between "git init" and "git init --bare"?):
mkdir /home/myproject.git
cd /home/myproject.git
git init --bare
这在本地机器上(当前目录D:\myproject\):
git init
git add main.py # D:\myproject\main.py exists on local machine
git commit -m "First"
git remote add dest root@203.0.113.0:/home/myproject.git # via ssh
git push dest master
有效,现在远程服务器的/home/myproject.git 已同步,但目录/home/myproject/(例如应该包含/home/myproject/main.py)仍然不存在!
所以我必须在远程服务器上这样做:
cd /home
git clone myproject.git myproject
现在/home/myproject/main.py 存在。
问题:每次我在本地机器上执行git push,更新的是远程服务器的/home/myproject.git,而不是/home/myproject/。
问题:如何配置这些存储库,使git push 自动更新/home/myproject 中的所有文件,例如/home/myproject/main.py,而不仅仅是/home/myproject.git?
【问题讨论】:
-
关于裸仓库:stackoverflow.com/q/7861184/7976758。使用 GIT 部署:stackoverflow.com/q/18804552/7976758.
-
谢谢@phd,我在发布问题之前已经阅读了stackoverflow.com/questions/7861184/…,但它并没有真正帮助这个精确的请求,即
git push不仅更新了myproject.git,而且最重要的是目标目录。
标签: git ssh synchronization git-bare git-init