繁体   English   中英

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

[英]Publish a site to a remote server from a local Git repository

计划是通过我在本地计算机上创建的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 -- ,然后服务器将拥有这些文件。

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

为什么需要执行这两个步骤? 难道不应该只是将文件推送到服务器,而必须立即将文件发送到那里吗?

*****@******.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

链接到他的答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM