栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

git idea使用(idea整合git提交代码的正确步骤)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

git idea使用(idea整合git提交代码的正确步骤)

git简介 1. 什么是版本控制

本章节学习目标:

  • 什么是版本控制
  • 为什么要进行版本控制
  • 常用的版本控制工具 什么是版本控制

    版本控制(Revision control)是一种软件工程技巧籍以在开发的过程中,确保由不同人所编辑的同一档案(项目代码)都得到更新。 为什么要版本控制

      查看以往的代码修改记录及变化恢复到历史某个时间的代码协同开发时,合并同一文件中不同开发者写的代码协同开发时定位修改代码的责任人统计工作任务量备份源代码项目分享
    常用的版本控制工具

    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是集中式版本控制系统


    ​ SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而编写代码的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新版本的代码,然后编写代码,完成后需要把自己的代码推送到中央服务器。

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

    集中式版本控制系统的优点:

    在一定程度上看到其他开发人员在干什么,管理员也可以很轻松掌握每个人的开发权限。 集中式版本控制工具缺点更明显:

    服务器单点故障容错性差 git是分布式版本控制系统


    ​ 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

    参考资料中已经提供好了安装包

    2. 安装git 2.1 双击安装包启动安装

    2.3 一路“Next”全部默认,直到安装完成 3. 安装TortoiseGit 3.1 安装小乌龟

    1) 双击安装,选择安装路径

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

    注意:安装路径里不要有中文、空格、特殊字符
    ##### 2) 选择语言

    安装后会进入首次配置向导。选择语言:English

    3) 选择git路径

    选择刚刚安装git.exe的目录
    4) 设置个人信息

    设置开发者的姓名和邮件。每次提交代码时都会把此信息包含到提交的信息中。名称和邮箱:名称建议使用英文字母+数字;邮箱建议使用真实邮箱

    3.2 配置语言 1) 安装语言包

    安装语言包:直接双击即可安装语言包

    2) 设置语言

    在桌面上空白位置右键,打开TortoiseGit的设置

    3.3 重启电脑

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

    五、git使用 1. git的工作流程【理解】

    本章节学习目标:

  • 理解git的工作流程

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

    本章节学习目标:

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




    4. 修改提交

    修改后未提交文件图标是红色的感叹号。

    5. 查看历史记录

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

    ​ 可以在文件上或空白处点击右键选择“显示日志”来查看文件的修改历史。

    7. 代码恢复

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

    1. 还没有提交,要恢复

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

    例如我们又修改了pom.xml,但是还没有提交。在文件上右键直接还原

    8. 删除文件

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

      使用git提供的删除功能,直接将文件从版本库中删除。删除后提交到版本库
    六、git远程仓库 1. gitee配置

    本章节学习目标:

  • 能够注册并配置gitee帐号

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

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

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

    1.1 注册gitee帐号

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

    1.2 在gitee创建仓库

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

    1. 新建仓库

    2. 设置仓库名称

    通常是把项目名称 作为 仓库名称来使用开源:这个仓库里的所有内容,可以被所有人看得到,被所有人下载仓库的内容。但是其它人不能修改私有:这个仓库里的内容,只有自己和设置的成员可以看到,其它人看不到 3. 查看仓库地址

    HTTPS地址是:https://gitee.com/liuyp100/rbac.gitSSH地址是:git@gitee.com: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。

      在桌面上右键,选择 “Git Bash Here”,打开git bash界面执行命令,生成密钥。

      命令:ssh-keygen -t rsa,然后一路回车,采用默认配置 查看生成的密码:

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

    公钥:需要上传到gitee

    私服:需要配置到自己的客户端

    2.2 在TortoiseGit上配置ssh.exe

    在桌面上右键,打开TortoiseGit的设置界面

    2.3 推送代码到远程仓库
      在本地仓库的工作目录里推送代码

      2.设置远程仓库的信息



      3.点击“确定”开始推送


    3. 从远程仓库克隆

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

      在桌面上空白位置右键,克隆
      . 查看克隆下来的代码
    4. 从远程仓库更新代码

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

    使用小乌龟TortoiseGit,从右键菜单中点击“拉取”

    5. 解决冲突 场景说明

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

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

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

    拉取后:

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

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

    4. 通知对方拉取最新代码 七、git整合idea 1. idea配置git 1.1 配置git

    注意:建议使用idea2018.2(idea2019.2版本可能有问题)

    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 创建本地仓库

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


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

    2. 推送到远程仓库

    3. 从远程仓库克隆

    4. 断开git 4.1 删除.git目录

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/773610.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号