开源分布式版本控制系统 git:基础篇章
Git 是一个免费的,开源的分布式版本控制系统,可以快速高效地处理从小型或大型的各种项目。Git 容易学习,占用空间小,性能极快。
1、Git安装
(1) windows软件官网地址为:
git-scm.com/软件下载地址为:
github.com/git-for-windows/git/rel...
下载后点击安装即可。
(2) Linux下载地址:
github.com/git/git/tags
cd /Software
wget https://github.com/git/git/archive/refs/tags/v2.43.0.tar.gz
tar -zxvf v2.43.0.tar.gz
查看已安装的CentOS版本信息:
第一种方式:cat /proc/version
第二种方式:uname -a
第三种方式:uname -r
如何查看linux版本:
第一种方式使用这个命令查看 lsb_release -a
第二种方式使用这个命令查看 执行cat /etc/redhat-release
查看系统是64位还是32位:
第一种方式:getconf LONG_BIT
输出:
64
第二种方式:file /bin/ls
输出:
/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
...
stripped
第三种方式:lsb_release -a
输出:
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 8.4.2105
Release: 8.4.2105
Codename: n/a
#系统(CentOS Linux release 8.4.2105)自带git ,git不是最新的
git version
输出:
git version 2.27.0
卸载自带版本:
yum -y remove git
安装相关依赖:
yum install -y zlib-devel autoconf gettext-devel expat-devel --assumeyes gcc openssl-devel curl-devel expat-devel
cd git-2.43.0
make prefix=/usr/local/git install
出现:
GIT_VERSION = 2.43.0
* new build flags
CC oss-fuzz/fuzz-c
.
.
.
cp "$execdir/git-remote-http" "$execdir/$p" || exit; } \
done
安装完成
查看版本:
/usr/local/git/bin/git version
/usr/local/git/bin/git -v
输出:
git version 2.43.0
此时在/usr/local/git/bin/git下才能执行,需要配置环境变量
添加下面一行代码:
未配置git环境变量前:
export PATH=/usr/local/nginx/sbin:$PATH
配置git环境变量后:
export PATH=/usr/local/nginx/sbin:/usr/local/git/bin/:$PATH
保存退出,载入配置使其生效:source /etc/profile
现在不在/usr/local/git/目录执行:
cd /Software
git version 或 git -v
输出:
git version 2.43.0
2、区域
Git软件为了更方便地对文件进行版本控制,根据功能得不同划分了三个区域
存储区域:Git软件用于存储资源得区域。一般指得就是.git文件夹
工作区域:Git软件对外提供资源得区域,此区域可人工对资源进行处理。
暂存区:Git用于比对存储区域和工作区域得区域。Git根据对比得结果,可以对不同状态得文件执行操作。
3、基础指令
Git软件是免费、开源的。最初Git软件是为辅助 Linux 内核开发的一套软件,所以在使用时,简单常用的linux系统操作指令是可以直接使用的。
(1)linux系统基础操作指令
指令 | 含义 | 说明 |
---|---|---|
cd 目录 | change directory | 改变操作目录 |
cd .. | 退回到上一级目录 | |
pwd | Print work directory | 打印工作目录 |
ls | list directory contents | 显示当前目录的文件及子文件目录 |
ll | ls -l 简化版本 | 更详细地显示当前目录的文件及子文件目录 |
mkdir 文件夹名称 | make directory | 新建一个文件夹 |
rm 文件/目录(空) | Remove | 删除文件和空目录 |
rm -r 目录 | Remove | 删除文件目录,-r 递归删除, -rf 递归强制删除 |
touch 文件 | 如果创建的文件不存在,那么创建一个空文件 | |
reset | 清屏 | |
clear | 清屏 | |
exit | 退出终端窗口 |
(2)git设置用户名称和邮箱
git config --global user.name "tinkq"
git config --global user.email "thinkq@163.com"
(3)生成密钥
SSH-keygen用法:
ssh-keygen -t rsa -f ~/.ssh/thinkQ -C "thinkq@163.com"
(1)注意:ssh 与 -kengen之间没有空格
-t
加密方式选 rsa|dsa均可以,默认dsa
ssh-keygen -t rsa #使用rsa加密
(2)-f 生成的文件名和文件位置
使用 ssh-kengen 会在~/.ssh/目录下生成两个文件,不指定文件名和密钥类型的时候,默认生成的两个文件是:
id_rsa
id_rsa.pub
第一个是私钥文件,第二个是公钥文件。
生成ssh key的时候,可以通过 -f 选项指定生成文件的文件名以及生成在那个目录,如下:
ssh-keygen -t rsa -f ~/.ssh/thinkQ -C "thinkq@163.com"
加密方式 生成在的目录/文件名 备注
如果没有指定文件名,会询问你输入文件名:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): thinkQ
你可以输入你想要的文件名,此时输入thinkq@163.com
注意:-f ~/.ssh/thinkQ 如果不指定目录,生成的公钥、私钥在执行命令目录。
(3)-C
备注
(4)分支管理
git branch 分支名 #新建分支
git branch -b 分支名 #新建并切换到新建的分支上
git checkout 分支名 #切换分支
git branch #查看分支列表
git branch -v #查看所有分支最后一次操作
git branch -vv #查看当前分支
git brabch -b 分支名 origin/分支名 #创建远程分支到本地
git branch --merged #查看别的分支和当前分支合并过的分支
git branch --no-merged #查看未与当前分支合并的分支
git branch -d 分支名 #删除本地分支
git branch -D 分支名 #强制删除分支
git push origin -delete 分支名 #删除远处仓库分支
git merge 分支名 #合并分支到当前分支上
(5)暂存指令
git stash #暂存当前修改
git stash apply #恢复最近一次暂存
git stash pop #恢复暂存并删除暂存记录
git stash list #查看暂存列表
git stash drop 暂存名(例:stash@{0}) #移除某次暂存
git stash clear #清除暂存
(6)回退指令
git reset --hard HEAD #回退到上一个版本
git reset --hard ahdhs1(commit_id) #回退到某个版本
git checkout -- file#撤销修改的文件(若文件加入到了暂存区,则回退到暂存区,若文件加入到了版本库,则还原至加入版本库之后的状态)
git reset HEAD file #撤回暂存区的文件修改到工作区
(7)标签指令
git tag 标签名 #添加标签(默认当前版本)
git tag 标签名 commit_id #对某一提交记录打标签
git tag -a 标签名 -m '描述' #创建新标签以及增加备注
git tag #列出所有标签列表
git show 标签名 #查看标签信息
git tag -d 标签名 #删除本地标签
git push origin 标签名 #推送标签到远程仓库
git push origin --tags #推送所有标签到远程仓库
git push origin :refs/tags/标签名 #从远程仓库中删除标签
(8)常用指令
git add . #提交全部(一般初始化项目)
git add -A #提交所有变动
git add -f 文件名 #强制将文件提交
git push origin test #推送本地分支到远程仓库
git rm -r --cached 文件/文件夹名字 #取消文件被版本控制
git reflog #获取执行过的命令
git log --graph #查看分支合并图
git merge --no-ff -m '合并描述' 分支名 #不使用Fast forward方式合并,采用这种方式合并可以看到合并记录
git check-ignore -v 文件名 #查看忽略规则
(9)仓库相关
git init #初始化
git pull 分支名 #拉取并且合并
git fetch #获取远程仓库中所有的分支到本地
以下是 git remote 命令的常见用法:
git remote:列出当前仓库中已配置的远程仓库。
git remote -v:列出当前仓库中已配置的远程仓库,并显示它们的 URL。
git remote add <remote_name> <remote_url>:添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。
git remote rename <old_name> <new_name>:将已配置的远程仓库重命名。
git remote remove <remote_name>:从当前仓库中删除指定的远程仓库。
git remote set-url <remote_name> <new_url>:修改指定远程仓库的 URL。
git remote show <remote_name>:显示指定远程仓库的详细信息,包括 URL 和跟踪分支。
(10)解决每次都要输入密码
https形式,会让每次输入密码,进行如下配置
git config --global credential.helper storegit pull /git push (第一次输入,后续就不用再输入了)
4、优质 git 学习资料
git-scm.com/docs
gitee.com/all-about-git
oschina.gitee.io/learn-git-branchi...
www.runoob.com/git/git-tutorial.ht...
www.bookstack.cn/read/git-tutorial...
www.liaoxuefeng.com/wiki/896043488...
本篇文章基础篇掌握后基本能胜任日常工作。
git 系列还会更新一期,下期高阶篇更新点主要包括:SSH免密登录、Deployer 自动化部署、Gitlab 使用、 jenkins 自动化部署。下雪了,要去赶火车了,下期见。
本作品采用《CC 协议》,转载必须注明作者和本文链接