卑微实习生来补 Git 了

一、什么是Git

  Git是一个免费的、开源的 分布式版本控制系统 ,可以快速高效地处理从小型到大型的各种项目 。

  Git易于学习,占地面积小,性能极快 。 它具有廉价的本地库 ,方便的暂存区域和多个工作流 分支 等 特性。 其性能优于 Subversion、 CVS、 Perforce和 ClearCase等 版本控制工具。

二、什么是版本控制

  版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。

  版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

三、Git 工作机制

  见下图。

  工作区指的是:代码存放的位置

  暂存区指的是:在工作区写了代码后,需要让 git 知道你有这么个代码文件,所以你需要把你工作区的代码添加到暂存区,即 git add ,暂存区的代码是临时存储的(说明暂存区的代码可删掉,此时没有历史版本)。

  可以通过 git commit 将代码由 暂存区 提交到 本地库,会生成 历史版本,但是一旦提交到本地库,代码就删不掉了。
在这里插入图片描述

四、代码托管中心

  代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
在这里插入图片描述

五、Git常用命令

命令名称作用
git config global user.name 用户名设置用户签名
git config global user.email 邮箱设置用户签名
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m " 日志信息 " 文件名提交到本地库
git reflog查看历史记录
git reset hard 版本号版本穿梭

1、设置用户签名

git config --global user.name 用户名
git config --global user.email 邮箱

  操作后会发现生成了下图所示文件:
在这里插入图片描述
  右键在 Notepad++中打开会发现,
在这里插入图片描述

  签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。 Git首次安装必须设置一下用户签名,否则无法提交代码。

  注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

2、初始化本地库

git init

  初始化本地库是指:如果要用 git 管理某个目录,首先你需要用 git 获取这个目录管理权,也就是初始化一下它。

  例如新建一个文件夹,然后用 git init 指令,会在该文件夹下生成 .git 文件
在这里插入图片描述
在这里插入图片描述

  注意:.git 文件在目录中默认是隐藏的,将下图所示的多选框勾上即可出现该文件。此外,.git 文件里的东西不能修改。
在这里插入图片描述

3、查看本地库状态

git status

首次查看本地库状态:
在这里插入图片描述

  其中,On branch master 表示:本地库当前在master 上;
  No commits yet 表示:当前还未提交过任何东西,说明是一个空的git库;
  nothing to commit 表示:当前没有可提交的

新增文件:

  例如输入 vim hello.txt :
在这里插入图片描述
  到下图所示界面:
在这里插入图片描述
  然后可以输入内容,比如输入 hello Git!,然后点键盘上的 Esc,然后点yy,最后点p,就达到了复制粘贴的效果(其中p是粘贴),最后输入 :wq 保存文件
在这里插入图片描述在这里插入图片描述
  再次查看本地库状态(检测到未追踪的文件) :
在这里插入图片描述
  Untracked files 表示:发现了一个未被追踪的文件,hello.txt 是红色的,说明这个文件有了,但是只是存在于工作区,git还未追踪过这个文件。

  nothing added to commit but untracked files present (use “git add” to track):提交时未添加任何内容,但存在未跟踪的文件(使用“git add”跟踪)

4、添加暂存区

git add 文件名 
git add .

在这里插入图片描述
  再次查看本地库状态:
在这里插入图片描述
  这个时候文件名是绿色的,说明已经追踪到该文件。

  这个时候如果想删了该文件,可以:

git rm --cached <file>

在这里插入图片描述
  其中 rm ‘hello.txt’ 表示已删除该文件。不过这里的删除只是暂存区删除,工作区还是有该文件的,在这里删除后可以重新添加到暂存区。

5、提交本地库

  将暂存区的文件提交到本地库:

git commit -m "日志信息" 文件名 

在这里插入图片描述
  再次查看工作区状态:
在这里插入图片描述

6、修改文件后

  手动对文件进行修改后,再次查看工作区状态,
在这里插入图片描述
  红色表示这次文件的修改还没有被追踪到暂存区,可以进行 添加暂存区 提交本地库等操作。

7、历史版本

(1)查看历史版本

git reflog  查看版本信息 
git log  查看版本详细信息 

  可以通过 git reflog 查看版本信息,其实在提交本地库的时候也有,如粗红框:

git reflog

在这里插入图片描述
  可以通过 git log 查看更完整的版本信息,比如谁提交的:

git log

在这里插入图片描述
  其中下图所示的中间那一长串是完整的版本号,之前的只是其头七位。在这里插入图片描述
(2) 版本穿梭

git reset --hard 版本号 

  git reflog 可以看到当前是 513d21f 这个版本,然后通过 git reset --hard adb6143 ,可以实现将版本穿梭,回到 adb6143 这个版本。
在这里插入图片描述
  在 .git 文件夹里有以下几个文件,如下图。
在这里插入图片描述
  其中,在 HEAD 里的是 当前分支,里面内容如下:在这里插入图片描述
  其中,refs 文件下的 heads 文件夹里,有个 master 文件,里面是当前版本号,里面内容如下:
在这里插入图片描述

六、Git 分支

  在版本控制过程中,同时推进多个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。

  分支有以下好处:

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

在这里插入图片描述

七、Git 分支常用命令

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

1、查看分支

git branch -v 

  下图所示表示只有一个master分支
在这里插入图片描述

2、创建分支

git branch 分支名 

  如下图所示,创建分支后再查看分支,除master,多了一个分支,是刚创建的新的分支,并将主分支 master 的内容复制了一份。
在这里插入图片描述

3、切换分支

git checkout 分支名 

  如下图所示,切换到了 ccc 分支
在这里插入图片描述

4、合并分支

git merge 分支名 

5、产生冲突

  冲突产生的表现:后面状态为 MERGING
在这里插入图片描述
  冲突产生的原因: 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

  冲突位置:
在这里插入图片描述
  是通过下面所示这样标志冲突的:

<<<<<<< HEAD  //这里是当前分支
              //这中间是当前分支的代码
=======
              //这里是要合并的代码
>>>>>>> ccc   //这里是要合并的分支

6、解决冲突

  编辑有冲突的文件,删除特殊符号,决定要使用的内容。

  然后添加到暂存区,提交到本地库(注意:此时使用 git commit 命令时不能带文件名)

  如下图所示,冲突被解决。
在这里插入图片描述

八、远程仓库操作

1、创建远程仓库别名

git remote -v 查看当前所有远程地址别名 
git remote add 别名 远程地址 

  这里放视频里举的例子的图片:
在这里插入图片描述

2、推送本地分支到远程仓库

git push 别名 分支 
//分支指的是要推送到哪个分支

3、拉取远程库到本地库

git pull 别名 分支

4、克隆远程仓库到本地

git clone 远程仓库地址 

九、IDEA 集成 Git

  这部分就不总结了,有需要的可以自己去看看,视频里的老师挺逗的,弹幕也挺逗的😄


  到此,这篇总结性博客就结束了,get 到了很多从前没注意到的东西,哈哈哈,一直对 git 怀有一种莫名情感的卑微实习生心里踏实了点😸


  刚看了一下,发现上一篇博客已经是五月前发布的了,似乎很久没有静下心来总结学到的东西,或者和以前一样写一些所见所感了,说来也挺感慨的。从那之后似乎一直在忙做简历、投简历、笔试面试、实习、期末考试、继续实习,一直到现在也是白天上上班,晚上刷刷抖音、看看剧,偶尔再和老朋友唠唠嗑,哈哈,其实也蛮快乐的😄

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值