https://git-scm.com/
Git是一个开源的分布式版本控制系统,用于有效、高速地处理从小到大的项目版本管理。它最初由Linux之父Linus Torvalds设计开发,旨在帮助管理Linux内核开发。Git采用了分布式版本库的方式,不需要服务器端软件支持,每个开发人员都可以在自己的计算机上拥有完整的项目副本,独立进行开发、测试和修改。
Git的主要特点包括:
Git的基本概念包括仓库(Repository)、提交(Commit)和分支(Branch)。仓库是Git中存储项目代码和历史记录的地方;提交代表着一次代码修改的记录;分支则是基于主线(通常是master分支)的一个代码分支。
Git的主要功能包括从服务器上克隆完整的Git仓库到单机上,创建和合并分支,提交代码,生成补丁等。此外,Git还可以记录软件添加或更改源代码的过程,回滚到特定阶段,恢复误删除的文件等。
#!/bin/bash#移除以前的gityum 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/profileecho 'export PATH=$PATH:/server/application/git/bin'>>/etc/profile#立即生效source /etc/profile#查看git版本git --version#生成密钥ssh-keygen -t rsa -C "code9342@gmail.com"
#!/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 的帮助信息 https://git-scm.com/docs/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]
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 -cgit help -c | grep format
git help -c
git help -c | grep format
-g,--guides
在标准输出上打印 Git 概念指南的列表。
git help -g
-i,--info
以信息格式显示命令的手册页。
git help -i
-m,--man
以 man 格式显示命令的手册页。此选项可用于覆盖help.format配置变量中设置的 值。
help.format
默认情况下,man 程序将用于显示手册页,但man.viewer配置变量可用于选择其他显示程序
man.viewer
-w,--web
help.browser
web.browser
git help configgit config --helpgit --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 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文件维护mkdir -p /server/application/git/share/doccd /server/application/git/share/docgit clone git://git.kernel.org/pub/scm/git/git-htmldocs.git git-docgit config --global help.htmlpath /server/application/git/share/doc/git-docgit config --global help.format html#安装命令行浏览器w3m或links或lynxyum -y install w3m #Shift+Q退出
#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退出
获取和设置仓库或者全局选项 https://git-scm.com/docs/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 valuegit 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 URLgit 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_namegit config [<file-option>] --remove-section namegit config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --listgit config [<file-option>] --get-color name [default]git config [<file-option>] --get-colorbool name [stdout-is-tty]git config [<file-option>] -e | --edit
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.namerobin[robin->mcode-server->~/git-test]$ git config --add user.name luobin [robin->mcode-server->~/git-test]$ git config user.nameluobin
[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
luobin
--get
获取给定键的值
[robin->mcode-server->~/git-test]$ git config --get user.nameluobin1[robin->mcode-server->~/git-test]$ git config user.nameluobin1
[robin->mcode-server->~/git-test]$ git config --get user.name
luobin1
-
--get-all
与 get 类似,但返回多值键的所有值
[robin->mcode-server->~/git-test]$ git config --get-all user.namerobinluobinluobin1
[robin->mcode-server->~/git-test]$ git config --get-all user.name
--get-regexp
与 --get-all 类似,但将名称解释为正则表达式并写出键名称
[robin->mcode-server->~/git-test]$ git config --get-regexp useruser.name robinuser.email code9342@gmail.comuser.name luobinuser.name luobin1
[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
对于读取选项:仅从全局文件~/.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
[robin->mcode-server->~/git-test]$ git config --global user.name
[robin->mcode-server->~/git-test]$ git config --global user.name robin1
robin1
--system
$(prefix)/etc/gitconfig
.git/config
--local
-f config-file,--file config-file
-l,--list
列出配置文件中设置的所有变量及其值
git config -l
--remove-section
从配置文件中删除给定的部分
[robin->mcode-server->~/git-test]$ git config --local -lcore.repositoryformatversion=0core.filemode=truecore.bare=falsecore.logallrefupdates=truecore.ignorecase=truecore.precomposeunicode=trueuser.name=luobin[robin->mcode-server->~/git-test]$ git config --remove-section user[robin->mcode-server->~/git-test]$ git config --local -lcore.repositoryformatversion=0core.filemode=truecore.bare=falsecore.logallrefupdates=truecore.ignorecase=truecore.precomposeunicode=true
[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
--rename-section
将给定部分重命名为新名称
[robin->mcode-server->~/git-test]$ git config --rename-section user user.email[robin->mcode-server->~/git-test]$ git config --local -lcore.repositoryformatversion=0core.filemode=truecore.bare=falsecore.logallrefupdates=truecore.ignorecase=truecore.precomposeunicode=trueuser.email.name=robin
[robin->mcode-server->~/git-test]$ git config --rename-section user user.email
user.email.name=robin
--unset
从配置文件中删除与密钥匹配的行
[robin->mcode-server->~/git-test]$ git config --local -l core.repositoryformatversion=0core.filemode=truecore.bare=falsecore.logallrefupdates=truecore.ignorecase=truecore.precomposeunicode=trueuser.name=robin[robin->mcode-server->~/git-test]$ git config --unset user.name [robin->mcode-server->~/git-test]$ git config --local -l core.repositoryformatversion=0core.filemode=truecore.bare=falsecore.logallrefupdates=truecore.ignorecase=truecore.precomposeunicode=true
user.name=robin
[robin->mcode-server->~/git-test]$ git config --unset user.name
--unset-all
-e,--edit
打开编辑器来修改指定的配置文件;--local(默认)、--system、--global
git config -e
https://git-scm.com/docs/git-config#_variables
Git 中常用的变量主要涉及到配置选项,这些配置选项决定了 Git 在不同场景下的行为。以下是一些常用的 Git 配置变量及其说明:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global core.editor "vim"
auto
git config --global color.ui auto
git config --global alias.st status
status
st
git config --get remote.origin.url
git remote set-url origin <new_url>
这些变量通常存放在三个不同的位置:系统级别的配置文件(如 /etc/gitconfig),用户级别的配置文件(如 ~/.gitconfig),以及当前仓库级别的配置文件(即 .git/config 文件位于仓库根目录下)。不同级别的配置会按照特定的优先级进行覆盖,通常仓库级别的配置会覆盖用户级别和系统级别的同名配置。
/etc/gitconfig
要查看或修改这些配置变量,你可以使用 git config 命令,并结合 --system、--global 或 --local(默认)选项来指定配置的作用范围。例如,git config --global user.name 用于查看或设置全局的用户名。
git config
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 config --global user.name "robin"
git config --global user.email "code9342@gmail.com"
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"
微信:17873041739
原文链接:https://www.cnblogs.com/vic-tory/p/18067304
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728