这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记
三、Git本地仓库的使用
git bash中可以使用linux的命令,都是bash嘛
3.1 基本操作
创建本地库
- 进入到你想管理的那个目录下,执行下面的命令成功后项目中生成 .git 这个隐藏目录, 这就是你的Git本地仓库了。
git init #也可以指定文件路径,如git init D:/repo 路径也可以是相对的
- .git目录下各文件的作用
- config文件-- 包含一些配置选项
- objects目录–存储所有Git的数据对象
- HEAD文件–指定当前分支
- info目录–存放项目信息,默认包含一个全局exclude文件,用来放置不希望记录在.gitignore 中的忽略模式
- description文件–仅供GitWeb 程序使用
- hooks 目录–存放可在某些指令前后触发运行的钩子脚本,默认包含一些脚本样例
- refs目录–存储各个分支指向的目标提交
查看当前状态
- 使用
git status命令查看当前的状态,新写个hello.txt文件之后再查看会发现状态不同了,有了一个Untracked files显示hello.txt未被纳入版本控制。
添加暂存区
- 使用
git add 文件名命令把新建的文件添加到暂存区
- 可以使用
git rm --cached file命令从暂存区删除file
提交本地库
git commit -m "注释内容" #将暂存区的所有内容提交到本地仓库
git commit -a #将所有已经使用git管理过的文件暂存后一并提交,相当于省略add操作
git commit -am "注释内容"
查看版本日志
git log #参数:-p展开每次提交的内容差异,-2显示最近的两次更新
git log --pretty=oneline #简化的一行显示,看起来比较舒服
git reflog #比上面那个还简化,一行显示且版本id只显示前几位
git log --author #查看指定用户的操作
git log --before={3.weeks.ago} --after={2020-04-18} #如果你要指定日期,可以执行几个选项:--since 和 --before,但是你也可以用 --until 和 --after
git log --graph #查看历史中什么时候出现了分支、合并
git log --reverse #逆向显示日志
版本穿梭
git reset --hard 版本号 #版本号可以写前几位,只要不重复就行
- git中是用指针来控制版本穿梭的,head指向分支(比如master),分支指向版本(某个版本号)
- 版本穿梭的操作也会生成版本日志
3.2 分支管理
什么是分支?
在版本控制过程中,同时推进多个任务。我们可以为每个任务创建单独的分支,可以同时推进多个功能模块的开发,提高开发效率;如果一个分支开发失败,不会对其他分支造成影响。简单的看起来,分支像是一个单独的副本(分支的底层其实是用指针的引用实现的)
基本命令
查看分支: git branch #查看分支名 可以加-v参数,会有详细信息
创建分支: git branch 分支名
选择分支: git checkout 分支名 #改变分支
合并分支: git merge 要被合并的分支名 #把指定的分支合并到当前分支
分支合并冲突
- 产生的原因:合并分支时,两个分支在同一个文件有两套完全不同的修改,Git无法决定使用哪一个,需要我们人为的修改,产生冲突的表现形式如下图所示
- 产生冲突后文件如下图所示,用一串
<<<<<和>>>>>特殊符号包裹有冲突的内容,=====上面部分是当前分支下的内容,下面部分是要被合并的分支的内容,需要我们把提示信息删掉,手动修改要保留的内容,保存后执行add、commit操作,成功后分支名后面的MERGING字段就没有了