分布式版本控制系统 Git

目录

一、Git简介

二、Git历史

三、安装git

1.准备环境

2.Yum安装Git

四、初次运行 Git 前的配置

命令集

实例:

五、Git命令常规操作

 六、获取 Git 仓库(初始化仓库)

创建裸库

实例 :

创建本地库


一、Git简介

        官网:Git

        git是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。

        Git 官方中文手册 Git - Book

二、Git历史

         自2002年开始,林纳斯·托瓦兹决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。因为BitKeeper为专有软件,这个决定在社区中长期遭受质疑。在Linux社区中,特别是理查德·斯托曼与自由软件基金会的成员,主张应该使用开放源代码的软件来作为Linux核心的版本控制系统。林纳斯·托瓦兹曾考虑过采用现成软件作为版本控制系统(例如Monotone),但这些软件都存在一些问题,特别是性能不佳。现成的方案,如CVS的架构,受到林纳斯·托瓦兹的批评。

        2005年,安德鲁·垂鸠写了一个简单程序,可以连接BitKeeper的存储库,BitKeeper著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对BitKeeper内部使用的协议进行逆向工程,决定收回无偿使用BitKeeper的授权。Linux内核开发团队与BitMover公司进行蹉商,但无法解决他们之间的歧见。林纳斯·托瓦兹决定自行开发版本控制系统替代BitKeeper,以十天的时间,编写出第一个git版本

三、安装git

1.准备环境

        关闭防火墙和selinux

2.Yum安装Git

1)centos 自带git

        直接yum安装即可

yum install git -y

2)也可以选择源码安装

        编译安装可以安装较新版本的git

Git下载地址: Releases · git/git · GitHub

        选择对应的git版本tar包下载并解压

tar -zxf git-2.0.0.tar.gz

        安装依赖关系

yum install curl-devel expat-devel gettext-devel  openssl-devel zlib-devel autoconf gcc perl-ExtUtils-MakeMaker

        编译安装 

cd git-2.0.0./configure --prefix=/usr/local/git # 没有文件可以略过make  make install  

四、初次运行 Git 前的配置

命令集

git config --global user.name "username"  #配置git使用用户git config --global user.email "email@mail.com"  #配置git使用邮箱git config --global color.ui true  #语法高亮git config --list # 查看全局配置

实例:

我们现在准备两台服务器同时安装git并建立初次运行 Git 前的配置为后面得操作做准备

git:

git2:

五、Git命令常规操作

常用命令说明

命令命令说明
#add添加文件内容至索引
bisect通过二分查找定位引入 bug 的变更
#branch列出、创建或删除分支
#checkout检出一个分支或路径到工作区
#clone克隆一个版本库到一个新目录
#commit记录变更到版本库
#diff显示提交之间、提交和工作区之间等的差异
fetch从另外一个版本库下载对象和引用
grep输出和模式匹配的行
#init创建一个空的
#log显示提交日志
#merge合并两个或更多开发历史
#mv移动或重命名一个文件、目录或符号链接
#pull获取并合并另外的版本库或一个本地分支
#push更新远程引用和相关的对象
rebase本地提交转移至更新后的上游分支中
#reset重置当前HEAD到指定状态
#rm从工作区和索引中删除文件
show显示各种类型的对象
#status显示工作区状态
#tag创建、列出、删除或校验一个GPG签名的 tag 对象

 六、获取 Git 仓库(初始化仓库)

创建裸库

创建git用户useradd git设置密码
passwd git创建仓库目录库可自定义
mkdir /git-root/进入仓库目录
cd /git-root/git init --bare .git结尾的库名修改属主属组
chown -R git:git shell.git

实例 :

git2创建裸库

创建本地库

实例:

git服务器操作


建立免密互信


ssh-keygenssh-copy-id git@10.12.153.71

克隆git2刚才创建的裸库

git clone git@10.12.153.71:/git-root/ztn.git

进入克隆过来的库创建一个库文件

cd ztnvim test1.sh
#内容可以自定义:

添加文件内容至索引

git add test1.sh

记录到版本库中

 git commit -m  '第一次记录'  #-m 指定标签

更新到远程仓库

git push origin master

 现在我们回到git2服务器上查看刚才创建的库文件

cd /git-root/ztn.git/objects/tree

 显示文件内容

git cat-file -p  591aabe36

# 显示文件类型

git cat-file -t  591aabe36

# 显示文件大小

git cat-file -s  591aabe36

希望能够帮助到大家!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1113355.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

flink sql 实战实例 及延伸问题:聚合/数据倾斜/DAU/Hive流批一体 等

flink sql 实战实例 及延伸问题 Flink SQL 计算用户分布Flink SQL 计算 DAU多topic 数据更新mysql topic接入mysql引入 upsert-kafka-connector 以1.14.4版本为例 数据倾斜问题:让你使用用户心跳日志(20s 上报一次)计算同时在线用户、DAU 指标…

Linux离线安装插件

当公司Linux环境无外网情况下,需要先下载好离线安装包,然后上传到服务器,进行安装。 这里介绍一个下载插件安装包的网站,可以搜索到lrzsz、lsof、telnet、unzip、zip等安装包 搜索到想要的插件安装包后,下载并上传到服…

集合可视化:rainbow box与欧拉图

论文:A new diagram for amino acids: User study comparing rainbow boxes to Venn/Euler diagram 最近偶然看到了这篇论文,觉得很有意思,针对的任务是集合数据的可视化。 我们用示例来说明,比如图二的欧拉图,展示的…

备考2025年AMC8数学竞赛:2000-2024年AMC8真题练一练

我们今天来随机看五道AMC8的真题和解析,对于想了解或者加AMC8美国数学竞赛的孩子来说,吃透AMC8历年真题是备考最科学、最有效的方法之一。 为帮助孩子们更高效地备考,我整理了2000-2004年的全部AMC8真题,并且独家制作了多种在线练…

【蝶变跃升】壹起来|就业辅导系列活动——职业生涯规划和模拟面试

为使困难家庭更深层次了解自己就业现状,明确就业方向,同时提升在面试时的各类技巧。2024年2月17日,由平湖市民政局主办、平湖吾悦广场和上海聘也科技有限公司协办、平湖市壹起来公益发展中心承办的“蝶变跃升”就业辅导系列——职业生涯规划和…

探究网络工具nc(netcat)的使用方法及安装步骤

目录 🐶1. 什么是nc(netcat)? 🐶2. nc(netcat)的基本使用方法 2.1 🥙使用 nc 进行端口监听 2.2 🥙使用 nc 进行端口扫描 2.3 🥙使用 Netcat 进行文件传输…

C#知识点-14(索引器、foreach的循环原理、泛型、委托)

索引器 概念:索引器能够让我们的对象,以索引(下标)的形式,便捷地访问类中的集合(数组、泛型集合、键值对) 应用场景: 1、能够便捷地访问类中的集合 2、索引的数据类型、个数、顺序不…

IDEA 2021.3激活

1、打开idea,在设置中查找Settings/Preferences… -> Plugins 内手动添加第三方插件仓库地址:https://plugins.zhile.io搜索:IDE Eval Reset 插件进行安装。应用和使用,如图

harmony 鸿蒙安全和高效的使用N-API开发Native模块

简介 N-API 是 Node.js Addon Programming Interface 的缩写,是 Node.js 提供的一组 C API,封装了V8 引擎的能力,用于编写 Node.js 的 Native 扩展模块。通过 N-API,开发者可以使用 C 编写高性能的 Node.js 模块,同时…

Linux篇:开发工具yum/vim/gcc/g++/Makefile/gdb

一. yum:软件包管理器 什么是软件包? 在Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 . 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好 , 做成软件包 (可以理解成windows 上的安装程序) 放在…

【Vuforia+Unity】AR05-实物3D模型识别功能实现

对于3D物体的识别,可以是虚拟的也可以是实物的,但是对于虚拟的三维模型意义不大,我们完全可以把三维模型放在屏幕上截一张图,以图片识别的方式召唤数字内容,不过在虚拟现实中或许有用。 因此本文探讨的技术路线主要是…

网络安全“三保一评”深度解析

“没有网络安全就没有国家安全”。近几年,我国法律法规陆续发布实施,为承载我国国计民生的重要网络信息系统的安全提供了法律保障,正在实施的“3保1评”为我国重要网络信息系统的安全构筑了四道防线。 什么是“3保1评”? 等保、分…

Java并发基础:原子类之AtomicBoolean全面解析

本文概要 AtomicBoolean类优点在于能够确保布尔值在多线程环境下的原子性操作,避免了繁琐的同步措施,它提供了高效的非阻塞算法实现,可以大大提成程序的并发性能,AtomicBoolean的API设计非常简单易用。 AtomicBoolean核心概念 …

STM32 TIM2重映射

STM32定时器 文章目录 STM32定时器[TOC](文章目录) 前言一、问题分析二、代码 前言 最近想弄一个多路输出PWM,但是发现TIM2不能用,根据手册也对它进行重映射了,但是还是不能用,用示波器发现驱动能力比较弱,然后禁用jt…

jvm垃圾收集器-三色标记算法

1.对象已死吗? 在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象). 引计数法 引用计数算法是一…

打造个性化电子画册,提升品牌魅力

​个性化电子画册可以根据不同的用户群体,提供不同的内容。企业可以根据目标客户的特点,为他们定制不同的内容,如产品介绍、品牌故事、企业文化等。这样不仅可以吸引更多的用户关注,还可以增强用户对品牌的信任度。 但是怎么制作电…

【Linux基础】vim、常用指令、组管理和组权限

Linux基础 1、目录结构2、vi和vim3、常用指令运行级别找回密码帮助指令时间日期指令搜索查找文件目录操作磁盘管理指令压缩和解压缩 4、组管理和组权限用户操作指令权限 1、目录结构 Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”&a…

【设计模式】01-装饰器模式Decorator

作用:在不修改对象外观和功能的情况下添加或者删除对象功能,即给一个对象动态附加职能 装饰器模式主要包含以下角色。 抽象构件(Component)角色:定义一个抽象接口以规范准备接收附加责任的对象。具体构件&#xff08…

qt-OPENGL-星系仿真

qt-OPENGL-星系仿真 一、演示效果二、核心程序三、下载链接 一、演示效果 二、核心程序 #include "model.h"Model::Model(QOpenGLWidget *_glWidget) { glWidget _glWidget;glWidget->makeCurrent();initializeOpenGLFunctions(); }Model::~Model() {destroyV…

hung task, soft lockup, hard lockup, workqueue stall

hung task,soft lockup,hard lockup,workqueue stall 是 linux 内核中的异常检测机制,这 4 个检测均是通过时间维度上的检测来判断异常。 在时间维度上的检测机制,有两个核心的点: (1&#xff…