<commit_before>---
layout: post
title: 搭建Git服务器及web站点自动化部署
category: [Git,经验积累]
date: 2015-09-28
---
作为预备役码农,从半年前开始学习使用Github,之后一直将代码托管在线上仓库中.后来网站代码需要多人协同工作,而且项目不太适合放在Github中,便需要将实验室服务器搭建成私有的Git服务器.

Git的个人服务器搭建并不麻烦,但是实验室只有这一台服务器,需要在提交推送代码的同时,将网站同时也部署好,以达到边修改边查看页面效果的目的.
<!-- more -->

#Git个人服务器的搭建及测试

##Git的安装
1.在服务器端和开发机端都需要在shell中输入以下命令来安装Git
	
	#ubuntu系统Git的安装	
	sudo apt-get install git-core

2.因为netbeans上对Git的支持很好,所有没有配置常用的ssh协议,这个协议的最直接好处就在于每次向Git提交推送都不需要输密码,由于没有尝试就不写步骤了,Github官方教程可以一看[http://help.github.com/articles/generating-ssh-keys](http://help.github.com/articles/generating-ssh-keys)

##Git服务器端配置
1.新建用户,作为Git服务器代码仓库的管理者.
	
	sudo useradd -m github
	#-m功能是Create the user's home directory if it does not exist(若用户home目录不存在,则创建)
	sudo passwd github

2.建立Git仓库目录
	
	#我的Git仓库目录在/home/github/website/中,因人而异
	sudo mkdir /home/github/website
	#↓将仓库目录权限设置为仅github用户可操作
	sudo chown github:github /home/github/website
	sudo chmod 700 /home/github/website

3.创建仓库文件夹
	
	#切换到github用户
	su github
	#进入website目录
	cd /home/github/website/
	#创建仓库文件夹
	mkdir repository
	#初始化为bare仓库
	git init --bare

'git init'和'git init ——bare'的区别:
用'git init'初始化的版本库,其保存的都是原文件,但某些用户的push操作可能导致冲突.而'git init ——bare'创建的是裸仓库,它不保存原文件而只保存git历史提交的版本信息,并不允许用户直接在上面进行git操作.

##Git客户机(开发)操作
Git服务器配置好后就可以直接git remote并提交推送到远程仓库中了.

1.创建本地Git仓库目录
	
	#创建目录并git初始化
	cd /var/www/website/<commit_msg>new article<commit_after>---
layout: post
title: 搭建Git服务器及web站点自动化部署
category: [Git,经验积累]
date: 2015-09-28
---
作为预备役码农,从半年前开始学习使用Github,之后一直将代码托管在线上仓库中.后来网站代码需要多人协同工作,而且项目不太适合放在Github中,便需要将实验室服务器搭建成私有的Git服务器.

Git的个人服务器搭建并不麻烦,但是实验室只有这一台服务器,需要在提交推送代码的同时,将网站同时也部署好,以达到边修改边查看页面效果的目的.
<!-- more -->

#Git个人服务器的搭建及测试

##Git的安装
1.在服务器端和开发机端都需要在shell中输入以下命令来安装Git
	
	#ubuntu系统Git的安装	
	sudo apt-get install git-core

2.因为netbeans上对Git的支持很好,所有没有配置常用的ssh协议,这个协议的最直接好处就在于每次向Git提交推送都不需要输密码,由于没有尝试就不写步骤了,Github官方教程可以一看[http://help.github.com/articles/generating-ssh-keys](http://help.github.com/articles/generating-ssh-keys)

##Git服务器端配置
1.新建用户,作为Git服务器代码仓库的管理者.
	
	sudo useradd -m github
	#-m功能是Create the user's home directory if it does not exist(若用户home目录不存在,则创建)
	sudo passwd github

2.建立Git仓库目录
	
	#我的Git仓库目录在/home/github/website/中,因人而异
	sudo mkdir /home/github/website
	#↓将仓库目录权限设置为仅github用户可操作
	sudo chown github:github /home/github/website
	sudo chmod 700 /home/github/website

3.创建仓库文件夹
	
	#切换到github用户
	su github
	#进入website目录
	cd /home/github/website/
	#创建仓库文件夹
	mkdir repository
	#初始化为bare仓库
	git init --bare

'git init'和'git init --bare'的区别:
用'git init'初始化的版本库,其保存的都是原文件,但某些用户的push操作可能导致冲突.而'git init --bare'创建的是裸仓库,它不保存原文件而只保存git历史提交的版本信息,并不允许用户直接在上面进行git操作.

##Git客户机(开发)操作
Git服务器配置好后就可以直接git remote并提交推送到远程仓库中了.

1.创建本地Git仓库目录
	
	#创建目录并git初始化
	cd /var/www/website/
{'fraction_non_alphanumeric': 0.10372534696859022, 'fraction_numerical': 0.01241782322863404, 'mean_word_length': 5.951776649746193, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2633687', 'n_tokens_mistral': 1844, 'n_tokens_neox': 1953, 'n_words': 166}