小型简易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
相关推荐
小毛驴8509 小时前
所有微服务部署都使用一个git地址,并且通过docker部署各个服务的情况下,如何编写mvn指令来处理各个服务。
git·docker·微服务
国王不在家9 小时前
git 切换仓库后清理分支缓存
git
柯南二号13 小时前
【Gitlab】Ubuntu 20.04服务器部署Gitlab
git·gitlab
phac12314 小时前
git 如何直接拉去远程仓库的内容且忽略本地与远端不一致的commit
大数据·git·elasticsearch
ficker131 天前
git常用命令
git
kevin_cat1 天前
微信群机器人-备份文件发送通知
git·bash·企业微信
程序媛Dev1 天前
50.4k Star!我用这个神器,在五分钟内搭建了一个私有 Git 服务器!
运维·服务器·git
澈轩2 天前
Git 用得好,下班走得早
git
人间造梦工厂2 天前
Git Bash 别名
git
画个太阳作晴天2 天前
解决 Android Studio 中 build 目录已被 Git 跟踪后的忽略问题
git