搭建GIT服务器的文章有很多,多数在管理的时候都使用了gitosis作为管理工具,但是作为一个小团队(人数少于50人),我觉得完全可以使用公钥验证的方式,这样会简单不少,下面来看看简易的搭建方法吧。
服务器版本:ubuntu 16.04
我的搭建过程是参考指导文档 https://git-scm.com/book/zh/v2/
首先安装git和ssh等工具
sudo apt-get install git openssh-server openssh-client
初次运行git要做一些基本的信配置
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
这样服务器的软件就搞定了,下面我们来做一下配置
下面你可以新建用户,当然也可以不新建,然后在用户目录下新建.ssh文件,在.ssh中新建
authorized_keys的文件,这个文件主要用来保存其他用户的公钥
sudo adduser git
su git
cd
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
下面的操作是在其他客户端电脑上的操作,即生成秘钥执行ssh-keygen -t rsa会在你的家目录中.ssh/生成id_rsa.pub(公钥)和id_rsa(私钥),将公钥发送到服务器的/tmp目录下,最好重命名一下,防止覆盖了别人的. 如:id_rsa_1.pub
ssh-keygen -t rsa
scp ~/.ssh/id_rsa_1.pub git@gitserver:/tmp/
//下面的操作是服务器的端要做的了,将公钥内容放到authorized_keys中。
cat /tmp/id_rsa_1.pub >> ~/.ssh/authorized_keys
这样就可以了,下面你要做的就是初始化仓库代码
mkdir git
cd git
mkdir project.git
cd project.git
git init --bare
在初始化代码的时候要注意,如果你原来的代码使用repo或者git管理的请先将他们的索引删掉,不然你上传的代码十不全的,可以执行一代码。
find -name ".git" -o ".repo" -o ".gitignore"|xargs rm -rf
git没法直接把代码包拖进来管理,所以初始化仓库后你要做的是初始化代码
on John's computer
cd myproject
git init
git add .
git commit -m 'initial commit'
git remote add origin git@gitserver:/path to/git/project.git
git push origin master
下面你就可以在客户端操作了,获取代码并修改提交
一般第一次使用我们会执行
mkdir project
cd project
git init
git clone git@192.168.1.158:/home/project/solox_android.git //这里git使我们的git管理员,192.168.1.158使我们git服务器地址,solox_android.git是我们的项目名,这样我们就拿到代码了
git checkout -b branch_name //因为我们不想在开发新功能的时候,把我们不成熟的代码直接放到master分支中,所以暂时在新分支中开发。删除分支的命令式(git checkout -d branch_name)
修改代码并提交到服务器中
git pull //一般在开发之前我们要将代码更新到最新版本
git status //查看一下我们提交的文本的状态,主要看看有哪些我们修改的文件
git diff filename //看看我们修改的文件内容,防止误提交
git add //把它们添加到缓存区
git commit -m "代码提交信息" //改动已经提交到了 HEAD,但是还没到你的远端仓库,并且这里加上了你的提交log
git push origin master //提交到远端仓库,可以把 master 换成你想要推送的任何分支
如果你误删除了本地的某个文件,可以使用
git checkout -- //从服务器单独拿文件
查看提交记录
git log -p -2// -P是显示提交的内容差异 -2表示先最近的2次
git log -p -2 filename //查看这个文件最近两次的修改记录
查看差异
git diff filename