git
概念
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。
版本控制:版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 。
代码托管中心
我们已经有了本地库,本地库可以帮我们进行版本控制,为什么还需要代码托管中心呢?
它的任务是帮我们维护远程库,下面说一下本地库和远程库的交互方式,也分为两种:
团队内部协作
跨团队协作
初始化本地仓库
创建一个文件夹
打开Git终端:Git Bash Here
查看Git安装版本
1
git --version
清屏
1
clear
设置签名
1
2git config --global user.name "TeaSea33"
git config --global user.email "TeaSea33@outlook.com"本地仓库的初始化操作(目录在本地仓库里)
1
git init
查看.git下的内容
注意事项: .git目录下的本地库相关的子目录和子文件不要删除,不要胡乱修改。
Git常用命令
add和commit
先创建文件
将文件提交到暂存区
1
git add Demo2.txt
将暂存区的内容提交到本地库
注意:
- 不放在本地仓库中的文件,git是不进行管理
- 即使放在本地仓库的文件,git也不管理,必须通过add,commit命令操作才可以将内容提交到本地库。
Status
查看工作区和暂存区的状态
创建一个文件,然后查看状态
1
git status
然后将Demo2.txt通过git add命令提交到暂存区
1
git add "Demo3.txt"
status查看状态
commit提交文件
修改文件 并查看状态
重新添加至暂存区 并查看状态
提交以后查看状态
log
可以查看提交的日志,显示最近到最远的日志
日志展示方式
```shell
git log1
2
3
4
5
6
7
8
9
10
11
<img src="git/20210716165040.png" alt="image-20210716164533294" style="zoom:67%;" />
---> 分页
当历史记录过多的时候使用**空格**翻页,**b** 回到上一页,到尾页显示END,
退出:**q**
2. ```shell
git log --pretty=oneline```shell
git log –oneline1
2
3
4
5
<img src="git/20210716165148.png" alt="image-20210716165147993" style="zoom:67%;" />
4. ```shell
git reflog多了信息:HEAD@{数字}
数字:指针回到当前这个历史版本需要多少步
reset
前进或者后退历史版本
- 先查看历史log状态

将文件后退到版本1
再次查看
三个参数(hard\mixed\soft)
git reset –[参数] [索引]
hard
本地库的指针移动的同时,重置暂存区,重置工作区
mixed
本地库的指针移动的同时,重置暂存区,但是工作区不动
soft
本地库的指针移动的时候,暂存区,工作区都不动
用得最多的就是第一种hard参数
hard
1.找回本地库删除的文件
新建一个Test2.txt文件 并将它add到暂存区中
再通过commit提交到本地库
删除工作区中的Test2.txt 并将删除操作同步到暂存区
将删除操作同步到本地库
查看日志
找到本地库中删除的文件,实际上就是将历史版本切换到刚才添加文件的那个版本即可
2.找回暂存区删除的文件
删除工作区数据
同步到缓存区
查看日志
找到当前指针 然后返回到该状态
diff
比对工作区和暂存区
1
git diff [文件名]
- 添加并提交一个内容为aaaa的Test3.txt
- 更改工作区的文件加入bbb,再用dif进行比对,发现不同
- 如果修改了多个文件,多个文件的比对命令直接是git diff
比对暂存区和本地库 :
1
git diff [历史版本] [文件]
文件添加不提交到本地库,此时暂存区就和工作区相同为aaaabbb
查看日志
此刻的本地库还停留在之前第一次修改
比对暂存区和本地库中的HEAD当前指针状态
发现不一样,说明没有提交的时候就是不一样的
HEAD部分可以改成其他历史版本的标号
分支
查看分支

创建新分支

切换分支

进入branch01分支,增加内容


再次查看两个分支发现主分支没有改变

查看文件

将branch01合并到主分支

因为在同一文件的同一位置修改了文件

解决冲突:
人为决定,留下想要的就可以,然后再添加

提交冲突,不能带文件名


Github
创建远程库
为远程库取别名

将本地库数据推送到远程库中



查看远程库

SSH免密操作
进入用户的主目录中:
执行命令,生成一个.ssh目录
发现.ssh目录下有两个文件
第二个文件里面的密钥复制,去github下新建密钥
密钥生成:
免密操作使每次需要push仓库的时候,都不用再输入密码434