小型简易GIT服务器搭建和使用

搭建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
相关推荐
研究是为了理解2 小时前
Git Bash 常用命令
git·elasticsearch·bash
DKPT3 小时前
Git 的基本概念和使用方式
git
Winston Wood6 小时前
一文了解git TAG
git·版本控制
喵喵先森6 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu5438 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio10 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。11 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie612 小时前
在IDEA中使用Git
java·git
晓理紫21 小时前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿1 天前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git