Git简单应用:部署代码到服务器

来源:互联网 发布:域名归属地查询 编辑:程序博客网 时间:2024/04/29 13:06

我的代码没有放到GitHub上,所以要做的工作是直接将本地代码部署到服务器上。scp命令在项目一开始可能还凑合着能用,或者用FTP也不错,但是Git才是王道啊。

基本过程是:将本地/var/www目录下的项目目录提交到本地仓库,本地仓库提交更改到服务器仓库(把新的代码提交上去),服务器仓库checkout更改(用新的代码覆盖旧的代码),将服务器仓库目录的代码复制到/var/www(覆盖原来的代码,完成新代码的部署)。

很多人用的GitHub是这么回事:

本地仓库 <--> GitHub远程仓库

那么部署到服务器,就在服务器上搞个远程仓库就得了:

本地 <--> 服务器远程仓库


感谢:

参考文章:Love满天星 的《使用git做服务器端代码的部署》http://www.cnblogs.com/shaohuixia/p/5503521.html

参考文章:等风的草 的《在Linux服务器上搭建Git远程仓库并Push本地库》http://blog.csdn.net/u011726984/article/details/52036654


1. 服务器

首先当然是装好git啦,apt-get install git就行了。

(1) 添加一个专门用来部署代码的用户

为了安全起见,新建一个专门用于代码部署的无特权用户。我用git作为用户名,输入如下命令后,会提示设置密码:

useradd -m git

设置密码后还会提示输入一些其他信息,不用管,enter过去就好。

有些文章(http://www.cnblogs.com/shaohuixia/p/5503521.html)说“也可根据喜好配置成免密码登陆”,我不太同意这个说法。一开始我就将密码设为git,然后一觉醒来阿里云报告说在深圳、欧洲有人以git用户身份登录了我的服务器,很不安全啊。毕竟是服务器,不要被别人胡乱弄点什么东西上去是吧,所以还是得认真设个密码。

(2) 新建一个目录作为接收代码的仓库

我在/home目录下,新建一个叫git_repository的目录:

cd home

mkdir git_repository

然后把这个目录的所有者和所在用户组都改成git用户:

chown git:git git_repository

(也可以用chown和chgrp修改)

(3) 当当当,变身仓库

终于用到git命令了。进入刚刚新建的目录,初始化为git仓库:

cd git_repository

git init

然后,让仓库接收代码提交:(照做,我也不太懂)

git config receive.denyCurrentBranch ignore


2. 本地

没装Git的赶紧装上。

(1) 将项目目录变为Git仓库

git init

(2) 提交更改

git commit -a -m "init commit"

-a和-m都是commit命令的参数。-a表示全部;-m表示这次提交的描述信息,内容一般比较精简,直接在后面用双引号附上描述信息表明本次修改的作用即可。

(3) 可选:提交更改前的一点技巧

再次进行提交时,可以查看更改的情况:

git status

然后会列出哪些文件已被跟踪(track),哪些文件还未被跟踪。被跟踪的文件会显示做了什么修改(change),例如被更改(modified)、删除(deleted)。未被跟踪的文件,可以视情况进行跟踪,然后才会被提交到仓库。下面的命令可以将文件index.html添加到跟踪列表:

git add index.html

用git status再次查看更改情况,会有绿色提示index.html是即将提交的新文件。

(4) 添加远程主机

命令格式:

 git remote add <主机名> <网址>

例如:git remote add server0 git@192.168.1.110:/home/git_repository/.git

其中,server0是自定的主机名,git是上文提到的专门用于提交代码的服务器用户,192.168.1.110是服务器IP,/home/git_repository就是服务器仓库目录。

(5) 终于要提交本地代码到服务器了

命令格式:

git push server0 master

其中,server0就是刚刚定义的主机名,master是Git分支名。分支是Git进行版本管理的概念,这里不管那么多,没别的分支,用master这个分支就好。

输入push命令之后,还需要输入git用户的密码才能完成push。


3. 服务器

又回到服务器这边。

(1) 更新仓库状态并检出更改

git update-server-info

git checkout -f

duang~仓库里的代码就更新好了。

(2) 复制代码到实际项目目录

服务器上代码仓库所在目录与实际项目目录不同,还得复制过去。笨拙的办法,求轻喷。

cd /var/www

mv MyWebsite MyWebsite.bak #将实际项目目录改名

cp -r /home/git_repository /var/www #复制

mv git_repository MyWebsite #改名


就酱。附上最近的进展:



0 0
原创粉丝点击