开源分布式版本控制系统 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 协议》,转载必须注明作者和本文链接
ThinkQ
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!