Git学习

一.Git

1、概念

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

项目。

Git 易于学习,占地面积小,性能极快。

它具有廉价的本地库,方便的暂存区域和多个工作

流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

2、工作机制

image-20220302233114761

3、代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库

局域网

✓ GitLab

互联网

✓ GitHub(外网)

✓ Gitee 码云(国内网站)

4、Git 安装

官网地址: https://git-scm.com/

安装过程直接点击下一步

检查是否安装完成:右键任意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端

在 Git Bash 终端里输入 git --version 查看 git 版本,如图所示,说明 Git 安装成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y2YfSEsv-1646456265267)(../../AppData/Roaming/Typora/typora-user-images/image-20220302233525658.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pw6euvaW-1646455734143)(../../AppData/Roaming/Typora/typora-user-images/image-20220302233546531.png)]

5、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 版本号 版本穿梭

①.设置用户签名

命令:
git config --global user.name 用户名
git config --global user.email 邮箱
说明:
*	签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看

到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

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

何关系,仅代表windows本地git客户端上登录使用git的用户

②.初始化项目的本地库

命令:
git init
说明:
  • 在项目目录下,点击右键,选择Git Bash进入git命令行窗口

​ 或者先打开Git Bash再使用cd命令一步步进入项目目录

  • 输入初始化命令git init后,会在项目目录下生成隐藏文件==.git==

image-20220303182431689

image-20220303182502682

③.查看项目本地库状态

命令:
git status
说明:
  • On branch master: git文件指针在master分支上
  • No commit yet: 当前还没有文件被提交到本地库上
  • Untracked files: 提示检测到有未被添加到暂存区的文件(红色部分)

image-20220303182646160

④.将项目某个文件的代码添加到暂存区

命令:
git add 需要添加到暂存区的文件名
说明:
  • 将红色的文件添加到暂存区,再查看git status

image-20220303183807067

image-20220303183959166

⑤.提交到项目的本地库

命令:
git commit -m "日志信息" 需要提交到本地库的文件名
说明:
  • 将暂存区目录下的所有文件提交,并标记为first version
  • commit后再次查看git状态,暂存区中没有文件需要提交

image-20220303184706755

⑥.修改文件

a.尝试修改代码文件QQFrame.java
  • 查看git状态,提示文件QQFrame.java被修改,还未提交到暂存区

image-20220303185105168

image-20220303185130404

b.再次将代码文件QQFrame.java提交到暂存区
  • 查看git状态,显示有修改过的文件QQFrame.java需要提交

image-20220303185516728

c.将代码文件QQFrame.java提交到项目的本地库
  • 查看git状态,提交玩状态显示暂未有文件需要提交

image-20220303185718995

⑦.查看历史版本

命令:
git relog     (查看版本的简略信息:版本号头7位、日志信息)
git log 			(查看版本的详细信息:完整的版本号、提交的作者、提交的日期、日志信息)
说明:

image-20220303190158110

⑧.版本穿梭

命令:
git reset --hard 版本号
说明:
  • 先输入命令git log查询要穿梭到的版本号
  • 再利用复制快捷键Ctrl+Insert粘贴快捷键Shift+Insert输入版本穿梭命令,会将工作区中的代码更新到穿梭到的版本
  • HEAD指针 箭头表示当前分支在master,版本从second version穿梭到first version

image-20220303215728164

  • 再次查看工作区中代码文件的内容,代码会被更新:

    image-20220303215840931

6、Git分支

①.概念

  • 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独

    分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时

    候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是

    一个单独的副本。(分支底层其实也是指针的引用)

image-20220303234300414

image-20220303234424367

②.分支的好处

  • 同时并行推进多个功能开发,提高开发效率。

    各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败

    的分支删除重新开始即可。

③.分支的操作命令

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

④.查看分支

命令:
git branch -v
说明:
  • 当前分支为绿色显示的分支master

image-20220303235342821

⑤.创建分支

命令:
git branch 要创建的分支名
说明:
  • 创建分支dev-kevin,但是当前分支仍处于master

image-20220304000515296

⑥.切换分支

命令:
git checkout 要切换到的分支名
说明:
  • matser分支切换到dev-kevin分支

image-20220304000907259

⑦.合并分支

命令:
git merge 指定要与当前分支合并的分支
说明:
一.初始情况
* 主分支`master`与其他两个分支`dev-kevin`和`dev-john`代码为同一版本

image-20220304003148489

二.无冲突合并
  • 两个分支并未修改相同的文件或者仅修改了不同的文件,可以直接合并
a.修改分支dev-kevin的代码

image-20220304003715202

image-20220304004200361

image-20220304004243530

b.将分支dev-kevin修改后的代码commit到本地库

在这里插入图片描述

c.切换到master分支

image-20220304005319848

  • d.将dev-kevin分支合并到master分支,并查看日志信息

    image-20220304005547799

e.查看master分支上的代码,无冲突合并完成

image-20220304005722093

三.冲突合并
  • 两个分支修改了同一个文件的任意地方,则冲突合并
f.切换到dev-john分支

image-20220304010113870

g.修改dev-john分支上相同文件的代码

image-20220304010326863

image-20220304010527396

h.将dev-john分支的代码commit到本地库

image-20220304010923471

i.切换到master分支

image-20220304011059149

j.将dev-john分支合并到master分支
  • 提示自动合并失败,查看git状态提示你需要手动合并

image-20220304011824767

k.手动合并有冲突的文件
  • Vim编辑有冲突的文件,删除特殊符号,决定要使用的内容
  • 特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

image-20220304012119356

image-20220304013024865

image-20220304013735954

l.查看冲突合并完成后的情况
  • master分支

image-20220304013953241

  • dev-kevin分支

image-20220304014146810

  • dev-john分支

image-20220304014313576

7、团队协作机制

①.团队内协作:

image-20220305101429494

②.跨团队协作:

image-20220305101505996

B站尚硅谷Git课程:https://www.bilibili.com/video/BV1vy4y1s7k6?p=27

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值