版本控制工具

版本控制工具

版本控制工具

  • 分布式版本控制工具: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 = 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作为开发环境,所以我们需要下载其历史版本。点击下载历史版本
上一篇:Git以及Github学习指南


下一篇:AnotherRedisDesktopManager下载安装与连接Redis数据库