Git本地仓库的使用 | 青训营笔记

108 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第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新建文件后查看状态

添加暂存区

  • 使用git add 文件名命令把新建的文件添加到暂存区

git添加到暂存区后查看状态

  • 可以使用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字段就没有了

发生冲突的文件