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

news/2024/7/23 10:49:59 标签: git服务器, git, 简易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服务器>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

http://www.niftyadmin.cn/n/5546407.html

相关文章

量化机器人能否识别市场机会?

量化机器人的设计和应用是为了通过高级算法和大数据分析,精确地识别和把握市场中的交易机会。这些机器人的能力不仅仅局限于执行预定的交易策略,更包括在复杂和快速变化的市场环境中识别利润机会。 首先,量化机器人能够处理和分析大量的市场…

数据分析案例-2024 年全电动汽车数据集可视化分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

“爆炸性更新!JDK 17携全新语法特性强势来袭,开发者必看的升级亮点“(1)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:Java进化论 目录 背景 yield关键字 var关键字 空指针异常 密封类 接口中的私有方法 instanceof关键字 背景 Java 8 虽然曾经是使用…

java springboot监听事件和处理事件

在Spring Boot中,监听和处理事件是一种常用的模式,用于在应用程序的不同部分之间传递信息。Spring 的事件发布/订阅模型允许我们创建自定义事件,并在这些事件发生时由注册的监听器进行处理。这里,我将提供一个简单的Spring Boot应…

如何解决群晖Docker注册表查询失败/无法拉取镜像等问题

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 问题概述 📒📒 解决方案 📒🔖 方法一🔖 方法二🔖 方法三⚓️ 相关链接 🚓️📖 介绍 📖 在群晖(Synology)NAS设备上使用Docker时,我们可能会遇到查询Docker注册表失败,无法拉取Docker镜像的问题。这种情况…

【Dell R730 折腾记录】风扇调速--在 Ubuntu 系统上开机自启动并每隔30分钟执行一次风扇定速脚本

前段时间升级了一下机柜里的服务器,替换掉了一台旧的 Dell 服务器,换上了这台 R730。但是无奈于噪音的袭扰,搁置了一段时间。我在这台机器上目前安装了一块 Intel Xeon E5-2630v3 芯片以及一张改过散热的 NVIDIA Tesla P4 计算卡。结果就是散…

Michael.W基于Foundry精读Openzeppelin第63期——Initializable.sol

Michael.W基于Foundry精读Openzeppelin第63期——Initializable.sol 0. 版本0.1 Initializable.sol 1. 目标合约2. 代码精读2.1 _getInitializedVersion() internal && _isInitializing() internal2.2 modifier initializer()2.3 modifier reinitializer(uint8 version…

C++-时间复杂度

前言 OJ测试中最烦人的结果莫过于TLE(Time Limit Exceed 超时)和MLE(Mempry Limit Exceed超内存)了,在递归和搜索题里面看见这两货就烦。 目录 前言 时间复杂度 时间复杂度概念 时间复杂度的表示法 时间复杂度OJ测试要求 时间复杂度例举 剪枝 1.可行…