Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Git将文件推送到远程服务器_Git - Fatal编程技术网

如何使用Git将文件推送到远程服务器

如何使用Git将文件推送到远程服务器,git,Git,我正在尝试将文件推送到远程服务器。 到目前为止我已经试过了 远程服务器 $ cd /var $ mkdir repo && cd repo $ mkdir test.git && cd test.git $ git init --bare $ cd hooks $ touch post-receive $ sudo chmod +x post-receive 后期接收 #!/bin/sh git --work-tree=/var/www/testsite --g

我正在尝试将文件推送到远程服务器。 到目前为止我已经试过了

远程服务器

$ cd /var
$ mkdir repo && cd repo
$ mkdir test.git && cd test.git
$ git init --bare
$ cd hooks
$ touch post-receive
$ sudo chmod +x post-receive
后期接收

#!/bin/sh
git --work-tree=/var/www/testsite --git-dir=/var/repo/test.git checkout -f
本地

$ cd /localrepo
$ git remote add test ssh://user@my-site.com/var/repo/test.git
$ git push test main
输出

Enumerating objects: 917, done.
Counting objects: 100% (917/917), done.
Delta compression using up to 12 threads
Compressing objects: 100% (879/879), done.
Writing objects: 100% (917/917), 3.93 MiB | 2.61 MiB/s, done.
Total 917 (delta 518), reused 0 (delta 0)
remote: Resolving deltas: 100% (518/518), done.
To ssh://user@my-site.com/var/repo/test.git
 * [new branch]      main -> main
期待 我希望推送之后,我能够在远程服务器上的
/var/www/testsite
中看到文件,但我在任何地方都找不到任何文件

似乎
post receive
不起作用


实际上,我正试图按照第12步进行操作,问题也在于服务器上的活动分支是“主”分支,而我正在推到“主”分支。(感谢@kosist指出这一点)

解决方案

使用更改服务器上的活动分支

echo ref: refs/heads/main > HEAD

或者在
post receive
hook(我选择的选项)中指定分支


我没有看到你提交任何东西技术上你根本不能推送文件,你只能推送提交。但实际上您正在推送一些提交,以便创建
main
分支。您的post接收挂钩似乎没有运行。调试这有点棘手,通常必须在服务器上完成。服务器上的活动分支是什么?是
main
,还是
master
?@kosist活动分支是
main
@AlexLarionov正在推送的提交是推送到git hub的对
origin main
的提交。我被告知这样做应该在我的远程服务器上创建一个副本
git symbolic-ref HEAD refs/heads/main
git --work-tree=/var/www/laravel --git-dir=/var/repo/site.git checkout -f main