失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【面试必备!Mac版本】一文打通Git教程!史上最硬核解析!——双非上岸阿里巴巴系列

【面试必备!Mac版本】一文打通Git教程!史上最硬核解析!——双非上岸阿里巴巴系列

时间:2022-11-14 05:33:52

相关推荐

【面试必备!Mac版本】一文打通Git教程!史上最硬核解析!——双非上岸阿里巴巴系列

东北某不知名双非本科,四面成功上岸阿里巴巴,在这里把自己整理的面经分享出来,欢迎大家阅读。

Git是目前最简单、最流行、最优秀的分布式版本控制工具,没有之一。也是面试时最易被广大同学忽略的知识。大到BAT,小到创业公司,几乎所有的企业都以Git作为自己的核心管理工具。 因此,只要从事互联网行业,Git就是必须要会的。

恰个饭——>《阿里巴巴 Java 开发手册》,业界普遍遵循的开发规范

本博客内容持续维护,如有改进之处,还望各位大佬指出,感激不尽!

文章目录

第一章 Git概述1.1 何为版本控制1.2 为什么需要版本控制1.3 版本控制工具1.4 Git简史1.5 Git工作机制1.6 Git和代码托管中心第二章 Git安装第三章 Git常用命令3.1 配置基本信息(只需设置一次)3.2 初始化本地库3.3 查看本地库状态3.4 添加暂存区3.5 提交本地库3.6 修改文件3.7 历史版本3.7.1 查看历史版本3.7.2 版本穿梭3.8 其他常用命令3.9 Linux常用命令第四章 Git分支操作4.1 分支概念4.2 分支的好处4.3 分支的操作产生冲突第五章 Git团队协作机制第六章 GitHub操作6.1 创建远程仓库6.2 远程仓库操作6.2.1 创建别名6.2.2 推送本地库到远程库6.2.3 拉取远程库到本地库6.3 跨团队协作第七章 IDEA集成Git7.1 配置Git7.2 初始化 & 添加 & 提交初始化添加提交7.3 切换版本7.4 创建分支7.5 合并分支无冲突合并冲突合并第八章 IDEA集成GitHub8.1 分享项目到GitHub8.2 推送代码到GitHub8.3 拉取代码到本仓库8.4 clone代码8.4 七、八章总结第九章 自建代码托管平台-GitLab储备知识git clone 与 git pull的区别git clone 与 git pull 相同点git clone 与 git pull 不同点git clonegit pull使用场景Git|GitHub|Gitee|GitLab区别分盘修改git的端口号解决IDEA集成GitHub失败问题一. 出现这种问题的原因:二. 解决方案:Git - IDEA 来回切换分支引起报错指针颜色说明idea连接GitHub提示Connection reset

第一章 Git概述

Git是一个免费的、开源的分布式版本控制系统,可以快速高效处理项目

占地小、易学习、性能好、廉价

PS:学习git,linux命令很重要,因为是同一个爸爸

1.1 何为版本控制

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

最重要的修改文件修改的历史记录,从而让用户能查看版本,切换版本。

1.2 为什么需要版本控制

个人开发过渡到团队开发,团队间需统一版本,互相协调。

1.3 版本控制工具

集中式版本控制工具

CVS、SVN、VSS等

都有一个中央服务器,保存所有文件的修订版本,所有人都能通过客户端连接到这台服务器,取出最新的文件,或提交更新。

好处是管理员可以掌握每个开发者的权限,并且统一管理,协调进度,维护简单。

坏处是如果中央服务器单点故障,则全部无法工作

分布式版本控制

以Git为例,客户端提取的不是最新版本的文件快照,而是把代码仓库完整的镜像下来(本地库),这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。

解决了集中式版本控制系统的缺陷。

且:服务器断网情况下也能进行开发,每个客户端保存的也都是完整项目(包含历史记录)

1.4 Git简史

1.5 Git工作机制

以上图片为工作区、暂存区、本地库之间的关联,在本地库之上还有一层远程库。如下图所示:

工作区:存放代码的位置

暂存区:把工作区的代码add到暂存区

本地库:暂存区commit到本地库。一旦提交到本地库,就生成了历史版本,无法删除

远程库:本地库push到远程库(全互联网或全局域网都生成了历史版本)

1.6 Git和代码托管中心

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

局域网常见的代码托管中心:GitLab

互联网常见的代码托管中心:GitHub、Gitee

第二章 Git安装

mac版本:打开终端,输入git,则自动安装

查看git安装目录:which git

Windows版本——>传送门

第三章 Git常用命令

3.1 配置基本信息(只需设置一次)

配置用户名

git config --global user.name “shaonaiyi”

解释:作用是区分不同操作者身份。因此不设置无法提交代码。

配置用户邮箱

git config --global user.email “shaonaiyi@”

解释:这个邮箱是虚拟邮箱。

配置大小写敏感

git config --global core.ignorecase false

以后想要修改还是使用上面的指令。

3.2 初始化本地库

作用:把这个目录变为git可以管理的仓库

语法:git init

步骤:新建文件夹,在终端中进入,输入命令后,该文件夹内就会生成.git隐藏文件

3.3 查看本地库状态

作用:查看本地库的分支、提交情况等

语法:git status

示例

1、直接运行git status:

2、现在我们创建一个hello.txt,再次运行git status,得:

显示有一个未被追踪过的文件,也就是有文件未被添加到暂存区

3.4 添加暂存区

接上。

作用:将文件添加到暂存区

语法:git add hello.txt

示例

将文件从暂存区删除:git rm --cached hello.txt

3.5 提交本地库

接上。

作用:将暂存区的文件提交到本地库,形成历史版本(版本信息)。

语法:git commit -m “日志信息” “文件名”

示例

3.6 修改文件

接上。

作用:模拟企业开发中的版本迭代

示例:首先修改文件,再次查看本地库状态,发现红色的信息,提示被修改。解决办法是,首先添加到暂存区,再提交本地库

3.7 历史版本

3.7.1 查看历史版本

写法:git reflog:查看历史版本

版本号、指针指向master分支、版本名称为first commit

写法:git log 查看详细日志

3.7.2 版本穿梭

写法:git reset --hard

示例

原理:通过指针实现

解释:head是头指针,master是分支,first等是某一分支下的版本。

3.8 其他常用命令

查看Git的配置信息

git config --list

查看版本

git --verson

查看文件安装位置

which git

3.9 Linux常用命令

进入终端:control + space,输入终端

查看当前目录:pwd

进入根目录:cd

返回上一级:cd …

删除文件:rm 文件名

列出文件夹下所有文件:ls

新建文件夹:mkdir

查看某文件的安装目录:which …

查看文件内容:cat hello.txt

vim:文本编辑器

vim编辑器的三种模式

1、命令模式

2、插入模式

3、末行模式

命令模式:yy复制一行,dd删除一行,p粘贴

底行模式:wq保存并退出,q!不保存退出

第四章 Git分支操作

4.1 分支概念

概念:在版本控制过程中,同时推进多个任务,为每个任务,我们可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离出来,开发自己分支的时候,不会影响主线分支的运行。

对于初学者而言,分支可以简单理解为副本,其底层是对指针的引用

4.2 分支的好处

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

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

4.3 分支的操作

git branch 分支名:创建分支(基于最新的分支,引申出来的分支)

git branch -v:查看分支

git checkout 分支名:切换分支

git merge 分支名:把指定的分支合并到当前分支上(站在当前分支上,合并想喝合并的分支)

产生冲突

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

合并文件如果出现冲突,需要人为修改代码,然后添加暂存区,提交到本地库

第五章 Git团队协作机制

团队内协作

岳不群在本地库创建华山剑法项目,push到远程库。

令狐冲在远程库中把代码clone下来,优化一下,又push进远程库

跨团队协作

团队1感觉项目写的不行,于是想让大哥帮忙修改一下,于是大哥从团队1的远程库中fork项目,到自己的库中,改完在merge回去

第六章 GitHub操作

6.1 创建远程仓库

6.2 远程仓库操作

6.2.1 创建别名

查看别名:git remote -v

创建别名:git remote add ori /Tokyo-z/git-demo.git

原理:指针

6.2.2 推送本地库到远程库

语法:git push 别名or网址 分支

输入github的账号密码即可

6.2.3 拉取远程库到本地库

语法:git pull 别名or网址 存放拉取内容的分支

git pull ori master

6.3 跨团队协作

先把别人的项目fork到我这,再进行操作。

其他操作与团队内协作的操作一致。

第七章 IDEA集成Git

7.1 配置Git

7.2 初始化 & 添加 & 提交

初始化

将普通项目改为Git配置的模式

可以看到已经被改造成了Git格式

添加

此时我们发现文件变红了,因为没有吧文件添加到暂存区。 具体操作如下:

操作完成后,文件变绿

提交

添加到暂存区后,我们commit一下

提交后,文件重新变回正常颜色

7.3 切换版本

只要更改代码,我们发现代码变蓝了,说明这个代码被追踪了。 因此重复操作,add + commit,将提交版本置为second

提交后的分支

又创建了第三个版本:

切换版本:

此时,我们看到头指针指向了第二个版本

7.4 创建分支

查看当前分支 & 切换分支

7.5 合并分支

要将hot-fix分支合并到master上

无冲突合并

首先在热修分支创建新的版本并提交

接下来切换到master,进行如下操作:

合并成功后示意图:

冲突合并

在热修分支 和 master上到同一行同时更改代码,制造冲突,并提交

我们发现,发生了冲突。 此时需要点击merge,手动合并代码

合并成功后图示:

第八章 IDEA集成GitHub

8.1 分享项目到GitHub

GitHub就相当于远程库,分享到GitHub上就相当于分享到远程库

1、在Plugins里下载GitHub插件,下载成功后,在Version Control中显示。

2、设置GitHub账号,如果设置失败,见储备知识

3、将项目分享到GitHub上

8.2 推送代码到GitHub

注意:Push是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push的操作是会被拒绝的。

要想Push成功,本地库版本一定要高于远程库版本!

因此,当想要动手修改本地库代码时,要先pull拉取一下远程的代码,将本地代码更新到最新后,再修改、推送!

8.3 拉取代码到本仓库

在GitHub中,将项目编辑,新增代码,

用法同上

8.4 clone代码

把项目从本地删除, 可以从GitHub上clone回来

8.4 七、八章总结

第七章只用到了add + command,因此涉及到的路线是本地代码->暂存区->本地库

第八章用到的是push和pull,因此涉及到的路线是本地代码->远程库

第九章 自建代码托管平台-GitLab

GitLab的安装、下载、配置省略。。。(需要虚拟机)

IDEA集成GitLib

1、下载GitLab插件

2、连接服务器

3、操作(以push为例)

在url里添加上gitLib的链接即可

储备知识

git clone 与 git pull的区别

git clone 与 git pull 相同点

相同点:都是从远程服务器拉取代码到本地

git clone 与 git pull 不同点

git clone

是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程。

git pull

在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地。

git pull = git fetch + git merge

使用场景

通常情况下,远程操作的第一步,是使用git clone从远程主机克隆一个版本库到本地。

本地修改代码后,每次从本地仓库push到远程仓库之前都要先进行git pull操作,保证push到远程仓库时没有版本冲突。

Git|GitHub|Gitee|GitLab区别

Git:分布式版本控制系统

GitHub:基于Git原理的外国平台

Gitee:基于Git原理的国内平台

GitLab:基于Git原理的局域网平台

分盘

programFiles存放64位,x86存放32位

修改git的端口号

打开gitbash,进入仓库,输入指令: vim .git/config,或者windows下进到仓库文件夹,进入.git 用编辑器打开

修改后保存即可

解决IDEA集成GitHub失败问题

一. 出现这种问题的原因:

按图查看

你会发现你这里缺失了IDEA 的授权tokens

正常如下:

如果有授权,可以删掉,重新按下面步骤授权一次,因为这个秘钥不能二次查看

二. 解决方案:

解决步骤

1.点击加号,选择第二个登录方式

2.核心步骤

稍微等一会,会自动跳转

3.添加IDEA 授权的tokens

4.生成tokens

5.复制令牌授权码

6.回到IDEA 粘贴授权码

7.登陆成功

Git - IDEA 来回切换分支引起报错

当 Git 切换分支的时候,特别是当某一个A分支Module本来是有的,但是切换到B分支后没这个Module了,这时候再切回A分支去,此时该Module会错乱。

解决方案:

1、关闭IDEA,删除**.idea**文件夹即可,重新再加载项目试试

2、配置忽略文件

指针颜色说明

黄色:版本指针

绿色:分支指针

idea连接GitHub提示Connection reset

原因:访问外网太慢,时间限制到后默认无法访问。

打开:

http://github.global../ 进行查询IP地址,把查询到的IP地址,复制到自己的hosts文件中。

hosts 文件位置:

打开文件

将打开查找到的路径ip

将ip配置到host:方法如下显示

在文档最末尾添加:

然后点击保存

退出idea重新进入,发现可以运行了

如果觉得《【面试必备!Mac版本】一文打通Git教程!史上最硬核解析!——双非上岸阿里巴巴系列》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。