Git 系列:简介安装以及配置管理

文章目录

  • 简介安装
    • 简介
    • Centos安装
  • 配置管理
    • [git help](https://www.git-scm.com/docs/git-help)
      • 概要
      • 选项
      • 示例
      • git-doc
    • [git config](https://www.git-scm.com/docs/git-config)
      • 概要
      • 选项
      • 变量
      • 示例
    • 初始化配置

简介安装

简介

https://git-scm.com/

Git是一个开源的分布式版本控制系统,用于有效、高速地处理从小到大的项目版本管理。它最初由Linux之父Linus Torvalds设计开发,旨在帮助管理Linux内核开发。Git采用了分布式版本库的方式,不需要服务器端软件支持,每个开发人员都可以在自己的计算机上拥有完整的项目副本,独立进行开发、测试和修改。

Git的主要特点包括:

  1. 速度:Git在版本控制方面表现出色,能够高效地处理大规模项目。
  2. 简单的设计:Git具有直观易用的设计,使得开发人员能够轻松上手。
  3. 对非线性开发模式的强力支持:Git允许成千上万个并行开发的分支,为团队协作提供了极大的灵活性。
  4. 完全分布式:Git的分布式特性使得代码管理和版本控制更加灵活和可靠。

Git的基本概念包括仓库(Repository)、提交(Commit)和分支(Branch)。仓库是Git中存储项目代码和历史记录的地方;提交代表着一次代码修改的记录;分支则是基于主线(通常是master分支)的一个代码分支。

Git的主要功能包括从服务器上克隆完整的Git仓库到单机上,创建和合并分支,提交代码,生成补丁等。此外,Git还可以记录软件添加或更改源代码的过程,回滚到特定阶段,恢复误删除的文件等。

Centos安装

#!/bin/bash
#移除以前的git
yum remove git
#添加依赖包
yum install -y curl-devel expat-devel openssl-devel zlib-devel gcc wget
#创建git源码路径
mkdir -p /server/download/git
#进入git源码路径
cd /server/download/git
#下载git源码
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.30.0.tar.gz
#解压git源码
tar -zxvf git-2.30.0.tar.gz
#进入源码路径
cd git-2.30.0
#配置
./configure --prefix=/server/application/git
#编译和编译安装
make && make install
#配置环境变量
echo '#git config.'>>/etc/profile
echo 'export PATH=$PATH:/server/application/git/bin'>>/etc/profile
#立即生效
source /etc/profile
#查看git版本
git --version
#生成密钥
ssh-keygen -t rsa -C "code9342@gmail.com"

配置管理

git help

显示关于 Git 的帮助信息

https://git-scm.com/docs/git-help

概要

git help [-a|--all [--[no-]verbose]][[-i|--info] [-m|--man] [-w|--web]] [COMMAND|GUIDE]
git help [-g|--guides]
git help [-c|--config]

选项

  • -a-all

    • 在标准输出上打印所有可用的命令。此选项会覆盖任何给定的命令或指南名称

    • git help -a
      
    • image

  • -c,–config

    • 列出所有可用的配置变量。这是 git-confi 中列表的简短摘要

    • git help -c
      git help -c | grep format
      
    • image

  • -g,–guides

    • 在标准输出上打印 Git 概念指南的列表。

    • git help -g
      
    • image

  • -i,–info

    • 以信息格式显示命令的手册页。

    • git help -i
      
  • -m,–man

    • 以 man 格式显示命令的手册页。此选项可用于覆盖help.format配置变量中设置的 值。

      默认情况下,man 程序将用于显示手册页,但man.viewer配置变量可用于选择其他显示程序

  • -w,–web

    • 以 Web(HTML) 格式显示命令的手册页。为此将使用网络浏览器。
    • 可以使用配置变量指定 Web 浏览器 help.browser,或者web.browser如果未设置前者。如果没有设置这些配置变量,git web–browse帮助脚本(由 git help 调用)将选择一个合适的默认值。有关这方面的更多信息,请参阅 [git-web–browse1]。

示例

git help config
git config --help
git --help
用法:git [--version] [--help] [-C <路径>] [-c <名称>=<取值>][--exec-path[=<路径>]] [--html-path] [--man-path] [--info-path][-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare][--git-dir=<路径>] [--work-tree=<路径>] [--namespace=<名称>]<命令> [<参数>]这些是各种场合常见的 Git 命令:开始一个工作区(参见:git help tutorial)clone             克隆仓库到一个新目录init              创建一个空的 Git 仓库或重新初始化一个已存在的仓库在当前变更上工作(参见:git help everyday)add               添加文件内容至索引mv                移动或重命名一个文件、目录或符号链接restore           恢复工作区文件rm                从工作区和索引中删除文件sparse-checkout   初始化及修改稀疏检出检查历史和状态(参见:git help revisions)bisect            通过二分查找定位引入 bug 的提交diff              显示提交之间、提交和工作区之间等的差异grep              输出和模式匹配的行log               显示提交日志show              显示各种类型的对象status            显示工作区状态扩展、标记和调校您的历史记录branch            列出、创建或删除分支commit            记录变更到仓库merge             合并两个或更多开发历史rebase            在另一个分支上重新应用提交reset             重置当前 HEAD 到指定状态switch            切换分支tag               创建、列出、删除或校验一个 GPG 签名的标签对象协同(参见:git help workflows)fetch             从另外一个仓库下载对象和引用pull              获取并整合另外的仓库或一个本地分支push              更新远程引用和相关的对象命令 'git help -a''git help -g' 显示可用的子命令和一些概念帮助。
查看 'git help <命令>''git help <概念>' 以获取给定子命令或概念的
帮助。
有关系统的概述,查看 'git help git'

git-doc

#git添加doc文件维护
mkdir -p /server/application/git/share/doc
cd /server/application/git/share/doc
git clone git://git.kernel.org/pub/scm/git/git-htmldocs.git git-doc
git config --global help.htmlpath /server/application/git/share/doc/git-doc
git config --global help.format html
#安装命令行浏览器w3m或links或lynx
yum -y install w3m  #Shift+Q退出

git config

获取和设置仓库或者全局选项

https://git-scm.com/docs/git-config

概要

git config [<file-option>] [--type=<type>] [--show-origin] [-z|--null] name [value [value_regex]]
git config [<file-option>] [--type=<type>] --add name value
git config [<file-option>] [--type=<type>] --replace-all name value [value_regex]
git config [<file-option>] [--type=<type>] [--show-origin] [-z|--null] --get name [value_regex]
git config [<file-option>] [--type=<type>] [--show-origin] [-z|--null] --get-all name [value_regex]
git config [<file-option>] [--type=<type>] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
git config [<file-option>] [--type=<type>] [-z|--null] --get-urlmatch name URL
git config [<file-option>] --unset name [value_regex]
git config [<file-option>] --unset-all name [value_regex]
git config [<file-option>] --rename-section old_name new_name
git config [<file-option>] --remove-section name
git config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
git config [<file-option>] --get-color name [default]
git config [<file-option>] --get-colorbool name [stdout-is-tty]
git config [<file-option>] -e | --edit

选项

  • –add

    • 向选项添加新行而不更改任何现有值

    • [robin->mcode-server->~]$ mkdir git-test
      [robin->mcode-server->~]$ cd git-test/
      [robin->mcode-server->~/git-test]$ git init 
      Initialized empty Git repository in /Users/robin/git-test/.git/
      [robin->mcode-server->~/git-test]$ git config user.name
      robin
      [robin->mcode-server->~/git-test]$ git config --add user.name luobin 
      [robin->mcode-server->~/git-test]$ git config user.name
      luobin
      
    • image

  • –get

    • 获取给定键的值

    • [robin->mcode-server->~/git-test]$ git config --get user.name
      luobin1
      [robin->mcode-server->~/git-test]$ git config  user.name
      luobin1
      

    -image

  • –get-all

    • 与 get 类似,但返回多值键的所有值

    • [robin->mcode-server->~/git-test]$ git config --get-all user.name
      robin
      luobin
      luobin1
      
    • image

  • –get-regexp

    • 与 --get-all 类似,但将名称解释为正则表达式并写出键名称

    • [robin->mcode-server->~/git-test]$ git config --get-regexp user
      user.name robin
      user.email code9342@gmail.com
      user.name luobin
      user.name luobin1
      
    • image

  • –global

    • 对于写入选项:写入全局~/.gitconfig文件而不是存储库

    • 对于读取选项:仅从全局文件~/.gitconfig

    • [robin->mcode-server->~/git-test]$ git config --global user.name 
      robin
      [robin->mcode-server->~/git-test]$ git config --global user.name robin1
      [robin->mcode-server->~/git-test]$ git config --global user.name 
      robin1
      
    • image

  • –system

    • 对于写入选项:写入系统范围 $(prefix)/etc/gitconfig而不是存储库 .git/config
    • 对于读取选项:仅从系统范围读取,$(prefix)/etc/gitconfig 而不是从所有可用文件读取
  • –local

    • 对于写入选项:写入存储库.git/config文件。这是默认行为
    • 对于读取选项:仅从存储库读取,.git/config而不是从所有可用文件读取
  • -f config-file,–file config-file

    • 对于写入选项:写入指定文件而不是存储库.git/config
  • -l,–list

    • 列出配置文件中设置的所有变量及其值

    • git config -l
      
    • image

  • –remove-section

    • 从配置文件中删除给定的部分

    • [robin->mcode-server->~/git-test]$ git config --local -l
      core.repositoryformatversion=0
      core.filemode=true
      core.bare=false
      core.logallrefupdates=true
      core.ignorecase=true
      core.precomposeunicode=true
      user.name=luobin
      [robin->mcode-server->~/git-test]$ git config --remove-section user
      [robin->mcode-server->~/git-test]$ git config --local -l
      core.repositoryformatversion=0
      core.filemode=true
      core.bare=false
      core.logallrefupdates=true
      core.ignorecase=true
      core.precomposeunicode=true
      
    • image

  • –rename-section

    • 将给定部分重命名为新名称

    • [robin->mcode-server->~/git-test]$ git config --rename-section user user.email
      [robin->mcode-server->~/git-test]$ git config --local -l
      core.repositoryformatversion=0
      core.filemode=true
      core.bare=false
      core.logallrefupdates=true
      core.ignorecase=true
      core.precomposeunicode=true
      user.email.name=robin
      
    • image

  • –unset

    • 从配置文件中删除与密钥匹配的行

    • [robin->mcode-server->~/git-test]$ git config --local -l                       
      core.repositoryformatversion=0
      core.filemode=true
      core.bare=false
      core.logallrefupdates=true
      core.ignorecase=true
      core.precomposeunicode=true
      user.name=robin
      [robin->mcode-server->~/git-test]$ git config --unset user.name 
      [robin->mcode-server->~/git-test]$ git config --local -l 
      core.repositoryformatversion=0
      core.filemode=true
      core.bare=false
      core.logallrefupdates=true
      core.ignorecase=true
      core.precomposeunicode=true
      
    • image

  • –unset-all

    • 从配置文件中删除与密钥匹配的行
  • -e,–edit

    • 打开编辑器来修改指定的配置文件;--local(默认)、--system--global

    • git config -e 
      

变量

https://git-scm.com/docs/git-config#_variables

Git 中常用的变量主要涉及到配置选项,这些配置选项决定了 Git 在不同场景下的行为。以下是一些常用的 Git 配置变量及其说明:

  1. user.name和 user.email
    • 这两个变量用于设置提交代码时使用的用户名和邮箱地址。它们通常设置为全局变量,以便在所有仓库中使用相同的身份信息进行提交。
    • 设置方法:git config --global user.name "Your Name"git config --global user.email "your.email@example.com"
  2. core.editor
    • 这个变量用于设置 Git 命令使用的默认文本编辑器,例如当 Git 需要你输入提交信息时。
    • 设置方法:git config --global core.editor "vim"(这里以 vim 为例)
  3. color.ui
    • 这个变量用于控制 Git 命令输出中的颜色显示。设置为 auto 可以让 Git 根据终端是否支持颜色来自动决定是否显示颜色。
    • 设置方法:git config --global color.ui auto
  4. alias
    • 这个变量用于设置 Git 命令的别名,以便用更简短的命令执行常用操作。
    • 设置方法:git config --global alias.st status(这里将 status 命令缩写为 st
  5. credential.helper
    • 这个变量用于配置 Git 的凭据助手,以便在需要时自动提供认证信息,如用户名和密码。
    • 设置方法可能因操作系统和所使用的凭据管理器而异。
  6. remote.origin.url
    • 这个变量用于设置或查看当前仓库远程仓库的 URL。当你克隆一个仓库时,Git 会自动设置这个变量。
    • 查看方法:git config --get remote.origin.url
    • 设置方法通常通过 git remote set-url origin <new_url> 来实现。

这些变量通常存放在三个不同的位置:系统级别的配置文件(如 /etc/gitconfig),用户级别的配置文件(如 ~/.gitconfig),以及当前仓库级别的配置文件(即 .git/config 文件位于仓库根目录下)。不同级别的配置会按照特定的优先级进行覆盖,通常仓库级别的配置会覆盖用户级别和系统级别的同名配置。

要查看或修改这些配置变量,你可以使用 git config 命令,并结合 --system--global--local(默认)选项来指定配置的作用范围。例如,git config --global user.name 用于查看或设置全局的用户名。

示例

初始化配置

git config --global user.name "robin"
git config --global user.email "code9342@gmail.com"
git config --global core.editor "vim"
git config --global alias.co "checkout"
git config --global alias.ci "commit"
git config --global alias.cm "commit -m"
git config --global alias.ps "push"
git config --global alias.pl "pull"
git config --global alias.st "status"
git config --global alias.last "log -1 HEAD"
git config --global alias.unstage "reset HEAD --"
git config --global alias.df "diff"
git config --global alias.dfw "diff --color-words"
git config --global alias.dfc "diff --cached"
git config --global alias.dfl "diff HEAD~"
git config --global alias.br "branch"
git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"
git config --global alias.ad "add"
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)[%an]%Creset' --abbrev-commit --date=relative"
git config --global alias.type "cat-file -t"
git config --global alias.dump "cat-file -p"
git config --global gui.encoding "utf-8"
git config --global il8n.commitEncoding "utf-8"
git config --global il8n.logOutputEncoding "utf-8"
git config --global alias.cl "clone"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理论学习:Softmax层和全连接层 全连接层之前的数据

Softmax层和全连接层 Softmax层和全连接层在深度学习模型中通常是紧密相关的&#xff0c;经常一起使用。 全连接层&#xff08;也称为线性层或密集连接层&#xff09;是深度学习模型中常见的层之一&#xff0c;它将输入张量与权重矩阵相乘&#xff0c;并添加偏置项&#xff0c;…

酒店宾馆医院IPTV电视系统质保期满后怎样进行维护?-酒店宾馆医院IPTV电视系统质保期满常年巡检售后服务攻略

酒店宾馆医院IPTV电视系统质保期满后怎样进行维护&#xff1f;-酒店宾馆医院IPTV电视系统质保期满常年巡检售后服务攻略 北京海特伟业任洪卓发布于2024年3月11日 一、酒店IPTV电视系统简述 酒店IPTV电视系统&#xff0c;是新时代“互联网”在酒店领域的重要应用之一&#xff…

15双体系Java学习之数组的声明和创建

数组的声明 ★小贴士 可以使用int[] a;或者int a[];建议使用第一种风格&#xff0c;因为它将元素类型int[]&#xff08;整型数组&#xff09;与变量名清晰分开了。 在Java中声明数组时不能指定其长度。这种定义是非法的&#xff1a;int a[5]; 注意&#xff1a;上图显示的内存…

JDBC连接MysqL

import java.sql.*;public class Demo {public static void main(String[] args) throws ClassNotFoundException, SQLException {//1.注册驱动&#xff0c;加载驱动&#xff1b;Class.forName("com.mysql.jdbc.Driver");//2.获得连接,返回connection类型的对象&…

重学SpringBoot3-集成Thymeleaf

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Thymeleaf 1. 添加Thymeleaf依赖2. 配置Thymeleaf属性&#xff08;可选&#xff09;3. 创建Thymeleaf模板4. 创建一个Controller5. 运行应用并访问页…

数学建模-模糊性综合评价模型

中医药是中国传统文化的重要组成部分&#xff0c;凝聚了中华民族千百年来智慧的结晶。作为中医的发源地&#xff0c;中国政府一直致力于保护、发展和推广中医药&#xff0c;采取了一系列政策措施[]。目前&#xff0c;中国面临着老龄化日益加剧&#xff0c;老年人群中慢性疾病和…

在家不无聊,赚钱有门道:5个正规线上赚钱平台,轻松开启副业

随着网络技术的快速发展&#xff0c;越来越多的人开始寻求通过网络来探索兼职副业的可能性&#xff0c;期望实现额外的收入。在这个过程中&#xff0c;选择一个正规且可靠的线上兼职平台显得尤为关键。 为此小编精心网上盘点了5个正规且靠谱的线上兼职副业平台。这些平台不仅安…

双环PID控制详细讲解

参考博客&#xff1a; &#xff08;1&#xff09;PID双环控制&#xff08;速度环和位置环&#xff09; &#xff08;2&#xff09;PID控制&#xff08;四&#xff09;&#xff08;单环与双环PID&#xff09; &#xff08;3&#xff09;内外双环pid算法 0 单环PID 目标位置→系…

Promise图解,Pass

10-优化代码_哔哩哔哩_bilibili

2024年,真的别裸辞....

作为IT行业的大热岗位——软件测试&#xff0c;只要你付出了&#xff0c;就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的&#xff0c;但放眼望去&#xff0c;哪个工作不是这样的呢&#xff1f;会有哪家公司愿意养一些闲人呢&#xff1f;…

数据结构 第2章:线性表

文章目录 2.1 线性表的定义和操作2.1.1 线性表的基本概念2.1.2 线性表的基本操作 2.2. 顺序表2.2.1. 顺序表的基本概念2.2.2. 顺序表的实现2.2.3. 顺序表的基本操作 2.3 链表2.3.1 单链表的基本概念2.3.2 单链表的实现2.3.3 单链表的插入2.3.4. 单链表的删除2.3.5. 单链表的查找…

mybatis-plus-generator 使用 velocity 生成前后台代码

操作步骤 1&#xff09;准备mybatis-plus 生成代码的 vm文件 2&#xff09;添加依赖 mybatis-plus-generator 代码生成器的依赖 3&#xff09;执行工具方法生成代码 1、准备 mybatis-plus 生成代码的 vm文件 1&#xff09;找vm模板 去工程的 external Libraries 找到 mybati…

Java SE入门及基础(38)

异常(Exception) 1. 概念 异常 来自官方的说明 An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the programs instructions. 异常是在程序执行期间发生的事件&#xff0c;该事件中断了程序指令的正常流程…

有趣的数学 毕达哥拉斯定理

随便找个学生&#xff0c;让他举出一位著名的数学家——如果他能想到的话&#xff0c;他往往会选择毕达哥拉斯。如果不是&#xff0c;也许他想到的是阿基米德。哪怕是杰出的艾萨克牛顿&#xff0c;在两位古代世界的巨星面前也只能叨陪末座了。阿基米德是一位思想巨人&#xff0…

Day18: 发送邮件、开发注册功能

在这里记一下。原来的html中的css和js路径下载不下来&#xff0c;需要换成&#xff1a; <link href"https://cdn.jsdelivr.net/npm/bootstrap5.3.3/dist/css/bootstrap.min.css" rel"stylesheet" integrity"sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6Y…

Python 一步一步教你用pyglet制作汉诺塔游戏(终篇)

目录 汉诺塔游戏 完整游戏 后期展望 汉诺塔游戏 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;是一个源于印度古老传说的益智玩具。这个传说讲述了大梵天创造世界的时候&#xff0c;他做了三根金刚石柱子&#xff0c;并在其中一根柱子上从下往上按照大小顺序摞…

Unsupervised RL:METRA: Scalable Unsupervised RL with Metric-Aware Abstraction

ICLR 2024 Oral paper Intro 无监督RL旨在发现潜在的行为帮助提高下游任务效率以往方法集中于探索以及基于互信息的技能发现(skill)。然而去前者在高危复杂空间实现困难&#xff0c;后者也容易因为缺乏激励导致探索能力不足。本文提出METRA核心观点认为与其在复杂状态空间处理…

[leetcode~dfs]1261. 在受污染的二叉树中查找元素

给出一个满足下述规则的二叉树&#xff1a; root.val 0 如果 treeNode.val x 且 treeNode.left ! null&#xff0c;那么 treeNode.left.val 2 * x 1 如果 treeNode.val x 且 treeNode.right ! null&#xff0c;那么 treeNode.right.val 2 * x 2 现在这个二叉树受到「污…

Games101笔记-计算机图形学概述

光栅化&#xff1a;把三维空间的几何形体显示在屏幕上 实时&#xff1a;每秒30帧的画面 曲线和曲面&#xff1a; 如何表示一条光滑曲线&#xff0c;如何表示曲面如何用简单的曲面通过细分的方法得到更复杂的曲面在形状发生变化时&#xff0c;面要如何变化&#xff0c;如何保…

深入学习默认成员函数——c++指南

前言&#xff1a;类和对象是面向对象语言的重要概念。 c身为一门既面向过程&#xff0c;又面向对象的语言。 想要学习c&#xff0c; 首先同样要先了解类和对象。 本节就类和对象的几种构造函数相关内容进行深入的解析。 目录 类和对象的基本概念 封装 类域和类体 访问限定符…