1.获取当前Git的配置信息
- 获取Git的配置信息: git config -l
作为一个工具软件来讲,一般都会有默认的配置文件来保存基础的配置信息,Git软件的配置文件位置为:Git安装路径/etc/gitconfig
2.名称和邮箱
如果你是第一回使用Git软件,需要告诉Git软件你的名称和邮箱,否则是无法将文件纳入到版本库中进行版本管理的。这是因为在多人协作时,不同的用户可能对同一个文件进行操作,所以Git软件必须区分不同用户的操作,区分的方式就是名称和邮箱。
当然了,你可能会说我就用本地库就行了,不需要进行多人协作,是不是就可以不用配置呢。这是不行的,因为Git软件的设计初衷本身就是针对于linux系统的分布式开发协同工作,所以它天生就是用于分布式协同工作的,这里无论你是否使用这个功能,它本身就是这么设计的。
设置用户名称:git config --global user.name 用户的名称
- 获取当前Git用户名称 git config user.name 名字 --局部配置
设置用户邮箱:git config --global user.email 用户的邮箱
- 获取当前Git用户邮箱git config user.email 邮箱地址 --局部配置
这里的–global表示全局配置,后续的所有文件操作都会使用该用户名称及邮箱。此时在操作系统的用户目录,会产生新的配置文件
3.Git文件操作相关指令
1.初始化版本库
Git软件主要用于管理文件的版本信息,但它只是一个软件,不可能安装后就直接将系统中所有的文件全部纳入到它的管理范畴中。并且,软件管理版本信息的主要目就是管理文件的修改和变更,如果将系统中所有文件都进行管理其实意义是不大的。所以一般情况下,我们需要指定某一个文件目录作为软件的管理目录。因为这个目录主要就作为Git软件的管理文件的版本变化信息,所以这个目录也称之为Git软件的版本仓库目录。
- 进入我们要管理的目录下,右击点击git bash here
- 输入git init
2.向版本库添加,修改、删除文件
- 因为文件已经放置在版本库中了。所以可以通过软件的指令查看版本库状态
- git status
此时会发现,test.txt文件属于untracked files(未追踪文件),这里表示当前的test.txt文件虽然放置到了版本库的文件目录中,被Git软件识别到了,但是未纳入到版本库管理中。所以属于未追踪文件。通过这个现象可以认为,系统文件夹物理目录和版本库管理目录的含义是不一样的。只有文件被纳入到版本库管理后,Git软件才能对文件修改后的不同版本内容进行追踪处理,也就是所谓的tracked files了
- 将文件test.txt交给版本库进行管理,也就是将我们工作区的文件放入我们的暂存区,与存储区域进行对比
- git add test.txt
此时文件状态为cached file,其实这也是Git管理文件时的一种状态:暂存状态。就是我们生活中常说的草稿状态。也就是说对于Git来讲,它认为此时文件只是一种临时草稿状态,随时可能会进行修改或删除,并不算真正的操作完成状态。所以并不会把文件纳入到版本库管理中。
将test.txt真正地纳入到版本库中
- git commit -m “新增一个文件”
- -m 表示提交时的信息(message),是必须输入的。用于描述不同版本之间的差别信息
3.查看版本库文件历史
版本库中的文件我们已经添加并提交了,那么文件的版本信息就会发生变化,那我们如何来查看这个变化呢?这里我们可以采用log指令进行查看
- git log
- 如果想美观一点,git log --pretty=oneline
- git log --oneline 简单查看 单行查看
4. 恢复文件
我们手动删除工作区的文件,并没有add和commit
此时Git软件会识别出来,版本库中有一份文件和当前用于临时操作文件的暂存区内的文件状态不一致:版本库中文件还在,但是操作区内的文件已经没有了。
- 所以软件提供了两个选择:
- 一个是将版本库中的文件也进行(提交)删除操作。
- git add test.txt --已经提交的暂存区 就不能执行下面一行命令
- 另外一个就是从版本库中恢复文件。
- git restore test.txt --这行命令执行前提不能执行提交
- 一个是将版本库中的文件也进行(提交)删除操作。
5.如果想真的删除文件,需要将版本库中的文件也删除
6.版本库中的文件也被删除,如何恢复
如果版本库中一份文件中已经被删除了,那么此时这份文件还能找回来吗?其实原则上来讲,已经不行了,因为文件删除本身也是一种变更操作,也算是版本库管理的一部分。所以想要将已经删除的那份文件从版本库中取出来,已经是不可能了。但是,要注意的是,版本库管理的是文件不同版本的变更操作,这个不同版本的概念还是非常重要的。也就是说,最后的那个删除的文件版本已经没有了,但是之前版本的文件其实还是存在的。所以如果我们能将文件恢复到某一个版本,那么那个版本的文件就依然存在。
- 查看版本库信息
-
将版本库文件重置到某一个版本
-
这里的6520217就是版本Hash值,用于唯一确定版本库中此版本的标记,当然这是一个简短版,完整的比较长
-
如果不记得具体的版本值,版本值也可以使用HEAD值,比如最新的上一个版本:HEAD^,如果后退更多的版本,可以使用 HEAD~N
-
git reset --hard 6520217
恢复提交之前的操作命令
git revert 90729c
4.GIt分支
1.主干分支
默认情况下,Git软件就存在分支的概念,而且就是一个分支,称之为master分支,也称之为主干分支。
这就意味着,所有文件的版本管理操作都是在master这一个分支路线上进行完成的
2.其他分支
1.创建分支
-
git branch 分支名称
-
git branch user1
-
git branch user2
-
2.查看分支
- git branch -v
3. 切换分支
我们将工作线路切换到user1
- git checkout 分支名称
- git checkout user1
此时我们添加新的文件user1.txt
然后提交到版本库
此时,查看分支信息,会发现user1分支的版本进度信息发生了改变
如果此时切换回到主干分支的话,那么b1.txt文件就不存在了,因为对应版本信息不一样
4.创建并切换分支
git checkout -b reder
5.删除分支
如果觉得某一个分支建立的不太理想或已经没有必要在使用了,那么是可以将这个分支删除的
- git branch -d 分支名称
- Git branch -d user2
3.Git合并
无论我们创建多少个分支,都是因为我们需要在不同的工作环境中进行工作,但是,最后都应该将所有的分支合在一起。形成一个整体。作为项目的最终结果。一般最后都是合并到我们的matser分支,也就是主分支
- git checkout 分支名
1.先清除主分支的内容
2.在user1分支添加user1.txt
3.在user2分支添加user2.txt
4.合并user1 user2分支内容到我们的主分支
5.Git冲突
在多分支并行处理时,每一个分支可能是基于不同版本的主干分支创建的。如果每隔分支都独立运行而不进行合并,就没有问题,但是如果在后续操作过程中进行合并的话,就有可能产生冲突。比如user1, user2的两个分支都是基于master分支创建出来的。B1分支如果和B2分支修改了同一份文件的话,那么在合并时,以哪一个文件为准呢,这就是所谓的冲突。
1.主分支添加test文件,内容为空
2.user1分支修改test文件
3.user2分支修改test文件
4.合并出现冲突
5.标签操作
6.远程仓库拉取
通过HTTPS路径拉取
- git clone 对应url 进行仓库拉起到本地
通过SSH路径拉取
修改url为SSH的url
生成对应的SSH密钥
我们发现我们git push失败 ,因为缺少ssh公钥,所以连接失败
ssh-keygen -t rsa -C git@gitee.com:song-cheng-liu/gitee-test.git 来生成公钥
一路回车 生成的密钥在我们的c/用户/用户名(你自己的)/.ssh/id_isa.pub
将我们的公钥复制到gitee对应的配置上