我有一个名为 my-project 的文件夹,其中我已经完成了git init、git commit -a等。
现在我想将它推送到远程服务器上 /mnt/foo/bar 的空文件夹中。
我怎样才能做到这一点?
我确实尝试过,根据我读过的内容:
cd my-project
git remote add origin ssh://user@host/mnt/foo/bar/my-project.git
git push origin master
Run Code Online (Sandbox Code Playgroud)
这似乎不正确(我认为源会在目的地之前出现)并且失败了:
fatal: '/mnt/boxee/git/midwinter-physiotherapy.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我希望这样工作,这样我就不必每次都访问远程主机并手动初始化 Git 存储库……我必须这样做吗?我真的走对了路线吗?
谢谢。
use*_*686 64
命令是正确的;但是,远程地址也必须指向初始化的 Git 存储库。不过,这是一次性的工作。
ssh user@host "git init --bare /mnt/foo/bar/my-project.git"
Run Code Online (Sandbox Code Playgroud)
(在 Git 中,“裸”存储库是没有工作树的存储库。)
Kyl*_*dha 16
如果你想同时推送到 repo并在服务器上更新文件,你可以创建一个服务器端 git hook 来在推送后签出文件。在服务器端 git/hooks/目录中创建一个名为的文件post-receive并添加以下代码(更新目录以匹配您的文件夹结构):
#!/bin/sh
git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f
Run Code Online (Sandbox Code Playgroud)
然后使用给文件适当的权限 chmod +x post-receive
更多信息和详细解释在这里: https : //www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps
小智 5
对我来说,我必须使用ssh://user@host:/mnt/foo/bar/my-project(注意:主机后面的,并.git在最后删除)。
所以我可以使用以下方法克隆存储库:
git clone ssh://user@host:/mnt/foo/bar/my-project
Run Code Online (Sandbox Code Playgroud)
我们还可以注意到,格式类似于使用scp命令。
| 归档时间: |
|
| 查看次数: |
91865 次 |
| 最近记录: |