热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【尚硅谷】Git与GitHub基础全套完整版教程笔记4Eclipse的git插件git工作流Gitlab

上一篇文章【尚硅谷】Git与GitHub基础全套完整版教程-笔记3中以GitHub操作为例,介绍了在实际操作中管理自己的远程库。接下来看看Git图形化界面操作

上一篇文章【尚硅谷】Git与GitHub基础全套完整版教程-笔记3中以GitHub操作为例,介绍了在实际操作中管理自己的远程库。接下来看看Git图形化界面操作,如果平时做项目时不使用Eclipse工具,可以选择不看第7部分,直接点击目录链接跳转到第8部分Git工作流。

目录

7 Eclipse中Git插件简介

7.1 Eclipse新建工程

7.1.1 工程初始化为本地库

7.1.2 Eclipse中设置签名

7.2 Eclipse 忽略文件

7.2.1 文件忽略介绍

7.2.2 文件忽略具体步骤

7.2.3 提交暂存区和提交到库

7.3 将本地过程推送到远程库

7.4 Oxygen Eclipse 克隆工程操作(版本高一些) 

7.5 Kepler Eclipse 克隆工程操作(版本比较低的Eclipse)

7.6 在Eclipse中解决冲突

7.6.1 Eclipse制造冲突

7.6.2 Eclipse解决冲突

8 Git 工作流(3种)

8.1 概念

8.2 分类

8.2.1 集中式工作流像 

8.2.2 GitFlow 工作流(最经典,用得最多)

8.2.3 Forking 工作流(Linux团队用的多)

8.3 GitFlow 工作流详解 

8.3.1 分支种类

8.3.2 GitFlow 工作流举例

8.3.3 分支实战

8.3.4 分支实战具体操作

9 Gitlab 服务器搭建过程

9.1 官网地址

9.2 安装命令摘录——先不要着急按照这个命令去装

9.3 调整后的安装过程 

9.4 配置并启动Gitlab服务器操作

9.5 浏览器访问Gitlab首页

10 总结

10.1 版本控制

10.2 Git简介

10.3 Git命令行操作

10.4 Git图形化界面操作

10.5 Gitlab服务器环境搭建



7 Eclipse中Git插件简介

到目前为止讲解的命令行已经可以满足大部分的操作了。其实Git也可以实现图形化界面操作。

7.1 Eclipse新建工程


7.1.1 工程初始化为本地库

先创建一个Maven工程,右键new,选择Maven Project,Next,填写Group Id和Artifact Id,以及Packaging,象征性的建几个类。刚建完发现在本地文件夹下没有.git这个文件,需要初始化。

①工程→右键→Team→Share Project→Git

点击下面方框 

②Create Repository

③Finish

7.1.2 Eclipse中设置签名

window->prefer->Team->Git->Configuration->Reposit....

能看到工程的配置文件

(1)在Eclipse中设置本地库范围签名(用户名字)

(2)设置用户email

Eclipse查看git文件标识说明:window->prefer->Team->Git->Label Decorations

Eclipse中文件追踪添加到缓存区:文件/项目-> 右键->Team->Commit。

选中文件,拖拽即可。

Eclipse查看项目中的所有文件的Navigator窗口打开,Navigator栏可以看到所有文件。

7.2 Eclipse 忽略文件


7.2.1 文件忽略介绍

概念:Eclipse 特定文件。

这些都是 Eclipse 为了管理我们创建的工程而维护的文件,和开发的代码没有直接关系,最好不要在 Git 中进行追踪,也就是把它们忽略

例如:

.classpath 文件

.project 文件

.settings 目录下所有文件

为什么要忽略 Eclipse 特定文件呢?同一个团队中很难保证大家使用相同的 IDE 工具,而 IDE 工具不同时,相关工程特定文件就有可能不同。如果这些文件加入版本控制,那么开发时很可能需要为了这些文件解决冲突,浪费精力。

(文件忽略)GitHub 官网样例文件

下面的链接提供了各种语言的忽略文件

https://github.com/github/gitignore

https://github.com/github/gitignore/blob/master/Java.gitignore

7.2.2 文件忽略具体步骤

(1)编辑本地忽略配置文件,文件名任意(eg:在家目录下创建Java.gitignore,其实不一定在家目录下,但是为了和git的.gitignore在同一目录,保持一致)

Java.gitignore 文件编辑如下:

# Compiled class file *

.class

# Log file *

.log

# BlueJ files *

.ctxt

# Mobile Tools for Java (J2ME)

.mtj.tmp/

# Package Files #

*.jar

*.war

*.nar

*.ear

*.zip

*.tar.gz

*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml

hs_err_pid*

# add by yourself

.classpath

.project

.settings

target

(2)在~/.gitconfig 文件中引入上述文件,如下:

[core]

excludesfile = C:/Users/Lenovo/Java.gitignore 

[注意:这里路径中一定要使用“/”,不能使用“\”]

(3)完成后在Eclipse查看.gitconfig 配置:window->prefer->Team->Git->Configuration

(4)重启eclipse->Navigator窗口查看忽略是否成功,忽略的文件没有问号。

7.2.3 提交暂存区和提交到库

(1)提交到暂存区:项目右键>Team> add to Index  

文件上显示+

(2)提交到本地库中: 项目右键>Team>Commit  (我的快捷键:ctrl+shift+#)

直接commit也是可以的。

7.3 将本地过程推送到远程库

(在GitHub创建新的远程库TestGit)

复制http地址,项目->右键->Team->Remote->Push

URI: 粘贴在GitHub复制的地址,后面2个默认。User账号,下面是密码。然后点下一步。

点击Add All Bran... -> 然后下一步/或者直接Finish

可以添加一些日志信息->Finish

执行成功的结果:

7.4 Oxygen Eclipse 克隆工程操作(版本高一些) 

(1)右键, Import...导入工程

Next

(2)next,到远程库复制工程地址

(3)粘贴到URL  ,如下图,然后点击next

(4)选择分支  Next

(5)指定工程的保存位置(最好选择eclipse工作区) 然后next

等待下载

(6)指定工程导入方式,这里只能用:Import as general project (作为普通工程导入)

(7)点击Finish

(8)转换工程类型 (导入进来的不适合编写,需要修改Eclipse工程)

工程上点右键->Configure->Convert to Maven Project

(9)最终效果 

会生成eclipse工程的特定文件。在这Maven起到很大的作用。

7.5 Kepler Eclipse 克隆工程操作(版本比较低的Eclipse)

问题:不能保存到当前 Eclipse 工作区目录 (和上面第5步不同)

放在工作区[第(7)步时]不能导入,如下图:

正确做法:保存到工作区以外的目录中,其他的和上面都一样。

7.6 在Eclipse中解决冲突


7.6.1 Eclipse制造冲突

(1)分别修改TestGit和TestGit2同一文件同一位置

(2)然后:都提交到本地库,快捷ctrl+shift+#(他们两人个是个的本地库)

(3)然后TestGit推送到远程库(这里不是首次推送和上面不同   如下:)

工程右键->Team->Push Branch ‘master’)(所以默认直接下一步)->等条读完(弹出对话窗口)

(4)这时TestGit2不能推送,会出现这个图,因为不是最新版本

更新:右键->Team->pull

7.6.2 Eclipse解决冲突

(1)冲突文件→右键→Team→Merge Tool  

对于多行代码很有必要。

(2)修改完成后Eclipse正常执行[该文件] ,add/commit 操作即可。

8 Git 工作流(3种)

8.1 概念

在项目开发过程中使用 Git 的方式。

8.2 分类


8.2.1 集中式工作流像 

集中式工作流以中央仓库作为项目所有修改的单点实体。所有修改都提交到 Master 这个分支上。

这种方式与 SVN 的主要区别就是开发人员有本地库。Git 很多特性并没有用到。

8.2.2 GitFlow 工作流(最经典,用得最多)

Gitflow 工作流通过为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。

8.2.3 Forking 工作流(Linux团队用的多)

Forking 工作流是在 GitFlow 基础上,充分利用了 Git 的 Fork 和 pull request 的功能以达到代码审核的目的。更适合安全可靠地管理大团队的开发者,而且能接受不信任贡献者的提交。

8.3 GitFlow 工作流详解 


8.3.1 分支种类

①主干分支 master

主要负责管理正在运行的生产环境代码,永远保持与正在运行的生产环境完全一致。

②开发分支 develop

主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。

③bug 修理分支 hotfix

主要负责管理生产环境下出现的紧急修复的代码。从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。

④准生产分支(预发布分支) release

较大的版本上线前,会从开发分支中分出准生产分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。

⑤功能分支 feature

为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。开发完成后会合并到开发分支。

8.3.2 GitFlow 工作流举例

下面是GitFlow 工作流举例图:

8.3.3 分支实战

具体操作中没有必要把这些分支都做一遍,基于一小块我们操作一遍。

8.3.4 分支实战具体操作

(1)创建分支: 右键->Team->Switch To->New Branch

(2)给分支命名->Finish (创建后自动切换到分支)

(3)修改分支hot_fix的happy.java的内容(要避免冲突),提交到本地库

(4)远程推送到远程库

选择文件happy.java,然后右键-> Repository->Pish Branch ’hot_fix’

然后下一步->然后push

等待一会儿,弹出下面对话窗口说明成功了。

(5)ybq拉取操作不需要选择分支:(这里TestGit2模拟岳不群)

项目右键->Team->Pull

补充:上面操作如果说没有更新(上面没问题从这到(6)之间不用看)

项目右键>Team>Remote>Fetch Tags

(6)切换分支审查代码:项目右键>Team>Switch To > Other...

(7)选择分支

本地的分支只有master,远程还有hot_fix

(8)点击Check out as New Local Branch

(9)创建新分支,选择Check out new branch为检出远程新分支

(10)切换回 master 

(11)合并分支

选择要合并的分支,点Merge

合并结果

合并后直接提交到远程库(本地库已经提交)

右键->Team-Remote->Push Branch master

9 Gitlab 服务器搭建过程

安装CentOS7

在Linux环境下装,建议7。老师准备好了镜像文件。新建虚拟机。参照韩顺平老师视频看Linux。

9.1 官网地址

首页:https://about.gitlab.com/

点击Installation

安装说明:https://about.gitlab.com/installation/

9.2 安装命令摘录——先不要着急按照这个命令去装

sudo yum install -y curl policycoreutils-python openssh-server cronie

sudo lokkit -s http -s ssh

sudo yum install postfix

sudo service postfix start

sudo chkconfig postfix on

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ee

实际问题:yum 安装 gitlab-ee(或 ce)时,需要联网下载几百 M 的安装文件,非常耗时(一旦网络不好,容易出错,还需要回复快照等,很麻烦),所以应提前把所需 RPM 包下载并安装好。

下载地址为:(老师推荐的版本,打开链接,点击Download)

https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm

9.3 调整后的安装过程 

ee是企业版本(Enterprise Edition), ce是社区版本(Community Edition)。从协议来说,社区版更宽松。

sudo rpm -ivh /opt/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm

sudo yum install -y curl policycoreutils-python openssh-server cronie

sudo lokkit -s http -s ssh

sudo yum install postfix

sudo service postfix start

sudo chkconfig postfix on

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce 

(安装包已经下载下来了。)新建一个文件install.sh把上述的命令复制进去,就不用一行一行安装了。为了保险,新建一个快照“准备就绪”。

当前步骤完成后重启。(绿油油的安装过程)

9.4 配置并启动Gitlab服务器操作

初始化配置 gitlab

$gitlab-ctl reconfigure #这个会执行很长时间,action run经常出现,要有耐心。装了很多东西,过程很复杂。

启动 gitlab 服务

$gitlab-ctl start

停止 gitlab 服务

$gitlab-ctl stop

9.5 浏览器访问Gitlab首页

访问 Linux 服务器 IP 地址即可,如果想访问 EXTERNAL_URL 指定的域名还需要配置域名服务器或本地 hosts 文件。

如果网页出现拒绝访问,执行一下命令:

$service firewalld stop //停止防火墙服务

初次登录时需要为 gitlab 的 root 用户设置密码。

root/atguigu2018good

应该会需要停止防火墙服务。但是真正在生产环境下面,运维彻底把防火墙关掉确实是不太可取的,还是应该请运维小伙伴设置好的防火墙策略,开放需要访问的端口号。

10 总结

到目前为止,整个【尚硅谷】Git与GitHub基础全套完整版教程的笔记已经更新完毕,现在做一个简单的总结。

10.1 版本控制

版本控制介绍:个人开发改进迭代;团队协作

版本控制工具介绍:集中式版本控制工具;分布式版本控制工具

10.2 Git简介

Git简史

Git结构

Git和代码托管中心

Git安装

10.3 Git命令行操作

本地库操作

远程库操作

10.4 Git图形化界面操作

Eclipse的文件操作(不使用的话可忽略)

Git工作流

10.5 Gitlab服务器环境搭建

看具体公司需要

说明:记录学习笔记,如果错误欢迎指正!写文章不易,转载请联系我。


推荐阅读
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
author-avatar
追风神驹体育专营_462
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有