内容衔接上一篇……Git&GitHub学习(一)
3.5删除文件的找回
前提:文件在被删除前的状态已经被提交至本地库。
- 删除文件是指在本地库中删除(命令:rm demo2.txt),我们新建一个demo2.txt,删除之后,再查看状态,会发现被删除的文件被标红,并会提示将其存至暂存区与本地库。
- 也就是再执行git add命令,查看状态,被删除文件被标绿。
- 执行git commit 命令,文件被加进本地库。
- 此时查看版本总类git reflog,会发现,删除文件的版本与新建文件的版本都存在,要得到原文件,则直接回退到新建文件的版本,此时用ll命令查看,会发现存在demo.txt与demo2.txt两个文件,且其文件内容也不变。
- 另外一种情况,若是删除文件且提交至暂存区之后,并未提交至本地库,那么用命令(git reset --hard HEAD)重置暂存区与工作区及本地库,此时用ll命令查看,看见被删除文件存在。
3.6比较文件差异
- 首先用vim demo.txt打开文件进行一部分改动。
- 而后用git diff demo.txt 进行文件之间的比较,此时是工作区间的文件进行比较。
- 用git add demo.txt 将改动后的文件提交至暂存区,再一次git diff,会发现无结果,此时是在暂存区的比较。
- 用git diff HEAD demo.txt 是将其与本地库中的版本进行比较,若是要与本地库中的某一版本进行比较,则在前者的基础上改动,如:git diff HEAD^ demo.txt
- 注意:git是以行为单位进行操作,举个栗子:我在第三行加了一部分数据,实际上git会将原第三行全部删除,而后在同样的位置新增修改后的新一行。
3.7分支管理
git的分支管理可用以同时并行推进功能的开发,且各个分支之间彼此独立互不影响,则失败的分支直接删除重新开始即可。
上图中,hot_fix是指热修复,即在不停止服务器工作的前提下对master主干进行修复。
master是git创建文件时自行创建的一个分支,即主干。用git status查看状态时显示 on branch master即可知道当前正处于主干上。
主要操作命令:
- git branch -v 查看所有分支
- git branch hot_fix 指创建hot_fix分支
- git checkout master 指切换至master分支
合并分支—举个栗子:分支hot_fix的功能已经实现,故而我想要将其合并至主干,那么先切换至主干,再用git merge hot_fix命令即可将分支hot_fix合并至主干。
- 合并时出错
<<<<<<<HEAD #前三行是当前分支的内容
information changed by hot_fix
========
information changed by master #后两行是另外一分支的内容
>>>>>>>master
- 如何导正?
- 将内容重新进行编辑,直至满意的程度
- git add filename.txt提交文件,此时仍然处于合并状态
- git commit -m “日志信息” P:不可带文件名