从本地Git存储库将站点发布到远程服务器

时间:2013-10-23 05:43:14

标签: php git github ssh

计划是从我在本地计算机上创建的Git存储库在托管服务器上发布一个站点。

我在服务器中创建了一个Git存储库:

git init

然后我在本地添加了一个遥控器,以便能够上传网站:

  

git remote add origin ssh:com1 @ ************* / home / com1 / public_html / aum-crm / aum-crm.git

我能够使用git push origin master推送网站。问题是,在推送网站后,我必须去服务器并执行两个步骤。

 Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   some/files/got_here.php
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)

然后我这样做:

git reset HEAD .

结果如下:

Unstaged changes after reset:
M        some/files/got_here.php

最后我做git checkout --,然后服务器将拥有这些文件。

如果我尝试在服务器上提交而不是这些步骤,但它会恢复,这意味着它会取消从本地提交的所有文件。 :(

为什么我需要执行这两个步骤?是不是应该将文件推送到服务器,他们必须立即去那里?

1 个答案:

答案 0 :(得分:0)

*****@******.info [~]# 
*****@******.info [~/git]# mkdir test.git
*****@******.info [~/git]# cd test.git
*****@******.info [~/git/test.git]# pwd
/home1/******/git/test.git
*****@******.info [~/git/test.git]# git init --bare
Initialized empty Git repository in /home1/*******/git/test.git/
*****@******.info [~/www/test.git]# cd hooks
*****@******.info [~/www/test.git]# vi post-receive

收到后文件:

#!/bin/sh
GIT_WORK_TREE=/home1/*******/test git checkout -f

使用以下方法保存文件:x

*****@******.info [~/www/test.git/hooks]# chmod +x post-receive
*****@******.info [~/www/test.git/hooks]# cd ~
*****@******.infoo [~]# git init test
Initialized empty Git repository in /home1/*******/test/.git/
*****@******.info [~]# exit

这样就可以让服务器自动完成这些步骤。

感谢Erik Nidwidek

Link to his answer