Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不一样,它采用了分布式版本库的做法,不须要服务器端软件,就能够运做版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux内核这样的大项目来讲天然很重要。git最为出色的是它的合并追踪(merge tracing)能力。html
构建Git仓库的方式便可以在本地直接生成,也能够本身搭建一个Git服务器,本文介绍在Linux服务器上如何构建一个Git代码仓库。Let's Start!vim
$ adduser git
复制代码
opt
目录下建立一个文件夹code
$ mkdir /opt/code
复制代码
$ cd code
$ git init --bare test.git
复制代码
$ cd test.git
复制代码
进入hooks
中建立一个函数(当接收传送时自动调用的钩子),实现当代码更新时服务端运行代码同步更新(此步骤仅做自动化部署方案参考,实际运行环境应根据需求后使用)。bash
$ cd hooks
$ vim post-receive
复制代码
内容为重写指定工做区文件,代码以下服务器
#!/bin/bash
git --work-tree=/www/wwwroot/test checkout -f
复制代码
实际状况应将‘/www/wwwroot/test’替换为目标项目位置,此目录git用户需有权限并发
chown -R git:root /www/wwwroot/test
复制代码
最后给post-receive
文件执行权限分布式
chmod +x post-receive
复制代码
具体钩子建立与否需根据项目具体实现作不一样的调整,某些大厂的代码管理是用专门的服务器进行管理,在网页控制分支合并发布,一键部署等,抽象出版本管理这层,以便代码的发布,不知道你们都是怎么实现版本迭代,分支管理的呢?(若是仍是手动搬运代码就能够试着实现本身的自动化部署啦~)svn
git clone /opt/code/test.git
$ git clone git@IP:/opt/code/test.git
复制代码
$ cd test
$ touch index.html
复制代码
$ git add .
$ git commit -m 'create index.html'
$ git push
复制代码
如发生错误,有的多是由于用户权限的缘由,经过
chmod
命令配置权限给git用户便可函数
现现在代码管理已发展了诸多工具(如svn,cvs),代码托管平台(如Github,Gitlab)可供选择,要说的话,代码如同货物,适合的版本管理如同高度自动化的船舶,仅需少数船员,便可驾驶着轮船稳健驶向新航线,提升效率,迎接新世纪。工具
\(•ㅂ•)/♥ 共勉~