一篇文章熟练掌握Git

文章目录

  • 一. Git概述
    • 1.1 什么是版本控制
    • 1.2 为什么需要版本控制
    • 1.3 版本控制工具
    • 1.4 Git原理
    • 1.5 Git代码托管中心
  • 二. Git安装
    • 2.1 官网地址
    • 2.2 安装流程
  • 三. Git常用命令
    • 3.1 设置用户签名
    • 3.2 初始化本地库
    • 3.3 查看本地库状态
    • 3.4 工作区文件添加到暂存区
    • 3.5 暂存区文件提交到本地库
    • 3.6 修改文件内容
    • 3.7 查看历史版本
    • 3.8 版本穿梭
  • 四. Git分支操作
    • 4.1 简介
    • 4.2 分支优点
    • 4.3 分支的操作
    • 4.4 查看分支
    • 4.5 创建分支
    • 4.6 切换分支
    • 4.7 修改分支
    • 4.8 合并分支
  • 五. Git团队协作机制
    • 5.1 团队内协作
    • 5.2 团队外协作
  • 六. GitHub操作
    • 6.1 简介
    • 6.2 GitHub操作之上传本地库
    • 6.3 GitHub操作之拉取远程库到本地库
    • 6.7 GitHub操作之克隆远程仓库到本地
  • 七. Idea集成Git
    • 7.1 配置Git忽略文件
    • 7.2 idea中使用git
    • 7.3 idea中集成Github
    • 7.4 idea其它操作
  • 八. 国内代码托管中心码云(gitee)
    • 8.1 简介
    • 8.2 码云上创建远程库
    • 8.3 Idea集成gitee码云
    • 8.4 码云复制github项目

一. Git概述

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

一篇文章熟练掌握Git_第1张图片

1.1 什么是版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统,版本控制最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

1.2 为什么需要版本控制

能够使个人开发过渡到团队协作

1.3 版本控制工具

  1. 集中式版本控制工具

CVS、SVN、VSS等都是集中化的版本控制系统,都有一个单一的集中管理的服务器,保存所有的文件修订版本,而协同工作的人们都可以通过客户端连接到这台服务器(团队员工要修改文件只能连接服务器,在服务器上面修改),取出最新的文件或者提交更新。这种做法带了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松地掌握每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。但问题也显而易见,这么做容易引发中央服务器的单点故障。

一篇文章熟练掌握Git_第2张图片
2. 分布式版本控制

像Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库),这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。分布式版本控制的出现,解决了集中式版本控制系统的缺陷

  1. 服务器断网的情况下也可以进行开发(因为版本控制上在本地进行的)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

1.4 Git原理

如下图,红色的框是我们的工作区,也就是代码在我们本地所在的磁盘位置,通过git add命令可以将我们的代码放入本地的暂存区,暂存区用来临时保存我们的代码。然后使用git commit命令将我们暂存区的代码提交到本地版本仓库,此时代码就在git的本地参考完成了更新,通过push命令可以将我们本地的版本推送到远程的版本控制库。

一篇文章熟练掌握Git_第3张图片

1.5 Git代码托管中心

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

局域网代码托管中心:
GitLab
互联网代码托管中心:
GitHub(外网)
Gitee(国内)

二. Git安装

2.1 官网地址

GIt官网地址

2.2 安装流程

在GIt官网主页点击Download,选择与我们本地参数适配的版本下载即可,我这里演示mac的安装流程

  1. 输入brew install git命令开始安装
  2. 查看git版本
    一篇文章熟练掌握Git_第4张图片

三. 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 版本号 版本穿梭

3.1 设置用户签名

签名的作用是区分不同操作者的身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置用户签名。(这里设置的用户签名和将来登录github的账号没有任何关系)

git config --global user.name jakiechai #设置用户名为jakichai
git config --global user.email 2012126846@qq.com #设置用户邮箱为[email protected]

一篇文章熟练掌握Git_第5张图片

3.2 初始化本地库

git如果要管理我们的某一个代码目录时我们就需要git获得这个目录的管理权,这就是初始化本地库的作用,下面我找了我本地的一个springBoot的项目,将其交给git托管:

git init

一篇文章熟练掌握Git_第6张图片

git的相关目录默认是隐藏的,我们查看 git管理后目前该文件夹的内容

在这里插入图片描述

3.3 查看本地库状态

git status

3.4 工作区文件添加到暂存区

git add touchssm

一篇文章熟练掌握Git_第7张图片

3.5 暂存区文件提交到本地库

git commit -m "first commit" touchssm

一篇文章熟练掌握Git_第8张图片

3.6 修改文件内容

我修改了touchssm下随意的一个文件,加了下面一句话

一篇文章熟练掌握Git_第9张图片

查看本地库状态

一篇文章熟练掌握Git_第10张图片

将修改后的文件添加到暂存区

一篇文章熟练掌握Git_第11张图片

暂存区的内容添加到本地仓库

在这里插入图片描述

3.7 查看历史版本

git reflog #精简版
git log #详细版

一篇文章熟练掌握Git_第12张图片

3.8 版本穿梭

如果我们绝对当前项目的版本不如原来的版本,我们可以让git当前维护的版本传梭到以前的版本(master指针会指向当前版本)

 git reset --hard cbe70f3 #cbe70f3是我们要穿梭的版本号,可以用git reflog查看 

在这里插入图片描述

查看我原先更改的文件内容,来确定我的版本是否更替:

一篇文章熟练掌握Git_第13张图片

四. Git分支操作

4.1 简介

在版本控制的过程中,同时推进多个任务,为每个任务,我们可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发线上分离来,开发自己的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(例如项目开发过程中,如果我先在正在推进主线工作,如果项目团队的其它人需要进行代码测试,这时候我们就可以创建分支,让测试员工在分支上面工作,这样就是不会影响主线的推进,同时又可以完成测试工作)

一篇文章熟练掌握Git_第14张图片

4.2 分支优点

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

4.3 分支的操作

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

4.4 查看分支

git branch -v

当前只有一个master分支

一篇文章熟练掌握Git_第15张图片

4.5 创建分支

git branch hot-fix

一篇文章熟练掌握Git_第16张图片

4.6 切换分支

切换到hot-fix分支

git checkout hot-fix

一篇文章熟练掌握Git_第17张图片

4.7 修改分支

在hot-fix分支上修改readme.md

一篇文章熟练掌握Git_第18张图片

安装上面步骤提交更新内容到本地仓库,并查看更新结果

一篇文章熟练掌握Git_第19张图片

切换到master分支,查看readme的内容

一篇文章熟练掌握Git_第20张图片

4.8 合并分支

git merge hot-fix

一篇文章熟练掌握Git_第21张图片

在合并分支时可能会遇到冲突问题,意思就是合并分支时,要合并的两个分支在同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个,这时候需要人为的决定新代码的内容,下面演示一下冲突问题的发生以及解决办法。

在master上修改readme.md

一篇文章熟练掌握Git_第22张图片

提交修改

在这里插入图片描述

切换到hot-fix分支并修改readme.md文件

一篇文章熟练掌握Git_第23张图片

提交修改

一篇文章熟练掌握Git_第24张图片

切换会master分支,并合并两个分支,发生冲突问题

一篇文章熟练掌握Git_第25张图片

开始手动合并解决分支问题,首先打开readme.md文件

一篇文章熟练掌握Git_第26张图片

在readme.md中保留我们要保留的内容,删除我们不要的内容保存即可达到手动更新

一篇文章熟练掌握Git_第27张图片

提交我们的更新内容到暂存区,然后执行提交,注意这时候使用git commit提交不能带文件名

在这里插入图片描述

五. Git团队协作机制

5.1 团队内协作

一个团队内的成员是共享一个远程库的,所以团队内部只需要通过pull,push和clone等命令就可以实现代码的同步,达到团队内的协作

一篇文章熟练掌握Git_第28张图片

5.2 团队外协作

对于团队外合作,由于下面B公司员工不属于A团队的成员,所以他不能使用A团队的远程库,所以如果他要修该项目,需要首先通过fork命令 ,将A团队的项目代码拉取到自己的本地库,然后clone下来进行修改,修改完成后push到自己的远程库,同时发一个pull request命令到A团队的远程库,A团队的项目经过审核之后就可以将B公式员工的修改拉取到自己的 远程库,达到团队外协作。

六. GitHub操作

6.1 简介

Github是全球最大的同性交友网站,是技术宅男的天堂

6.2 GitHub操作之上传本地库

注册三个账号来模拟团队内协作和团队外协作

  1. 创建远程库
    一篇文章熟练掌握Git_第29张图片
  2. 远程库内容
  3. 创建远程库别名

创建别名的目的是由于远程库链接比较长,每次操作比较长,所以给远程库创建别名,下次使用远程库时直接使用别名即可
(下面我使用的是ssh方式,需要提前完成github的 ssh免密登录,由于我是m1这里我就不操作了)

git remote add ori [email protected]:chailong2/gittest.git #也可以直接使用链接
#这个地址是我的远程仓库的https地址 
git remote -v# 查看别名

  1. 本地库代码推送到远程库上面

推送的单位是分支

git push ori master

一篇文章熟练掌握Git_第30张图片

github上查看效果

6.3 GitHub操作之拉取远程库到本地库

  1. 在github上面修改指定文件的内容并提交
    一篇文章熟练掌握Git_第31张图片
  2. 将更新后的远程库拉取到本地
git pull [email protected]:chailong2/gittest.git master

一篇文章熟练掌握Git_第32张图片
3. 在本地查看在github上面修改的文件内容

发现内容已经修改成功,说明我们拉取成功

在这里插入图片描述

6.7 GitHub操作之克隆远程仓库到本地

  1. 创建新的文件夹来接受克隆项目
    一篇文章熟练掌握Git_第33张图片
  2. 控制台进入指定目录并开始clone
git clone [email protected]:chailong2/gittest.git

一篇文章熟练掌握Git_第34张图片
3. clone结果查看

一篇文章熟练掌握Git_第35张图片

七. Idea集成Git

7.1 配置Git忽略文件

在创建idea项目时,常常会创建一些对项目部署和运行的没有太大作用的文件,我们需要配置Git忽略这些文件

一篇文章熟练掌握Git_第36张图片

  1. 创建忽略规则文件***.ignore(直接在文件中写我们要忽略的文件的后缀即可)
*.class
*.log
*.ctxt
*.mtj.tmp/
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
*.idea
*.iml
hs_err_pid*
.classpath
.project
.settings
target
  1. 在git.config中引用这个文件
open ~/.gitconfig #打开gitconfig文件(仅限mac这么操作)
######
excludesfile=/Users/jackchai/Desktop/SpringBoot/git.ignore

一篇文章熟练掌握Git_第37张图片

7.2 idea中使用git

  1. 在idea中配置git环境

找到设置中的git,填入git.exe所在的文件位置即可

一篇文章熟练掌握Git_第38张图片
2. 在idea初始化本地仓库

在菜单栏的选中VCS,然后按下图操作即可

一篇文章熟练掌握Git_第39张图片

查看项目,会发现出现了.git文件

一篇文章熟练掌握Git_第40张图片
3. 在idea将指定项目添加到暂存区和本地库

关于git中idea中各类文件颜色的含义:
绿色:已经加入了git控制,但是没有提交
红色:未有加入版本控制
蓝色:加入,已提交有改动
白色:加入,已提交无改动
灰色:版本控制已经忽略该文件

一篇文章熟练掌握Git_第41张图片

提交之后,绿色文件就会变成正常的黑色,表示文件已经提交到本地仓库

  1. idea切换版本

随便修改一个代码内容

鼠标右击指定文件,点击git下的add将文件添加到暂存区,然后点到git下的commit提交到本地仓库

一篇文章熟练掌握Git_第42张图片

使用idea查看版本信息,idea左下角有一个git,点击后即可查看所有的版本信息(head和master表示当前版本)

一篇文章熟练掌握Git_第43张图片

选择要切换的版本右击选择切换即可(下面我选择的是first commit版本)

一篇文章熟练掌握Git_第44张图片

验证切换结果

一篇文章熟练掌握Git_第45张图片
5. idea创建分支和切换分支

创建分支
方法一:指定要创建分支的项目,右击选择git下的Repository下的Branches,选择弹出框的创建选项,输入分支名即可创建成功

方法二:点击idea的右下角,选择添加新分支即可创建

一篇文章熟练掌握Git_第46张图片

切换分支
点击右下角的branches选择要切换的分支的,点击然后选择checkout即可切换

在这里插入图片描述
6. idea合并分支

在Idea窗口的右下角,将branch1合并到master

一篇文章熟练掌握Git_第47张图片

合并时的冲突问题解决
在branch1分支上修改

在这里插入图片描述

在master分支上修改

一篇文章熟练掌握Git_第48张图片

当前版本情况

一篇文章熟练掌握Git_第49张图片

idea手动解决合并分支发生冲突问题

一篇文章熟练掌握Git_第50张图片

冲突问题解决结果

一篇文章熟练掌握Git_第51张图片

7.3 idea中集成Github

  1. 设置github账号(建议用tokens登录)
    一篇文章熟练掌握Git_第52张图片
  2. 使用idea将项目传到github上

在vcs中选择将项目分享到Github选项

在弹出框中选择share即可
Repository name:远程仓库名(和项目名保持一致)
Remote:远程地址别名
Decription:描述

一篇文章熟练掌握Git_第53张图片
3. 在github上查看结果

7.4 idea其它操作

  1. 将项目推送到远程库

方法一:项目名右击git->repository->push就行

方法二:vcs里面可以操作

方法三:点击箭头
在这里插入图片描述

  1. 拉取远程库到本地

和push的三个方法是一样的,操作的地方在一个位置,这个不细讲了

注意:push是将本地代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push的操作是会被拒绝的。也就是说,要想push成功,一定要保证本地库的版本要比远程库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先pull拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交推送。


3. 克隆远程库到本地

方法一:进入idea时选择get from version control,然后填写url未远程库的地址就是

方法二:在idea里面选择新建项目,然后选择创建项目通过版本控制一篇文章熟练掌握Git_第54张图片

八. 国内代码托管中心码云(gitee)

8.1 简介

总所周知,GitHub服务器在国外,使用GItHub作为代码项目托管网站,如果网速不好的话,严重影响体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内项目托管网站-码云。码云是开源中国推出的基于GIt的代码托管服务中心,使用方式和GitHub一样,前面介绍的GitHub的操作方法都可以在gitee上面使用

一篇文章熟练掌握Git_第55张图片

8.2 码云上创建远程库

直接点击新建仓库,然后填写相关信息即可

一篇文章熟练掌握Git_第56张图片

创建成功如下

一篇文章熟练掌握Git_第57张图片

8.3 Idea集成gitee码云

  1. idea安装码云插件

在设置中选择plugins插件,搜索码云下载gitee插件重启idea即可

一篇文章熟练掌握Git_第58张图片
2. 添加码云账号

直接输入gitee登录账号

一篇文章熟练掌握Git_第59张图片

  1. 将项目分享到码云上面

操作都和gitee是一样的,这里是直接将本地仓库分享到码云上,这样码云上面就会自动创建新的仓库,当然也可以直接在码云上面创建新仓库,然后将代码push到新仓库中即可,结果都是一样的。

gitee上面就会出现我刚刚分享的项目

一篇文章熟练掌握Git_第60张图片

8.4 码云复制github项目

码云可以直接将github上面的项目迁移到git中,操作很简单
首先在码云上面新建立仓库,然后选择导入已有仓库

一篇文章熟练掌握Git_第61张图片

开始拉取

一篇文章熟练掌握Git_第62张图片

查看结果

一篇文章熟练掌握Git_第63张图片

当然gitee的强大功能远不止这些,例如我们可以在码云上更新项目代码,然后级联更新github

你可能感兴趣的:(Git,git,github,服务器)