Git 系列:简介安装以及配置管理
简介安装
简介
Git是一个开源的分布式版本控制系统,用于有效、高速地处理从小到大的项目版本管理。它最初由Linux之父Linus Torvalds设计开发,旨在帮助管理Linux内核开发。Git采用了分布式版本库的方式,不需要服务器端软件支持,每个开发人员都可以在自己的计算机上拥有完整的项目副本,独立进行开发、测试和修改。
Git的主要特点包括:
- 速度:Git在版本控制方面表现出色,能够高效地处理大规模项目。
- 简单的设计:Git具有直观易用的设计,使得开发人员能够轻松上手。
- 对非线性开发模式的强力支持:Git允许成千上万个并行开发的分支,为团队协作提供了极大的灵活性。
- 完全分布式: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 的帮助信息
概要
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

-c,--config
列出所有可用的配置变量。这是 git-confi 中列表的简短摘要
git help -c
git help -c | grep format

-g,--guides
在标准输出上打印 Git 概念指南的列表。
git help -g

-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
获取和设置仓库或者全局选项
概要
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

--get
获取给定键的值
[robin->mcode-server->~/git-test]$ git config --get user.name
luobin1
[robin->mcode-server->~/git-test]$ git config user.name
luobin1
-

--get-all
与 get 类似,但返回多值键的所有值
[robin->mcode-server->~/git-test]$ git config --get-all user.name
robin
luobin
luobin1

--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

--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

--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

--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

--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

--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

--unset-all
- 从配置文件中删除与密钥匹配的行
-e,--edit
打开编辑器来修改指定的配置文件;
--local(默认)、--system、--globalgit config -e
变量
https://git-scm.com/docs/git-config#_variables
Git 中常用的变量主要涉及到配置选项,这些配置选项决定了 Git 在不同场景下的行为。以下是一些常用的 Git 配置变量及其说明:
- user.name和 user.email
- 这两个变量用于设置提交代码时使用的用户名和邮箱地址。它们通常设置为全局变量,以便在所有仓库中使用相同的身份信息进行提交。
- 设置方法:
git config --global user.name "Your Name"和git config --global user.email "your.email@example.com"
- core.editor
- 这个变量用于设置 Git 命令使用的默认文本编辑器,例如当 Git 需要你输入提交信息时。
- 设置方法:
git config --global core.editor "vim"(这里以 vim 为例)
- color.ui
- 这个变量用于控制 Git 命令输出中的颜色显示。设置为
auto可以让 Git 根据终端是否支持颜色来自动决定是否显示颜色。 - 设置方法:
git config --global color.ui auto
- 这个变量用于控制 Git 命令输出中的颜色显示。设置为
- alias
- 这个变量用于设置 Git 命令的别名,以便用更简短的命令执行常用操作。
- 设置方法:
git config --global alias.st status(这里将status命令缩写为st)
- credential.helper
- 这个变量用于配置 Git 的凭据助手,以便在需要时自动提供认证信息,如用户名和密码。
- 设置方法可能因操作系统和所使用的凭据管理器而异。
- 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"
Git 系列:简介安装以及配置管理的更多相关文章
- Git(一)Git的简介安装
一.git历史 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代.Linux 内核开源项目有着为数众广的参与者.绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐 ...
- Git入门到高级系列1-git安装与基础命令
视频课程地址 腾讯课堂 为什么要进行项目文件的版本管理 代码备份和恢复 团队开发和协作流程 项目分支管理和备份 git 是什么? git是一个分布式的版本控制软件.版本控制是一种记录一个或若干文件内容 ...
- Git 系列教程(2)- Git 安装
前言 直接复制官网的教程了,不对自己百度吧,不然就参考下我的几篇文章 Linux安装Git(源码安装) https://www.cnblogs.com/poloyy/p/12186802.html 在 ...
- Atlassian 系列软件安装(Crowd+JIRA+Confluence+Bitbucket+Bamboo)
公司使用的软件开发和协作工具为 Atlassian 系列软件,近期需要从腾讯云迁移到阿里云环境,简单记录下安装和配置过程.(Atlassian 的文档非常详尽,过程中碰见的问题都可以找到解决办法.) ...
- Git系列②之部署企业级开源仓库gitlab服务器
Git系列②之部署企业级开源仓库gitlab服务器 上一篇我们介绍了github的常见使用方法,下面开始部署本地开源仓库gitlab GitLab 是一个用于仓库管理系统的开源项目. 1.安装配置gi ...
- 如何在CentOS 7中安装最新Git(源码安装)
如何在CentOS 7中安装最新Git 2017年05月20日 11:49:53 阅读数:1624 Git是在今天的软件开发行业一个非常有用的版本控制工具.我一直使用Git.于是为Linux公社的读者 ...
- 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明)
系列文章 1. 开源一款强大的文件服务组件(QJ_FileCenter)(系列一) 2. 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明) 3. 开源一款强大的文件服务组件 ...
- Docker入门系列2 安装
可以从 Docker 社区直接下载可用的模版或镜像. Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多. 其次,Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Do ...
- Docker 技术系列之安装Docker Desktop for Mac
终于要进入到Docker技术系列了,感谢大家的持续关注. 为什么要选择Docker?因为Docker 轻巧快速,提供了可行.经济.高效的替代方案.举个例子,安装Nginx,Mysql,Redis等常用 ...
- 【django-vue】前端取消默认样式 main.js配置 后端主页模块接口 跨域问题详解 项目自定义配置 git介绍和安装
目录 回顾 上节课回顾 今日内容 1 前端全局样式和js配置 1.1 global.css 1.2 settings.js 1.3 main.js 2 后端主页模块接口 三种开发模式 模型父类Base ...
随机推荐
- 强化学习从基础到进阶-常见问题和面试必知必答[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战
强化学习从基础到进阶-常见问题和面试必知必答[3]:表格型方法:Sarsa.Qlearning:蒙特卡洛策略.时序差分等以及Qlearning项目实战 1.核心词汇 概率函数和奖励函数:概率函数定量地 ...
- DAPR-分布式系统运行时简介
Dapr全称Distributed Application Runtime,翻译过来就是分布式应用程序运行时,在v1.0发布后得到了极大的发展.本章将向你介绍Dapr架构的核心概念,为您使用Dapr进 ...
- AOKO奥科美2.5英寸外置硬盘盒开箱
上次在坛子里发布了一个帖子,然后根据坛友们的反馈,换购了另一个SATA固态硬盘.另一个是配套的硬盘盒,当时在某宝上搜了一圈,最终购买了这款硬盘盒,主要是因为它的外观,旁边有散热片.这款硬盘盒在某宝上不 ...
- uni-uadmin后台管理系统|uniapp+uView跨端后台框架实例
基于uniapp+uview+uni-ui跨平台手机端后台管理系统UniappUAdmin. uniapp-uadmin 基于uni-app+uView+uniUI研发的跨端手机后台管理系统项目.全新 ...
- IntelliJ IDEA 在电脑上安装多个JDK 切换的方法
在电脑上来回切换多个版本的JDK进行开发,方法很简单: 1.下载jdk 下载的时候不要下载安装包,而是下载zip包,这样直接解压就可,不污染注册表,难引起其他问题 2.解压后 把JDK配置到IDEA里 ...
- 深入读懂 Kafka集群
前言 概述 Kafka是一个多分区.多副本的分布式流处理平台,以高吞吐.可持久化.可水平扩展.支持流数据处理等多种特性被广泛使用. 应用场景 (1)缓冲削峰:有利于解决生产消息和消费消息的处理速度不一 ...
- NC18985 数字权重
题目链接 题目 题目描述 小a有一个n位的数字,但是它忘了各个位上的数是什么,现在请你来确定各个位上的数字,满足以下条件: 设第i位的数为ai,其中a1为最高位,an为最低位,K为给定的数字 不含前导 ...
- PyOCD Notes
Installation Ubuntu20.04 For Ubuntu20.04 the version in apt repository is 0.13.1+dfsg-1, which is to ...
- 使用JS保存数据
1 保存到text中 demo1.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...
- django学习第八天--多表操作删除和修改,子查询连表查询,双下划线跨表查询,聚合查询,分组查询,F查询,Q查询
orm多条操作 删除和修改 修改 在一对一和一对多关系时,和单表操作是一样的 一对一 一个作者对应一个信息 ad_obj = models.AuthorDetail.objects.get(id=1) ...