当前位置: 首页 > news >正文

小型简易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 computercd myprojectgit initgit add .git commit -m 'initial commit'git remote add origin git@gitserver:/path to/git/project.gitgit push origin master

下面你就可以在客户端操作了,获取代码并修改提交

一般第一次使用我们会执行

mkdir projectcd  projectgit initgit 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,但是还没到你的远端仓库,并且这里加上了你的提交loggit push origin master //提交到远端仓库,可以把 master 换成你想要推送的任何分支
如果你误删除了本地的某个文件,可以使用git checkout --    //从服务器单独拿文件
查看提交记录git log -p -2// -P是显示提交的内容差异   -2表示先最近的2次git log -p -2 filename //查看这个文件最近两次的修改记录
查看差异git  diff   filename

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于Memcached实现对象缓存:存储对象数据,如购物车内容,用户配置
  • 深入理解Spring Boot中的数据库优化
  • 音视频封装demo:将h264数据和aac数据封装(mux)成TS文件(纯手工,不依赖第三方开源库)
  • DDD架构
  • 快速将一个网址打包成一个exe可执行文件
  • 大数据基础:Hadoop之HDFS重点架构原理
  • CentOS 8升级gcc版本
  • redis的Bitmap 、HyperLogLog、Geo相关命令和相关场景
  • AtCoder Beginner Contest 361
  • SQL 字段类型-上
  • 旗晟机器人AI智能算法有哪些?
  • JRE、JVM、JDK分别是什么。
  • Django学习第六天
  • 构造函数注入@RequiredArgsConstructor
  • arp缓存中毒实验
  • 【EOS】Cleos基础
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Android交互
  • cookie和session
  • CSS3 变换
  • IDEA常用插件整理
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • js ES6 求数组的交集,并集,还有差集
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • TypeScript实现数据结构(一)栈,队列,链表
  • vuex 笔记整理
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 大型网站性能监测、分析与优化常见问题QA
  • 订阅Forge Viewer所有的事件
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 聊聊flink的TableFactory
  • 前言-如何学习区块链
  • 双管齐下,VMware的容器新战略
  • 新手搭建网站的主要流程
  • 新书推荐|Windows黑客编程技术详解
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • $jQuery 重写Alert样式方法
  • (1)(1.9) MSP (version 4.2)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C)一些题4
  • (CPU/GPU)粒子继承贴图颜色发射
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (层次遍历)104. 二叉树的最大深度
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (蓝桥杯每日一题)love
  • (理论篇)httpmoudle和httphandler一览
  • (七)Java对象在Hibernate持久化层的状态
  • (三)Honghu Cloud云架构一定时调度平台
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (状压dp)uva 10817 Headmaster's Headache