Git学习笔记——一文了解Git

Git

Git简介

首先就是灵魂三问:什么是Git?为什么用Git?怎么用Git?

Git是目前使用最多的版本控制软件,其可以方便开发人员分工协作控制版本,共同完成大型项目的开发。在实际开发中,任务都是许多开发人员共同完成的,而如何协调好彼此之间代码不重复,各自独立完成自己模块的编写是一个重要话题。而Git的存在就是为了解决该问题。

Git使用

相关知识补充

Git四大区域

在使用Git之前,需要了解以下四个概念,这也是Git操作过程中核心的四个区域

工作区:工作区是负责代码编辑的地方,如果使用了IDE,工作区一般就是工程所在的文件夹

暂存区:暂存区是负责临时存储工作区代码的区域。一般在工作区执行git add操作后,工作区的代码就会上传至暂存区;相对地,如果希望从暂存取退回工作区就调用git reset操作。

本地库:用于存放代码的历史版本。在命令行中执行git commit操作后,在暂存区的代码就会上传至本地库。在本地库中,可以查看每一次提交的历史版本。相对地,如果希望从代码托管中心获取代码至本地库,此时分两种情况

  • 本机没有本地库(第一次从托管中心获取代码):使用git clone,此时会在本机中初始化本地库
  • 本机已经有本地库(之前已经初始化过本地库):使用git pull,此时会将最新版的内容加载进入本地库

代码托管中心:一般在Github或者是码云。其任务一般是维护远程库,在本地库执行git push操作后本地库中的代码就会上传至远程库。

流程图如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cxx5GgLG-1614331974881)(/Users/gaojunsong/Library/Application Support/typora-user-images/Java学习/Git/image-20210226173126419.png)]


Git版本控制与分支管理

什么是分支管理?为什么要使用分支管理?

Git简介中曾提到,Git最大的作用就是实现版本控制,方便对不同版本的代码进行处理。那么什么又是分支管理呢?

答:在版本控制过程中,使用多条线同时推进多个任务。一般而言,当开始开发项目时,会最先创建一个主分支(master),然后各个模块同时开始开发,最开始每个分支都会复制mater分支中的内容。这样各个模块之间的开发就能够彼此独立,从而加快开发进度。开发流程见下图:
在这里插入图片描述
项目最开始时master分支,在master分支基础上构建两个分支分别用于开发不同模块。当不同模块开发完成后再和主分支合并实现项目版本的更迭

使用分支的好处

答:使用分支管理,有助于同时并行推进多个功能的开发,能够大大提高开发效率。并且各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可


Git操作实战

常用代码汇总,按照通常使用的先后顺序排序

本机库初始化与代码提交
git init 	# 在当前目录下创建一个本机库
# 配置本机库的用户信息,用户名+email
git config user.name ggs			
git config user.email jsgao0126@cqu.edu.cn
git stauts #	查看暂存取的状态

我是分隔符****************


git add [file name] # 将工作区的新建/修改添加到暂存区
git commit -m "My second commit" [file name] # 将暂存取中的内容上传至本机库,同时附带备注信息:My second commit
git push 		# 将本机库中的文件上传至远程仓库

效果图


历史版本查看与前进回退
git log		  #  查看本机库的历史版本信息
git log	--pretty=oneline. # 一次只显示一行的信息(版本信息过多时使用)
git log --oneline # 只显示部分hash
git log reflog # 可以查看退回到某个版本需要的步数,前进后退内容在后面讲解

效果图

这是使用reflog的结果

在这里插入图片描述

git reset --hard [索引值]  # 回退到索引值所指向的版本(推荐)
git reset --hard HEAD^    # 回退一个版本
git reset --hard HEAD~3   # 后退3个版本
git reset --soft [索引值]  # 回退到索引值所指向的版本(推荐)
git reset --soft HEAD^    # 回退一个版本
git reset --soft HEAD~3   # 后退3个版本
git reset --mixed [索引值]  # 回退到索引值所指向的版本(推荐)
git reset --mixed HEAD^    # 回退一个版本
git reset --mixed HEAD~3   # 后退3个版本
  • 关于上述三种方法的说明

    • --hard:会在本地库移动HEAD指针,同时重置暂存区和工作区。相当于三个区(本地库、暂存区、工作区)都回退。

    • --mixed:在本地库移动HEAD指针,同时重置暂存取。相当于只有本地库和暂存区回退

    • --soft:仅仅会在本地库移动HEAD指针。相当于只有本地库回退

⭐️ 如果不加索引值git reset --hard HEAD会回退到当前版本没有执行git add时到状态

文件差异比较
git diff [文件名] 	# 查看该文件哪里发生了修改(差异——相对于暂存区中的文件)
git diff HEAD(^) [文件名]  	# 相对于本机库(历史版本)中的该文件的差异

效果图

分支管理
git branch -v		# 查看当前所有分支
git branch branch1  # 创建一个名为branch1的分支
git checkout test # 进入test分支
git checkout master # 先切换会master分支
git merge test # 将test分支中的修改合并到master分支中(有新内容)
  • 这里需要注意,希望增加对那个分支的修改,就需要先进入该分支,然后合并希望被合并的分支

注意:合并过程中可能会出现些许冲突,这时git会让操作者自行修改出现冲突部分,然后再提交修改的内容。


远程仓库
git remote -v. # 查看当前存在的远程仓库
git remote add origin https://github.com/仓库名 # 添加远程仓库地

效果图

  • 其中,fetch表示地址用于取回,push用于推送。
git push origin master # 向origin地址对应的仓库推送master分支
git clone 仓库地库地址 # 将远程仓库地址中的项目克隆进本机库
  • 注意,克隆下来的项目自带.git文件,也就不需要再初始化,同时origin别名也创建好了
git fetch origin master # 把远程库的master抓取下来(这里指是将远程数据下载到本地,但并没有修改本地内容)
git merge origin/master # 把远程的master合并入本地的master
git pull origin master # 相当于同时做fetch和merge操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值