Git的使用

一、概述

1. 什么是Git

  • Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
  • Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。

2. 什么是版本控制

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
  • 版本控制可以让开发从个人开发过渡到团队协作。

3. 集中式和分布式

3.1 集中式

  • 工作流程:① 主工程师搭建好项目框架。② 在公司服务器创建一个远程仓库,并将代码提交到远程仓库。③ 团队成员拉取代码,并行开发。④ 每个人独立负责一个功能,开发完成将代码提交到远程仓库。⑤ 其他人随时拉取代码,保持同步。
  • 特点:① 代码的拉取提交需要联网,否则无法工作。② 需要一台中央服务器(版本库)如果中央服务器出问题,所有人无法工作。③ 闭源集中式,增加项目资金的使用。

3.2 分布式

  • 工作流程:① 主工程师搭好项目框架 ,并提交代码到本地仓库。② 在公司服务器创建一个远程仓库,并将框架的提交推送到远程仓库。③ 其他人把远程仓库所有内容克隆到本地,拥有了各自的本地仓库,开始并行开发。④ 每个人独立负责一个功能,可以把每一个小改动提交到本地(由于本地提交无需立即上传到远程仓库,所以每一步提交不必是一个完整功能,而可以是功能中的一个步骤或块)。⑤ 功能开发完毕,将和这个功能相关的所有提交从本地推送到远程仓库。⑥ 每次当有人把新的提交推送到远程仓库的时候,其他人就可以选择把这些提交同步到自己的器上,并把它们和自己的本地代码合并。
  • 特点:① 不联网也可以提交代码、查看历史、切换分支等等。② 克隆远程仓库之后,每个人都是一个独立的完整版本库,容错率高。③ 开源分布式,节省项目资金的使用。

4. Git机制

在这里插入图片描述

5. Git 和代码托管中心

5.1 概念

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

5.2 分类

  • 局域网:GitLab。
  • 互联网:GitHub(外网)、Gitee 码云(国内网站)。

二、Git命令

1. 设置用户签名

git config --global user.name 用户名
git config --global user.email 邮箱 #邮箱不会验证是否真实存在

说明:签名必须设置,否则提交代码会报错。
作用:签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。
注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

2. 初始化本地库

git init

作用:在项目文件夹中打开git窗口,执行该命令,则会将当前的项目交给git进行管理。

3. 查看本地库状态

git status

说明:执行该命令后,会显示三个信息:① 当前的分支。② 与代码提交相关的提示。
解释:文件名红色(在工作区但未添加)==添加暂存区==> 文件名绿色(在暂存区但未提交)==提交本地库==>不显示文件信息。

5. 添加本地文件到暂存区

git add 文件

6. 删除暂存区的文件

git rm --cached 文件

7. 提交本地库

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

说明:此时warning中的七位字符码,就是当前版本的版本号。

8. 查看历史版本

git reflog # 查看精简版本信息
git log # 查看详细版本信息

9. 版本穿梭

git reset --hard 需要穿越到的版本号

三、Git分支

1. 基础概念

1.1 什么是分支

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

1.2 分支的好处

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

2. 分支操作

2.1 查看分支

git branch -v

2.2 创建分支

git branch 分支名

2.3 切换分支

git checkout 分支名

2.4 合并分支

git merge 需要合并的分支名

说明:将指定的分支合并到当前分支上。
注意:合并分支不影响被合并的分支内容,只影响当前分支内容。

2.5 合并冲突

  • 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。

四、Git团队协作

1. 团队内协作

在这里插入图片描述

2. 团队间协作

在这里插入图片描述

五、GitHub

1. 远程库的创建

在这里插入图片描述
在这里插入图片描述

2. 远程库的Git操作

2.1 查看远程库别名

git remote -v

2.2 为远程库起别名

git remote add 别名 远程库地址

2.3 推送本地内容到远程库

git push 远程库别名或远程库地址 分支

注意:需要登录GitHub账号,且具有一定权限。

2.4 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

git pull 远程库别名或远程库地址 分支

注意:需要登录GitHub账号,且具有一定权限。

2.5 将远程仓库的内容克隆到本地

git clone 远程库地址

注意:无需登录GitHub账号。

六、Gitee

众所周知,GitHub服务器在国外,使用GitHub作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,也可以选择使用国内的项目托管网站-码云。

七、GitLab

  • GitLab是由GitLabInc开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。它使用Git作为代码管理工具,并在此基础上搭建了web服务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值