git安装|Linux系统安装 git|Linux如何安装git?Linux通过远程安装git|

Git是一个开源的分布式版本控制系统,可以有效、高速地处理项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

开发者需要一个GIT账号,通过这个查看项目的提交记录,可以更加清楚项目的开发情况,便于版本控制。

以下介绍在CentOS8操作系统搭建GIT服务器。

 

一、安装GIT服务器流程

 

安装GIT:

[[email protected] ~]# yum -y install git

Last metadata expiration check: 14:04:53 ago on Sun 06 Oct 2019 09:14:20 PM CST.Package git-2.18.1-3.el8.x86_64 is already installed.Dependencies resolved.Nothing to do.

 

二、添加用户GIT流程

 

添加账户:

adduser git

修改用户密码:

passwd git

 

三、下载gitolite

 

切换到git用户:

 

su git

定位到目录:

[[email protected] ~]$ cd /home/git/

采用gitolite来做权限配置。 克隆gitolite代码:

[[email protected] ~]$ git clone https://github.com/sitaramc/gitoliteCloning into 'gitolite'...remote: Enumerating objects: 9646, done.remote: Total 9646 (delta 0), reused 0 (delta 0), pack-reused 9646Receiving objects: 100% (9646/9646), 3.01 MiB | 1.17 MiB/s, done.Resolving deltas: 100% (5987/5987), done.

 

四、生成SSH**对登录流程(客户端执行)

 

注意:如果客户端已经有了SSH**对,可不用再生成。

 

生成客户端**对:

[[email protected] .~]# ssh-****** -t rsa -C "[email protected]"Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:jPwVAK1111ip6/mbFbuyg113wyIcl1yX7OYb7113RLg [email protected]The key's randomart image is:+---[RSA 2048]----+|     .+oo        ||     o   o       ||    .   ....     ||     = +. +.  .  ||    +.=o1o.  . . ||   .. ++ .o   o  ||  .+ oo..o.  2...||  oo*oo.o .o ....|| .+o=1.o...++  . |+----[SHA256]-----+

 

上传客户端的SSH公钥到服务器(/home/git/目录,文件名为你起的名字xxx.pub):

[[email protected] ~]$ scp /root/.ssh/id_rsa.pub [email protected]:/home/git/admin.pubid_rsa.pub                                                                                                                                                                       100%  400   177.1KB/s   00:00 

 

五、初始化gitolite

 

初始化gitolite:

[[email protected] ~]$ /home/git/gitolite/src/gitolite setup -pk admin.pub Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/Initialized empty Git repository in /home/git/repositories/testing.git/WARNING: /home/git/.ssh missing; creating a new one    (this is normal on a brand new install)WARNING: /home/git/.ssh/authorized_keys missing; creating a new one    (this is normal on a brand new install)

执行后,看提示可以知道已经初始化了2个仓库:gitolite-admin、testing。还在/home/git/.ssh/authorized_keys写入内容:

[[email protected] ~]$ cat /home/git/.ssh/authorized_keys # gitolite startcommand="/home/git/gitolite/src/gitolite-shell admin",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA.....AAAA [email protected]# gitolite end

 

查看目录,可看到新增了一些文件(.gitolite.rc、projects.list)和目录(.gitolite、repositories):

[[email protected] ~]$ ls -al /home/git/total 32drwx------. 6 git  git   201 Oct  7 14:24 .drwxr-xr-x. 3 root root   17 Oct  7 11:19 ..-rw-r--r--. 1 git  git    18 May 11 08:16 .bash_logout-rw-r--r--. 1 git  git   141 May 11 08:16 .bash_profile-rw-r--r--. 1 git  git   312 May 11 08:16 .bashrcdrwx------. 6 git  git    57 Oct  7 14:24 .gitolitedrwxrwxr-x. 6 git  git   245 Oct  7 14:13 gitolite-rw-------. 1 git  git  7130 Oct  7 14:24 .gitolite.rc-rw-r--r--. 1 root root  400 Oct  7 11:47 admin.pub-rw-------. 1 git  git    12 Oct  7 14:24 projects.listdrwx------. 4 git  git    51 Oct  7 14:24 repositoriesdrwx------. 2 git  git    29 Oct  7 14:24 .ssh-rw-r--r--. 1 git  git   658 May 12 00:06 .zshrc

查看repositories目录(看到2个仓库目录:gitolite-admin、testing):

[[email protected] ~]$ ls -al /home/git/repositories/total 0drwx------. 4 git git  51 Oct  7 14:24 .drwx------. 6 git git 201 Oct  7 14:24 ..drwx------. 8 git git 181 Oct  7 14:24 gitolite-admin.gitdrwx------. 7 git git 162 Oct  7 14:24 testing.git

 

六、配置权限

 

克隆gitolite-admin仓库到客户端:

[[email protected] workspace]$ git clone [email protected]:gitolite-adminCloning into 'gitolite-admin'...remote: Enumerating objects: 6, done.remote: Counting objects: 100% (6/6), done.remote: Compressing objects: 100% (4/4), done.remote: Total 6 (delta 0), reused 0 (delta 0)Receiving objects: 100% (6/6), done.

 

使用tree命令查看目录结构(如无此命令,则需要安装yum install tree):

[[email protected] workspace]$ tree gitolite-admin/gitolite-admin/├── conf│   └── gitolite.conf└── keydir    └── admin.pub
2 directories, 2 files

其中:

conf:是配置文件夹。

keydir:是客户端公钥文件夹,所有需要访问GIT的公钥需要放到这里。(需要注意的是文件名格式为:username.pub,username作为配置权限时的用户名。)

 

配置某用户对仓库的读写权限(修改conf文件夹下的gitolite 文件),执行vim conf/gitolite.conf:

repo gitolite-admin    RW+     =   admin
repo testing    RW+     =   @all

repo代表仓库的意思,如果新添加一个repo,代表服务端新建一个空仓库,仓库push到服务端后会自动创建。

RW 代表可读可写。

@all 代表所有人。

master和 dev代表分支

 

可以增加组、增加项目:xxx-project。以下为举例:

@group1 = admin zhangsan lisi@group2 = wangwu qianliu repo gitolite-admin    RW+     =   admin    repo xxx-project    RW+     =   @group1 @group2
repo testing    RW+     =   @all

修改保存后提交到远程GIT仓库:

[[email protected] gitolite-admin]$ git commit conf/gitolite.conf -m "Add group: group1,group2; project: xxx-project"[master 31591ea] Add group: group1,group2; project: xxx-project 1 file changed, 6 insertions(+)[[email protected] gitolite-admin]$ git pushEnumerating objects: 7, done.Counting objects: 100% (7/7), done.Delta compression using up to 8 threads.Compressing objects: 100% (3/3), done.Writing objects: 100% (4/4), 419 bytes | 419.00 KiB/s, done.Total 4 (delta 1), reused 0 (delta 0)remote: Initialized empty Git repository in /home/git/repositories/xxx-project.git/To git.xxx.com:gitolite-admin   4f2296e..3119dea  master -> master

注:远程已经自动新增了一个仓库:xxx-project。

 

查看到有权限访问那些仓库:

[[email protected] gitolite-admin]$ ssh [email protected] PTY allocation request failed on channel 0hello admin, this is [email protected] running gitolite3 v3.6.11-4-gef9ab68 on git 2.18.1
 R W  xxx-project R W  gitolite-admin R W  testingConnection to git.xxx.com closed.

到此,GIT的搭建和权限配置介绍完毕。欲了解更多内容,可查看官方介绍~

 

#####更多资讯请关注微信公众号 ”技术训练营“

#####技术交流Q群 45069036

注:本文为Toyo Lau原创,未经许可不得在任何平台转载,侵权必究。如需转载,可关注微信公众号:技术训练营,在后台留言,与作者联系,取得许可才能转载~

版权声明:本文为mdykj33原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mdykj33/article/details/102542148

智能推荐

剑指offer 合并两个排序的链表

题目 链接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/ 思路 我想的是,与合并两个有序数组一样的思维,新建一个链表,然后判断谁的值大,进而在新的链表上面进行插入。 看书思路 合并链表是一个递归问题:合并一个节点后可以转化为一个子问题。终止条件是其中一个链表为空 代码 链表反转也可以用递归解决...

Java编程思想 第三章:操作符

Java中的操作符和c/c++中的操作符基本一致,因为我之前学习过C语言和C++,所以本章的内容大部分都已熟知,下面只做简单的介绍。 Java操作符及优先级 Java中的操作符包括算术操作符,关系操作符,逻辑操作符,位运算符、自操作运算符、移位运算符、赋值运算符和其他运算符。 算术操作符:包括加减乘除和取余(%),优先级乘除取余高于加减,都是双元运算符,其中加法(+)可以用来连接两个字符串,比如:...

JetBrains 系列开发工具,如何配置 `SCSS` `File Watcher` ,相关输出配置参数详解:webStorm phpStorm IDEA

JetBrains 系列开发工具,如何配置 SCSS File Watcher ,相关输出配置参数详解:webStorm phpStorm IDEA 前言 你目前已经了解了如何使用 SCSS 进行开发,了解了该文章的内容:『 SCSS 日常用法 』 在 JetBrains 系列开发工具中通过 FileWatcher 进行编译的 SCSS 文件都是通过 sass 这个程序进行的。『 如何添加 Fil...

C语言小函数—二进制与十六进制

测试如下 “` int main() { long int num = 15; } “`...

仿微博或微信的文章多图显示(自定义MultiImageView)

按照一般的规矩,先上张图来供大伙看看 如果大致是大伙们需要实现的功能,不烦一观 自定义MultiImageView 工具类 具体使用 app.gradle中添加依赖 implementation 'com.github.bumptech.glide:glide:4.8.0' AndroidManifest.xml中配置联网权限 <uses-permission android:name=&q...

猜你喜欢

经典进程同步和互斥问题

经典进程同步与互斥问题 前言 一、生产者-消费者问题 1.问题描述 2.问题分析 3.代码 二、读者-写者问题 1.问题描述&&分析 2.代码 三、哲学家进餐问题 1.问题描述&&分析 2.代码 四、理发师问题 1.问题描述&&分析 2.代码 前言 在多道程序设计环境中,进程同步是一个非常重要的问题,下面讨论几个经典的进程同步问题。 一、生产者-消费...

java设计模式——ThreadLocal线程单例

1、定义一个ThreadLocal线程单例,代码如下: 2、定义一个多线程类,代码如下: 3、定义一个测试类,代码如下: 4、输出结果,如下图:...

【tensorflow】线性模型实战

线性模型:y = 1.477 * x + 0.089   1. 采样数据 采样噪声eps在均值0,方差0.01的高斯分布中,而后在均匀分布U(0,1)中,区间[-10,10]进行n=100次随机采样:   2. 计算误差 循环计算每个点的预测值与真是值之间差的平方并累加,从而获得训练集上的均芳误差损失值。   3. 计算梯度   4. 梯度更新 对权重w和偏...

常见损失函数和评价指标总结(附公式&代码)

网上看到一篇很实用的帖子关于常见损失函数和评价指标,收藏下来 本文转载于https://zhuanlan.zhihu.com/p/91511706 ------------------------------------------------------------------------------------------------------------------------------...

为什么 4G/5G 的直播延时依然很高

通信技术的发展促进了视频点播和直播业务的兴起,4G 和 5G 网络技术的进步也使得流媒体技术变得越来越重要,但是网络技术并不能解决流媒体直播的高延迟问题。 本文不会介绍网络对直播业务的影响,而是会分析直播中常见的现象 — 主播和观众之间能够感觉到的明显网络延迟。除了业务上要求的延迟直播之外,有哪些因素会导致视频直播的延迟这么高呢? live-streaming  图 1 - ...