git的安装及与idea的集成及使用方法

git简介

1. 什么是版本控制

本章节学习目标:

  • 什么是版本控制
  • 为什么要进行版本控制
  • 常用的版本控制工具
什么是版本控制
  • 版本控制(Revision control)是一种软件工程技巧
  • 籍以在开发的过程中,确保由不同人所编辑的同一档案(项目代码)都得到更新。
为什么要版本控制
  1. 查看以往的代码修改记录及变化
  2. 恢复到历史某个时间的代码
  3. 协同开发时,合并同一文件中不同开发者写的代码
  4. 协同开发时定位修改代码的责任人
  5. 统计工作任务量
  6. 备份源代码
  7. 项目分享
常用的版本控制工具
  • CVS:早期版本管理软件
  • ClearCase:IBM企业级大型版本管理工具, 收费。
  • VSS:微软推出的版本管理工具, 较少使用
  • SVN:市面最流行的版本管理工具之一,拥有CVS所有功能,修复了CVS的不足
  • GIT:分布式版本管理工具。已经是大势所趋。

2. git介绍

本章节学习目标:

  • 了解git的历史
  • 理解集中式和分布式版本控制的区别
  • 理解git的工作流程
git来历

​ 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。

​ 到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许上千个并行开发的分支)
  • 完全分布式 和svn最主要的区别
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
git与svn区别
svn是集中式版本控制系统

git的安装及与idea的集成及使用方法_第1张图片
​ SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而编写代码的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新版本的代码,然后编写代码,完成后需要把自己的代码推送到中央服务器。

​ 集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就会非常影响工作效率。

  • 集中式版本控制系统的优点:
    • 在一定程度上看到其他开发人员在干什么,
    • 管理员也可以很轻松掌握每个人的开发权限。
  • 集中式版本控制工具缺点更明显:
    • 服务器单点故障
    • 容错性差
git是分布式版本控制系统

git的安装及与idea的集成及使用方法_第2张图片
​ Git是分布式版本控制系统,它没有中央服务器,每个人的电脑就是一个完整的版本库。这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

小结
  • svn:是个集中式的版本控制系统。有个中心点(svn服务器),每个客户端都对中心点有强依赖。

    一旦svn服务器出错,所有人都不能再进行版本控制了

    每个人都必须要联网,连接上svn服务器才可以进行版本控制

  • git:是个分布式的版本控制系统。没有中心点,每个人都可以独立进行版本控制

    即使没有联网,每个人也可以进行版本控制

四、git安装

​ 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上运行。后来也把git移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行。由于开发机大多数情况都是windows,所以这里只讲解windows下的git的安装及使用。

1. 软件下载

下载地址:https://git-scm.com/download

参考资料中已经提供好了安装包
git的安装及与idea的集成及使用方法_第3张图片

2. 安装git

2.1 双击安装包启动安装

git的安装及与idea的集成及使用方法_第4张图片

2.3 一路“Next”全部默认,直到安装完成

3. 安装TortoiseGit

3.1 安装小乌龟

在这里插入图片描述

1) 双击安装,选择安装路径
  • 双击TortoiseGit安装包,选择安装路径。

  • 注意:安装路径里不要有中文、空格、特殊字符
    git的安装及与idea的集成及使用方法_第5张图片##### 2) 选择语言

  • 安装后会进入首次配置向导。选择语言:English
    git的安装及与idea的集成及使用方法_第6张图片

3) 选择git路径
  • 选择刚刚安装git.exe的目录
    git的安装及与idea的集成及使用方法_第7张图片
4) 设置个人信息
  • 设置开发者的姓名和邮件。每次提交代码时都会把此信息包含到提交的信息中。
  • 名称和邮箱:名称建议使用英文字母+数字;邮箱建议使用真实邮箱
    git的安装及与idea的集成及使用方法_第8张图片
    git的安装及与idea的集成及使用方法_第9张图片
3.2 配置语言
1) 安装语言包

安装语言包:直接双击即可安装语言包
在这里插入图片描述

2) 设置语言

在桌面上空白位置右键,打开TortoiseGit的设置
git的安装及与idea的集成及使用方法_第10张图片
git的安装及与idea的集成及使用方法_第11张图片

3.3 重启电脑

安装完成之后,需要重启电脑

五、git使用

1. git的工作流程【理解】

本章节学习目标:

  • 理解git的工作流程

git的安装及与idea的集成及使用方法_第12张图片

  1. clone:从远程仓库中克隆 Git 资源作为本地仓库,第一次从远程仓库下载一个项目。
  2. checkout:从本地仓库中checkout代码然后进行代码修改。主要是分支的操作【目前先不管】
  3. add:在提交前先将代码提交到暂存区。
  4. commit:提交修改。提交到本地仓库工作区。本地仓库工作区中保存修改的各个历史版本。
  5. push:在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。

3. 使用小乌龟操作

本章节学习目标:

  • 使用小乌龟(TortoiseGit)操作git
步骤
  1. 能够使用小乌龟初始化本地仓库
  2. 能够设置忽略资源
  3. 能够添加文件到暂存区,提交文件
  4. 能修改文件并提交
  5. 能查看历史记录、比较差异、恢复代码
  6. 能删除文件
操作
1. 初始化本地仓库

git的安装及与idea的集成及使用方法_第13张图片
git的安装及与idea的集成及使用方法_第14张图片
git的安装及与idea的集成及使用方法_第15张图片
git的安装及与idea的集成及使用方法_第16张图片

4. 修改提交

修改后未提交文件图标是红色的感叹号。
git的安装及与idea的集成及使用方法_第17张图片

5. 查看历史记录

​ 在开发过程中可能会经常查看代码的修改历史,或者叫做修改日志。来查看某个版本是谁修改的,什么时间修改的,修改了哪些内容。

​ 可以在文件上或空白处点击右键选择“显示日志”来查看文件的修改历史。
git的安装及与idea的集成及使用方法_第18张图片

7. 代码恢复

假如写了很多代码后发现方向错误,要恢复到以前的版本,可以分两种情况进行恢复:

1. 还没有提交,要恢复

如果文件修改后还没有提交,可以直接还原。

例如我们又修改了pom.xml,但是还没有提交。在文件上右键直接还原
git的安装及与idea的集成及使用方法_第19张图片
git的安装及与idea的集成及使用方法_第20张图片

8. 删除文件

如果某些文件没用了,需要删除掉。这时可以

  1. 使用git提供的删除功能,直接将文件从版本库中删除。
  2. 删除后提交到版本库
    git的安装及与idea的集成及使用方法_第21张图片

六、git远程仓库

1. gitee配置

本章节学习目标:

  • 能够注册并配置gitee帐号

​ 现在我们已经在本地创建了一个Git仓库。假如又需要让其他人来协作开发,就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份。

​ 常用的远程仓库就是github:https://github.com/,或者码云 https://gitee.com (国内版本的GitHub)

​ 接下来我们演示如何将本地代码同步到码云gitee。gitee和GitHub的操作一模一样

1.1 注册gitee帐号

要求每个人都注册一个gitee帐号

1.2 在gitee创建仓库

通常是一个项目,要创建一个仓库

1. 新建仓库

git的安装及与idea的集成及使用方法_第22张图片

2. 设置仓库名称
  • 通常是把项目名称 作为 仓库名称来使用
  • 开源:这个仓库里的所有内容,可以被所有人看得到,被所有人下载仓库的内容。但是其它人不能修改
  • 私有:这个仓库里的内容,只有自己和设置的成员可以看到,其它人看不到
  • git的安装及与idea的集成及使用方法_第23张图片
3. 查看仓库地址
  • HTTPS地址是:https://gitee.com/liuyp100/rbac.git
  • SSH地址是:[email protected]:liuyp100/rbac.git

2. 推送代码到gitee

本章节学习目标:

  • 能够把本地仓库的内容推送到gitee
2.1 配置ssh密钥

创建gitee仓库后,如果我们要把自己本地仓库的代码推送到gitee远程仓库,就需要提供gitee身份验证信息、加密信息。gitee支持两种代码同步方式:https和ssh。

  • https方式:每次把本地仓库代码推送到远程仓库,都需要输入自己的gitee帐号和密码

  • ssh方式:每次把本地仓库代码推送到远程仓库时,不需要提供自己的gitee帐号和密码

    但是需要我们生成一对密钥:公钥配置到gitee上,私钥自己保留

    后续每次推送时,gitee都会验证公钥和私钥是否匹配。如果匹配,就可以推送

如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。而且如果是公司配置的私有git服务器一般不提供https方式访问,所以我们着重说明“ssh”方式。

什么是SSH协议

​ SSH,全称是Secure Shell,是建立在应用层基础上的安全协议外壳。

​ 最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。

  • 通过使用SSH,可以把所有网络传输的数据进行加密。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
  • 使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
生成SSH密钥

在windows下我们可以使用 Git Bash.exe来生成密钥,右键菜单打开Git Bash。

  1. 在桌面上右键,选择 “Git Bash Here”,打开git bash界面
  2. 执行命令,生成密钥。
    • 命令:ssh-keygen -t rsa,然后一路回车,采用默认配置
    • git的安装及与idea的集成及使用方法_第24张图片
  3. 查看生成的密码:

执行命令完成后,在C:\Users\用户名\.ssh下面生成如下名称的公钥和私钥:

公钥:需要上传到gitee

私服:需要配置到自己的客户端
git的安装及与idea的集成及使用方法_第25张图片

2.2 在TortoiseGit上配置ssh.exe

在桌面上右键,打开TortoiseGit的设置界面
git的安装及与idea的集成及使用方法_第26张图片

2.3 推送代码到远程仓库
  1. 在本地仓库的工作目录里推送代码
    git的安装及与idea的集成及使用方法_第27张图片
    2.设置远程仓库的信息
    git的安装及与idea的集成及使用方法_第28张图片
    git的安装及与idea的集成及使用方法_第29张图片
    git的安装及与idea的集成及使用方法_第30张图片
    3.点击“确定”开始推送
    git的安装及与idea的集成及使用方法_第31张图片
    git的安装及与idea的集成及使用方法_第32张图片
    git的安装及与idea的集成及使用方法_第33张图片

3. 从远程仓库克隆

​ 初次从远程仓库里获取项目代码的过程,叫克隆。克隆后会创建一个新的本地仓库。选择一个任意文件夹,然后使用TortoiseGit克隆远程仓库。

  1. 在桌面上空白位置右键,克隆
    . git的安装及与idea的集成及使用方法_第34张图片
  2. 查看克隆下来的代码

4. 从远程仓库更新代码

如果其它人向远程仓库里推送了代码,我们需要从远程仓库获取最新代码。

使用小乌龟TortoiseGit,从右键菜单中点击“拉取”
git的安装及与idea的集成及使用方法_第35张图片

5. 解决冲突

场景说明

git的安装及与idea的集成及使用方法_第36张图片

解决冲突(小乌龟版本)
1. 拉取代码

拉取代码,如果没有冲突会拉取成功。如果有冲突会拉取失败

拉取后在所有冲突的文件上,会有感叹号图标。我们需要挨个解决所有的冲突

拉取后:git的安装及与idea的集成及使用方法_第37张图片
git的安装及与idea的集成及使用方法_第38张图片
git的安装及与idea的集成及使用方法_第39张图片

3. 提交并推送到远程仓库

右键提交,在弹出的窗口里选择“提交”;然后推送到远程仓库

4. 通知对方拉取最新代码

七、git整合idea

1. idea配置git

1.1 配置git

注意:建议使用idea2018.2(idea2019.2版本可能有问题)
git的安装及与idea的集成及使用方法_第40张图片

1.2 创建一个新的project
  • 说明:在idea里使用git,是基于project操作的。

    在大型项目开发中,通常是一个项目要创建一个project,其中有很多Module;这多个Module共同组成一个完整的项目

2. 添加工程到gitee

注意:在做一切添加、提交、推送等操作之前,先设置忽略文件

2.1 设置忽略文件(不推送.idea和iml以及所有编译target文件)

可以在工程里手动创建.gitignore文件,编写要忽略的文件。也可以使用idea的.ignore插件来辅助编写。

在父工程上右键,创建文件,名称为.gitignore

.gitignore文件中,增加target、.idea、*.iml三项

target/
*.iml
.idea/
2.2 创建本地仓库

git的安装及与idea的集成及使用方法_第41张图片

2.3 将工程添加到本地仓库
1. 添加到暂存区

git的安装及与idea的集成及使用方法_第42张图片
git的安装及与idea的集成及使用方法_第43张图片

2.4 将工程推送到远程仓库
1. 在gitee新建仓库

2. 推送到远程仓库

git的安装及与idea的集成及使用方法_第44张图片

3. 从远程仓库克隆

git的安装及与idea的集成及使用方法_第45张图片

4. 断开git

4.1 删除.git目录

git的安装及与idea的集成及使用方法_第46张图片

你可能感兴趣的:(git)