怎么用git部署
1 下面我们以ubuntu server为例,介绍一下如何使用Git来管理项目代码,并且部署代码的web站点目录。
2 1 准备工作:
1台拥有SSH权限的服务器 (LNMP,git,ssh安装配置)
一台装有git客户端的PC (本文实际在windows下的msysgit操作)
3 LNMP,git,ssh安装配置
# 安装LNMP$ wget -c http://softvpsernet/lnmp/lnmp10-fulltargz && tar zxvf lnmp10-fulltargz && cd lnmp10-full && /ubuntush# 安装Git ssh$ sudo apt-get install git git-core ssh
windows下安装 msysgit
4 2在你的web服务器上建立git裸仓库、编写hooks、导入用户公钥、设置目录权限
在服务器上建立一个用户,这里命名为git,修改git的密码,并禁用shell登录
$ sudo useradd git# 修改git的密码$ passwd git# 禁用shell登录$ sudo vi /etc/passwd修改git:x:1001:1001:,,,:/home/git:/bin/bash为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
初始化Git仓库,建立git 裸仓库,设置hook脚本(web目录需要git用户有权限,否则git的hook脚本将没有办法执行操作)
$ cd /opt $ mkdir git$ cd git$ sudo git init --bare demositegit# 文件夹权限$ sudo chown -R git:git demositegit$ cd /demositegit/hooks$ sudo vi post-receive写入以下内容#!/bin/shGIT_WORK_TREE=/home/wwwroot/wwwdemositecom git checkout -f# 写入权限$ chmod +x post-receive# 建立web目录,如果目录不存在,git不会创建目录的$ mkdir /home/wwwroot/wwwdemositecom -p# web目录的文件夹权限$ sudo chown -R git:git /home/wwwroot/wwwdemositecom
创建证书登录
收集所有需要登录的用户的公钥,就是他们自己的id_rsapub文件,把所有公钥导入到/home/git/ssh/authorized_keys文件里,一行一个。
客户端用户证书生成请参考下文。
5 3在git客户端生成公钥、导入服务器、coding 、add、commit、push
生成公钥,导入服务器
$ ssh-keygen -t rsa -C "your_email@youremailcom"一路回车或者设置密码windows下回提示在哪里生成了密钥windows8下提示在C:\Users\username\ssh 下,linux的话会在~/ssh下进入目录,打开id_rsapub,复制里面的key,添加到上文提到的web服务器的/home/git/ssh/authorized_keys里。
clone coding add commit push
$ git clone git@serverip:/opt/git/demositegitCloning into 'demosite'warning: You appear to have cloned an empty repository$ cat 'hello world!' > indexhtml$ git add indexhtml$ git commit -m'first commit'$ git remote add origin ssh://git@serverip:/opt/git/demositegit$ git push origin master
这里使用公钥来做权限验证,运行git里的hook的脚本权限为git用户的权限,当然你也可以使用自己在server上的用户来进行git操作,前面对于git用户的操作和客户端公钥的生成则可以省略,在git上脚本的执行权限则是你登录用户的权限,相应的origin的设置应该为:
$ git remote add origin ssh://yourusername@serverip:/opt/git/demositegit
这时候每次push将需要输入密码验证。
忽略某些文件
你可以在你的顶层工作目录中添加一个叫"gitignore"的文件,来告诉Git系统要忽略 掉哪些文件,下面是文件内容的示例:
使"git add " 和"git commit -a" 变得实际可用。
# 以'#' 开始的行,被视为注释# 忽略掉所有文件名是 footxt 的文件footxt# 忽略所有生成的 html 文件,html# foohtml是手工维护的,所以例外!foohtml# 忽略所有o 和 a文件[oa]#Eclipsesettings/buildpathproject
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git的主要功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
扩展资料:
Git的优缺点:
优点:
1、适合分布式开发,强调个体。
2、公共服务器压力和数据量都不会太大。
3、速度快、灵活。
4、任意两个开发者之间可以很容易的解决冲突。
5、离线工作。
缺点:
1、资料少(起码中文资料很少)。
2、学习周期相对而言比较长。
3、不符合常规思维。
4、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
-Git
1、前期准备 服务器上配置好的git git客户端 11 在服务器上安装git (本机所使用的linux是ubuntu) 在服务器输入命令:sudo apt-get install git即可 然后创建名字为git的用户组和用户 12 下载客户端 在浏览器地址栏输入
0条评论