Git知识总结
- Git三层结构
-
三层结构详解
- 工作区:及目前正在编辑的区域,可能是IDEA,可能是文本编辑器等等
- 暂存区:将工作区的文件暂存到暂存区中,可以进行回退等操作
- 本地版本库:将暂存库的文件提交到本地版本库中进行保存
- 远程仓库:Gitee或Github上的仓库
-
提交流程图
-
文件的四种状态
-
Untracked:未跟踪,此文件在文件夹中,但并没有加入到git仓库,不参与版本控制.通过git add 状态变为Staged.
在文件夹中新建了一个gittest文件,当前显示的就是Untracked
-
Staged状态:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为 U n m o d i f y \textcolor{Green}{Unmodify} Unmodify状态
当输入git add . 后可以看到 $\textcolor{Green}{new file: gittest} $ 表示该文件已经进入暂存区,可以准备commit到本地仓库
-
Modified状态:修改状态,文件已修改,仅仅是修改,并没有进行其他的操作.这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout,则丢弃修改过,返回 U n m o d i f y \textcolor{Green}{Unmodify} Unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改!
当修改文件后,状态变为了 m o d i f i e d \textcolor{Red}{modified} modified如果提交修改变为Staged,也可以通过checkout恢复修改
-
Committed状态:提交状态,只有通过命令git commit之后,才算是真正把暂存区的代码提交了。经过git commit命令之后,所有被提交的文件的状态就是 c o m m i t t e d \textcolor{Green}{committed} committed
提交后,状态未nothing to commit,为commited状态
-
-
IDEA集成Gitee(由于Github太慢,本次测试使用Gitee来测试,为中国开源市场贡献!!!)
-
下载Gitee插件
-
在Setting -> Version Control 中找到 Gitee,登录Gitee
-
-
Git分支
-
Git分支的作用:如果有个大型项目需要多次更改当前版本的,但是每次进行修改,上传到Git又很麻烦,这时就可以使用Git分支功能,通过创建一个分支,在分支中进行大量修改,直到合适为止,之后再一次性的上传到Git远程仓库中。
比如下图来说,在master这个主线上运行,运行的同时要增加功能,那我们就可以把master赋值一份出来,在复制的地方进行开发,在开发完功能后就可以更新版本正常使用
当我们引入新功能有bug,就可以从master分支再引一个分支hot-fix(热修分支),对代码进行修改,修改后再合并到master
-
分支常用方法
-
查看分支
git branch -v
当前分支为 m a s t e r \textcolor{Green}{master} master
-
创建分支
git branch 分支名字
- 切换分支
git checkout 分支名称
- 再次提交并push代码到Gitee中,发现Gitee中已经有了firstbranch这个分支
- 合并分支与master节点(正常合并的情况)
git checkout master//切换回主分支 git merge 分支名
正常合并后,发现多了一条数据
- 冲突合并(分支和master共同修改了同一行代码的值,不知道用那个作为正确答案)
master修改Gittest,向最后一行添加了 System.out.println(“test conflict by master”);
firstbranch也修改了Gittest,向最后一行添加了System.out.println(“test conflict by branch”);
之后运行 git merge firstbranch,发现出现了冲突问题
- 解决合并冲突问题
- 删除<<<<<<<HEAD,删除等号,删除>>>>>>>>firstbranch
- 之后再次add. commit push即即可
-
-