版本控制工具

🍓版本控制工具

  • 分布式版本控制工具:Git
  • 集中式版本控制工具:SVN

分布式版本控制工具的优点:

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

🍓Git

🍒工作机制

在这里插入图片描述

🍒代码托管中心

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

  • 局域网:GitLab
  • 互联网:
    • 国外: GitHub
    • 国内: Gitee 码云
🍒Git命令
🍅查看版本
# 查看 git 版本
$ git --version
🍅设置签名
# 设置用户签名为xuhx
$ git config --global user.name xuhx

# 设置用户邮箱为xxx@qq.com
$ git config --global user.email xxx@qq.com

注意: 用户签名和用户邮箱只需设置一次即可。如果不设置,则无法提交代码。这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

🍅初始化本地库

前往自己项目的根目录下,右键,打开Git Bash命令窗口

#1. 初始化本地库
$ git init

#2. 查看当前项目的提交情况(红色标注的文件是未提交的文件、绿色标注的文件是已经提交到暂存区的文件)
$ git status

#3. 提交文件mvnw到暂存区
$ git add mvnw

#4. 删除暂存区中的mvn文件
$ git rm --cached mvnw

#5. 提交本地库git commit -m "日志名称" 暂存区的文件
$ git commit -m "first commit" mvnw

#6. 查看提交版本信息
# 精简版本信息查看(HEAD -> master指向的版本为当前最新版本)
$ git reflog
# 详细版本信息查看
$ git log

#7. 版本穿梭
$ git reset --hard 6521fc5
🍅分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。默认git会给我们创建一个主分支master
分支的好处: 同时并行推进多个功能开发,提高开发效率。各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

# 查看分支(*代表当前所在的分区)
$ git branch -v

# 创建一个分支,分支名叫hot-fix
$ git branch hot-fix

# 切换当前分支为hot-fix
$ git checkout hot-fix

# 合并分支(合并分支是指将指定分支合并到当前分支)
$ git merge hot-fix

合并分支代码冲突问题:

  1. A分支是基于master分支的基础之上做的修改,且master没有做修改,将A分支合并到master分支上,不会产生代码冲突。
  2. A分支的代码文件与master分支的代码文件没有交集,不会产生代码冲突
🍒GitHub
  1. 登录GitHub官网https://github.com/

  2. 创建公有远程仓库,得到仓库https地址
    在这里插入图片描述
    在这里插入图片描述

  3. 本地命令操作

    #1. 给gitHub远程仓库起别名
    $ git remote add gitHub_demo https://github.com/xuhx-157/gitHub-demo.git
    
    #2. 查看当前所有远程地址别名
    $ git remote -v
    
    #3. 推送本地库的分支master到远程库gitHub(注意:这个推送需要登录过gitHub的浏览器认证授权,因为gitHub是国外的,所以会有大概率的失败,重试即可)
    $ git push gitHub_demo master
    
    #4. 拉取远程库gitHub的分支master到本地更新代码
    $ git pull gitHub_demo master
    
    #5. 克隆远程库gitHub的分支master到本地(克隆实现了三步:拉取代码、初始化本地库、创建远程库别名),注意:克隆公有远程仓库不需要登录gitHub
    $ git clone https://github.com/xuhx-157/gitHub-demo.git
    
  4. 团队内协作:推送本地库分支到远程库,需要你的GitHub账户在这个项目的团队中
    邀请别人作为当前远程库的成员
    在这里插入图片描述

  5. ssh免密登录gitHub
    进入当前用户的家目录下进入Git Bash,输入以下命令:

    # 三次直接会车,生成公钥和私钥(在当前家目录下回生成一个.ssh的隐藏文件夹,里面有公钥和私有文件,复制公钥文件里面的钥文)
    $ ssh-keygen -t rsa -C 1572735583@qq.com
    

    来到下图所在地方,将公钥钥文粘贴到这个里面
    在这里插入图片描述
    加完后我们可以使用ssh协议去拉取项目

    $ git clone git@github.com:xuhx-157/gitHub-demo.git
    
🍒idea应用
🍅环境配置
  1. 配置Git忽略文件
    与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之
    间的差异。
    在当前用户目录下创建git.ignore文件,添加下面的配置
    # 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*
    
    .classpath
    .project
    .settings
    target
    .idea
    *.iml
    
  2. .gitconfig 文件中引用忽略配置文件(注意:这里要使用正斜线(/),不要使用反斜线(\))
    [core]
    excludesfile = C:/Users/15727/git.ignore
    
  3. 配置IDEGit安装位置
    在这里插入图片描述
🍅初始化本地库

在这里插入图片描述
初始化完成后,当前项目所有文件都会变成红色,红色代表未添加到暂存区

🍅加入暂存区

在这里插入图片描述

🍅提交本地库

在这里插入图片描述

🍅提交记录、版本切换

在这里插入图片描述

🍅分支
  1. 创建分支
    在这里插入图片描述
  2. 切换分支
    在这里插入图片描述
  3. 合并分支
    在这里插入图片描述
🍅集成gitHub
  1. 安装GitHub插件
    在这里插入图片描述
    IDE默认集成了GitHub插件,如果没有可以去plugins下载
  2. 使用tocken绑定GitHub账户
    个人-> settings -> Developer settings ->Person access tockens,注意生成的tocken只会出现一次,之后是不会找的到的,将生成的tocken粘贴到IDEGitHub即可完成绑定在这里插入图片描述
  3. 将本地库推送到远程库(第一次推送)
    VCS -> import into version control -> share project on GitHub
    在这里插入图片描述
  4. 拉取远程库代码到本地库
    项目右键 -> Git -> repository -> Pull
  5. 将本地库提交更新远程库代码(注意:先拉取再更新可以避免冲突)
    项目右键 -> Git -> repository -> Push
🍅集成Gitee
  1. 安装Gitee插件
  2. 剩下步骤与GitHub差别不大

🍓GitLab

  1. 下载GitLab安装包,将安装包上传到服务器上(注意服务器内存至少3G
  2. 编写安装脚本,执行安装
    sudo rpm -ivh gitlab-ce-13.10.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 -y 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
    
  3. 初始化GitLab
    [root@Centos101 ~]# gitlab-ctl reconfigure
    
  4. 启动和关闭GitLab
    [root@Centos101 ~]# gitlab-ctl start
    [root@Centos101 ~]# gitlab-ctl stop
    
  5. 启动完成后浏览器直接访问服务器ip即可
  6. 初始化管理员密码
    [root@Centos101 ~]# gitlab-rails console -e production
    irb(main):001:0> user = User.where(id: 1).first
    irb(main):003:0> user.password = 'abc123'
    irb(main):004:0> user.password_confirmation = 'abc123'
    irb(main):005:0> user.save
    irb(main):006:0> exit
    
  7. 页面注册账号,登陆管理员账号批准该账号
    Menu -> Admin -> View latest users
  8. 也可以设置注册账号不需要管理员批准
    Menu -> Admin -> View Setting -> General -> 取消勾选Require admin approval for new sign-ups When enabled, any user visiting http://gitlab.example.com/users/sign_in and creating an account will have to be explicitly approved by an admin before they can sign in. This setting is effective only if sign-ups are enabled.
  9. IDE安装GitLab插件,注意:最新版本的GitLab Projects2020的运行环境是JDK11,而我们一般使用JDK8作为开发环境,所以我们需要下载其历史版本。点击下载历史版本
🍒GitLab用户的角色权限
  • Guest:可以创建issue、发表评论,不能读写版本库
  • Reporter:可以克隆代码,不能提交
  • Developer:可以克隆代码、开发、提交、push
  • Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目
  • Owner:可以设置项目访问权限、删除项目、迁移项目、管理组成员

注意:GitLab在提交的时候有时候会遇到问题,路径是:gitlab.example.com,与我们实际的路径不符,这个时候到项目的根路径下,.git目录中,修改config文件夹里的路径即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MR列表中显示给定MR的批准。 切换到GitLab之后,我注意到依赖于合并请求的批准系统时,很难预先知道您已经批准了哪些请求。 进行此扩展是为了清楚地知道您已完成的合并请求,而不必单击每个合并请求。 变更日志:2019年1月21日(v1.3.3):*修复了非常大的组视图*组视图中合并请求`li`项的选择器出现问题,导致在何处注入批准和移动作者的观点。 2019年1月20日(v1.3.2):*添加了群组支持*该插件现在可用于所有复合群组视图。 *使用单个API调用获取项目ID(仅当以前没有看到过!),然后使用与项目视图类似的功能。 *添加选项以清除所有缓存和设置(2019年1月19日(v1.3.1)):*修复了一个缓存错误,该错误涉及从页面上获得错误的时间戳记*修复了通用权限问题*允许我更快地发布*潜在地减少了可以与该扩展程序一起加入白名单的网站的数量。 将继续调查。 2019年1月18日(v1.3.0):*现在托管在chrome网上商店中! *现在可与任何gitlab主机一起使用! *修复了设置不起作用的问题*减少了后续页面刷新时潜在的调用数(减少了对MR状态检查的初始API请求)为0 *修复了由于新问题导致的排序/搜索/排序/页面浏览量问题获取MR时间戳的方法*添加了新设置*现在,您可以自动将其标记为复选框,以在合并MR后自动删除分支。 默认情况下禁用此功能。 *清理了一些代码-由于进行了新的缓存检查,最终使内部内容看起来更好。 页面加载速度更快! 支持语言:English

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值