Git是分布式版本控制工具

Git for WIndows下载

1,官网下载: Git for Windows

2,可视化Git工具: TortoiseGit – Windows Shell Interface to Git

GIt签名配置

Git 的使用一般是基于文件夹使用,因此,在你要使用Git的文件夹中右键使用Git Bash打开

Git需要标注自己的用户名与邮箱。
一般在C:\User\自己用户文件夹,路径下,会存在名为“.gitconfig”的文件,在其中存储了该用户下git的全局签名(用户名,邮箱)。所有git项目默认都会使用该签名(属性)。

Git全局属性的配置:(一般要求和GItHub用户邮箱相同)

git config --global user.name "要改的用户名"
git config --global user.email "邮箱"

Git命令

1.选中git项目工程目录并通过git Bash选项打开

2.在该文件夹下创建版本库

git init

创建之后在文件夹下会有个“.git”的隐藏文件夹,git所有版本控制文件都在其中

git创建版本库

3.git文件提交场景

3.1 查看当前文件git状态

git status    
​```
命令表示当前文件夹中所有文件在git分支中的状态:未追踪加入暂存区(文件名称为红色) 追踪未同步,追踪已同步等
​```

未进行追踪

3.2对目录中更改的文件进行追踪

## 对全部已更改文件进行追踪
git add * 
## 对某个或者多个文件进行追踪
git add 文件名

下图是将全部文件追踪后文件夹git状态,发现原来为红色的文件被追踪保存在git此分支暂存区中:

gitadd

3.3 对暂存区文件进行提交

# 对所有暂存区文件提交到该分支并备注说明信息
git commit -m "说明信息"

提交后git状态如下图

提交

提交后会提示你此次提交己有过更改的文件,并且可以在日志文件中找到记录

# 显示日志文件
git log

log文件

4.git删除文件场景

在使用过程中,当需要对提交的文件进行删除时,可以使用下面一系列命令对某个文件进行删除,之后进行文件提交,流程与上一节相似

# 删除test.txt文件
git rm test.txt
# 查看git状态(可以省略)
git status
# 执行提交
git commit -m "删除不需要文件"
# 查看执行日志
git log

删除文件操作

5.版本回退

在git log命令显示的界面中,我们发现在commit处黄色部分有着唯一的编码,这有且唯一的指代着每一次操作,而其中

(HEAD—> master) 表示这一系列操作时在master分支上进行操作的,而最近一次更改的HEAD指针指向括号所标记的操作编码处

因此,当我们需要版本回退时,只需要将HEAD指针指向我们所要回退到的提交版本编号处就可以了

## 将HEAD指针指向所要回退的编号处
git reset --hard 47f5f0   ## 版本编号不必补全,git会自动查找
## 查看日志
git log

版本回退

但是要注意,版本回退后git log将不显示当前版本之后的操作,如果想要改回原版本,就必须牢记版本号!!!!

# 改回原版本
git reset --hard 237e
git log

image-20210203211926672

6,其他命令(待补充)

6.1 查看操作记录

由于git reset –hard 特性,常常会忘记回退之后的版本号,使用git reflog命令就可以查看当前对版本进行的所有操作

git reflog

操作日志

7,Git创建分支

工作时,主分支(master)一般不轻易更改以保证项目可以正常工作,但是当有新的需求时,我们可以在主分支中新分出一个新的分支来进行新需求的更改和测试。当完成后将其合并入主分支中继续运行。

分支是Git中非常重要的概念,关于分支的理解可以见下面博文https://www.cnblogs.com/matengfei123/p/8252128.html

7.1 查看现有分支

# 查看现有的分支
git branch
## 注意! *所在位置为当前所处分支

查看分支

7.2 创建新分支

# 创建新的分支 Testing
git branch Testing
# 查看当前分支状态
git branch

创建分支Testing

7.3 切换分支

# 从master分支切换至 Testing分支
git checkout Testing
# 查看当前分支状态
git branch

切换分支

可以看到,切换分支后*指向Testing分支,此时,在Testing分支中的所有追踪或者提交等操作都与master分支无关

7.4 合并分支(当前分支与目标分支合并)

假设Testing分支中新增的业务需求完成编码与测试,想要将其整合到处于master分支中已上线运行的项目中时。

  • 将分支切换至master分支

  • 将master分支与Testing分支合并

# 分支切换至master分支
git checkout master
# 合并分支
git merge Testing 

合并分支

7.5 删除分支

# 删除无用的分支Testing
git branch -d Testing 
# 查看分支状态
git branch

删除分支

为Git与GitHub通过ssh链接

在设置好用户名与邮箱后

# 生成Key
 ssh-keygen -t rsa -C "设置的邮箱名称"
<注意,会提示默认设置密码等,通用做法一路默认回车,成功效果如图>

生成key

生成key文件在C;:/User/.ssh/id_rsa.pub中

如果要生成多个key,则在第二步时要另外起一个名字,例如“id_rsa_github”,因为默认key是存放在id_rsa.pub中,防止被覆盖

# 直接复制生成的key
clip <~/.ssh/id_rsa.pub
# 查看生成的key
cat <~/.ssh/id_rsa.pub

界面如图

image-20210204113304751

将key复制到GitHub设置(setting)中

image-20210204113504999

设置成功后运行

ssh -T git@github.com
应出现以下显示

image-20210204113608665

GitHub中使用Git

1. 在GitHub中创建对应库

登录自己的GitHub,选择创建new repository 进入创建界面,

创建库

此时,进入你的代码仓库,右上角Code按钮点击,会显示仓库访问方式,一般同步时会使用SSH提供的SSH Key进行同步

2.将代码同步至GitHub仓库

进入想要同步的文件夹,使用Git Bash打开

# 添加远程仓库至本地
git remote add origin <仓库SSH地址>
# 合并本地仓库与远程仓库
git push -u origin master

image-20210204112328811

push