Git(分布式版本控制体系)

打印 上一主题 下一主题

主题 832|帖子 832|积分 2496

1 Git概述

Git是一个开源的分布式版本控制体系,可以有用、高速地处理从很小到非常大的项目版本管理。于2005年以GPL发布。采用了分布式版本库的做法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。
1.1 版本控制



  • 什么是版本控制
    ​ 版本控制是一种在软件开发过程中用于管理对文件、目录或工程等内容的修改汗青,方便查看更改汗青记载,备份以便恢复从前的版本的软件工程技术。
    ​ 版本控制最主要的功能就是追踪文件的变更,每一次文件的改变,文件的版本号都将增长。除了记载版本变更外,版本控制的另一个告急功能是并行开发。软件开发每每是多人协同作业,版本控制可以有用地解决版本的同步以及差别开发者之间的开发通讯题目,提高协同开发的服从。
  • 版本控制的作用
    从个人开发转为团队协作
1.2 版本控制工具


  • 会合式版本控制工具
    ​会合化的版本控制体系好比SVN ,有一个单一的会合管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制体系的尺度做法。
    优点:每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个会合化的版本控制体系,要远比在各个客户端上维护本地数据库来得轻松容易。
    缺点:缺点是中央服务器的单点故障。假如服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
  • 分布式版本控制工具
    分布式版本控制工具(如Git)是一种允许开发者在本地存储和管理代码版本的体系,它不需要依赖中央服务器。这种工具可以在本地存储完备的版本汗青,包括所有修改、合并等具体信息。开发者可以在本地进行提交和版本控制,并且可以随时与远程仓库进行同步。
    相比于传统的会合式版本控制体系(如SVN),分布式版本控制体系具有更高的机动性和安全性。由于每个开发者都可以在本地存储完备的代码库副本,因此可以更好地支持远程协作和离线开发。
优点


  • 服务器断网的环境下也可以进行开发(由于版本控制是在本地进行的)
  • 每个客户端保存的也都是整个完备的项目(包含汗青记载,更加安全)
1.3 关于Git

Git客户端是一款用于管理代码版本控制的工具,它能够帮助开发者在开发过程中跟踪代码的变革,协作开发,以及管理代码库。
工作机制:


  • 图解1

  • 图解2

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


  • GitHub(外网, 不稳定,经常无法访问) https://github.com/
  • Gitee 码云(国内网站) https://gitee.com/
2 Git安装

2.1 下载地点



  • 官网地点: https://git-scm.com/
2.2安装步骤

直接双击安装,一起默认即可。

  • 查看 GNU 协议,可以直接点击下一步。

  • Git 选项设置,保举默认设置,然后下一步。

  • Git 的默认编辑器,建议利用默认的 Vim 编辑器,然后点击下一步。

  • 默认分支名设置,选择让 Git 决定,分支名默以为 master,下一步。

  • 修改 Git 的环境变量,默认即可。

  • 选择后台客户端毗连协议,选默认值 OpenSSL,然后下一步。

  • 是否利用OpenSSL库,默认,继续下一步

  • 设置 Git 文件的行末换行符,Windows 利用 CRLF,Linux 利用 LF,默认,然后继续下一步。

  • 选择 Git 终端类型,默认,然后继续下一步。

  • 选择 Git pull 合并的模式,选择默认,然后下一步。

  • 选择 Git 的根据管理器,选择默认的跨平台的根据管理器,然后下一步。

  • 其他设置,选择默认设置,然后下一步。

  • 实行室功能,技术还不成熟,有已知的 bug,不要勾选,然后点击右下角的 Install按钮,开始安装 Git。

  • 点击 Finsh 按钮,Git 安装成功!

  • 右键恣意位置,在右键菜单里选择 Git Bash Here 即可打开 Git Bash 下令行终端。

  • 在 Git Bash 终端里输入 git --version 查看 git 版本,如图所示,阐明 Git 安装成功。

3 Git常用下令

下令作用git config --global user.name设置用户署名-用户名git config --global user.email设置用户署名-邮箱git init初始化本地仓库git status查看本地仓库状态git add添加到暂存区git commit -m “日记信息” 文件名提交到本地仓库git reflog查看汗青记载git reset --hard 版本号版本穿梭 3.1 设置用户署名



  • 下令语法
    git config --global user.name 用户名
    git config --global user.email 邮箱[可以不存在]

  • 下令阐明
    全局范围的署名设置.
    署名的作用是区分差别操作者身份。用户的署名信息在每一个版本的提交信息中能够看到,以此确认本次版本提交者的身份。Git 首次安装必须设置一下用户署名,否则无法提交代码。
    留意:这里设置用户署名和将来登录 Gitee(或其他代码托管中心)的账号没有任 何关系。
3.2 初始化本地库



  • 根本语法
    git init
  • 案例实操

    • 第1步:在 计算机 - D盘 下创建目录:gitspace
    • 第2步:在 gitspace 目录下,右键打开 Git Bash 终端
    • 第3步:初始化本地仓库:git init


3.3 查看本地库状态



  • 根本语法
    git status
  • 下令演示


    • 首次查看,工作区无任何文件
    • 新建文件:hello.txt ,并在此中输入恣意内容
    • 再次查看本地仓库状态:git status
    • 检测未被追踪到的文件, 文件的颜色为赤色


3.4 添加暂存区



  • 根本语法
    git add 文件名
  • 案例操作
    添加到暂存区后, 查看状态,检测到暂存区有新文件
    添加到暂存区后,文件的颜色变为绿色

3.5 提交到本地库



  • 提交到本地库
    git commit -m “日记信息” 文件名
  • 案例操作
    提交到本地仓库后,再次查看状态,没有文件需要提交

3.6 修改文件



  • 第1步:修改 hello.txt 文件内容;
  • 第2步:查看状态,检测到工作区有文件被修改 git status;
  • 第3步:将修改的文件再次添加到暂存区 git add hello.txt;
  • 第4步:将修改的文件再次提交到本地仓库 git commit -m “Second commit” hello.txt。
3.7 查看汗青版本



  • 根本语法
    git reflog // 查看版本信息
    git log // 查看具体版本信息
  • 案例操作

3.8 版本穿梭



  • 根本语法
    git reset --hard 版本号
  • 案例操作

  • HEAD指针指向第二次提交的 44fcd05 版本;

  • 切换到第一次提交的 39aabc2 版本;

  • 查看 hello.txt 文件内容,已修改;
  • git reflog 查看日记,HEAD指针已指向第一次提交的版本。
4 Git的分支操作

4.1 什么是分支

在版本控制过程中,同时推进多个使命,为每个使命,我们就可以创建每个使命的单独分支。利用分支意味着步调员可以把本身的工作从开发主线上分离开来,开发本身分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单明白为副本,一个分支就是一个单独的副本。

4.2 分支的利益

​同时并行推进多个功能开发,提高开发服从。
各个分支在开发过程中,假如某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
4.3 分支操作下令

下令作用git branch 分支名创建分支git branch -v查看分支git checkout 分支名切换分支git merge 分支名将指定分支合并到当前分支git branch -D 分支名删除分支 4.3.1 查看分支



  • 根本语法
    git branch -v
  • 案例操作
    星号 * 代表当前所在分区

4.3.2创建分支



  • 根本语法
    git branch 分支名
  • 案例操作

4.3.3 修改分支



  • 第1步:在master分支上做修改
  • 第2步:添加至暂存区、提交到本地库

  • 第3步:hot-fix 分支并未做任何改变、master 分支已更新为最新一次提交的版本

4.3.4 切换分支



  • 根本语法
    git checkout 分支名
  • 案例操作

    • 第1步:切换到hot-fix分支

    • 第2步:查看 hot-fix 分支上的文件内容发现与 master 分支上的内容差别
    • 第3步:在 hot-fix 分支上做修改
    • 第4步:添加到暂存区、提交到工作区


4.3.5 合并分支



  • 根本语法
    git merge 分支名
  • 案例操作
    在 master 分支上合并 feature-game 分支

4.3.6 分支合并冲突

条件:修改两个分支文件中同一行的内容


  • 冲突产生的表现:后面状态为 MERGING

  • 冲突产生的原因
    合并分支时,两个分支在同一个文件的同一个位置有两套完全差别的修改。Git 无法替 我们决定利用哪一个。必须人为决定新代码内容。
  • 查看冲突文件 eg3.txt

    特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>>feature-game
4.3.7 解决合并冲突



  • 第1步:编辑有冲突的文件,删除特殊符号,决定要利用的内容;
  • 第2步:添加到暂存区;
  • 第3步:执行提交(留意:此时利用 git commit 下令时不能带文件名)
    Git Bash 中后面 MERGING 消散,变为正常

5 Git团队协作机制


6 Gitee操作

国内代码托管中心-码云
Gitee网址:https://gitee.com/
6.1 简介

码云是开源中国推出的基于 Git 的代码托管服务中心,是一个中文网站。
6.2 码云账号注册和登录

进入码云官网地点:https://gitee.com/,点击注册 Gitee,输入个人信息,进行注册即可。
6.3 创建远程仓库

进入 Gitee 官网,登录成功后,按照如下图中所示方法创建远程仓库。
仓库名称:git-demo, 得到仓库地点 https://gitee.com/teduwang/git-demo.git

6.4 远程仓库操作

下令作用git remote -v查看当前所有远程地点的别名git remote add 别名 远程仓库地点起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地点将远程仓库的内容克隆到本地git pull 远程库地点别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 6.4.1 创建远程仓库别名



  • 根本语法
    git remote -v //查看当前所有远程地点别名
    git remote add 别名 远程地点
  • 案例操作

6.4.2 推送本地分支到远程仓库



  • 根本语法
    git push 别名 分支
  • 案例操作
    第1步:推送本地master分支到远程仓库

    第2步:到远程仓库确认

6.4.3 拉取远程库内容



  • 根本语法
    git pull 远程库地点别名 远程分支名
  • 案例操作

6.4.4 克隆远程仓库到本地



  • 根本语法
    git clone 远程地点
  • 案例操作

  • 小结
    clone 会 拉取代码 并 初始化本地仓库。
6.4.5 邀请加入团队



  • 选择邀请合作者

  • 复制地点并通过微信等方式发给该用户

  • 在 猪八戒 这个账号中的地点栏复制收到邀请的链接 ,点击接受邀请

  • 在成功之后可以在 猪八戒 这个账号上看到 git-demo 的远程仓库。

  • 孙悟空 可以修改内容并 push 到远程仓库。
  • 回到 猪八戒 的 远程仓库中可以看到,仓库内容也是更新的,反之也一样

7 IDEA集成Git

7.1 IDEA中定位Git步调

打开 IDEA ,File - Settings - Version Control - Git 进行设置

7.2 初始化本地库

等价下令:git init
选择要创建 Git 本地仓库的工程,好比创建工程:_01gitIdea

7.3 选中工程目录


7.4 添加到暂存区

右键点击项目选择 Git -> Add 将项目添加到暂存区。

7.5 提交到本地库



  • 选择 Commit Directory…

  • 输入提交信息,点击 commit

7.6 切换版本

在 IDEA 的左下角,点击 Git,然后点击 Log 查看版本
右键选择要切换的版本,然后在菜单里点击 Checkout Version 版本号。

7.7 创建分支



  • 第1步:右键选择 Git,点击 Branches 按钮。
  • 第2步:在弹出的 Git Branches 框里,点击 New Branch 按钮。
    填写分支名称,创建 hot-fix 分支。
  • 第3步:然后再 IDEA 的右下角看到 hot-fix,阐明分支创建成功,并且当前已经切换成 hot-fix 分支

7.8 切换分支

在 IDEA 的左下角,点击 Git,然后点击 Log 查看分支
右键选择要切换的分支,然后在菜单里点击 Checkout。

7.9 合并分支

将 hot-fix 分支合并到当前 master 分支。
不管是否有合并冲突,分支合并成功以后,代码自动提交,无需手动提交本地库。

8 IDEA集成Gitee

8.1 push 推送本地库到远程库



  • 第1步:创建远程仓库,好比叫做:gitIdea
  • 第2步:推送到远程仓库
01图

02图

03图

04:远程仓库确认


  • 第3步:当修改本地代码后,提交到远程仓库
01图

02图

留意:push 是将本地库代码推送到远程库,假如本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!因此一个成熟的步调员在动手改本地代码之前,一定会先查抄下远程库跟本地代码的区别!假如本地的代码版本已经落后,牢记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!
8.2 pull 拉取远程库到本地库



  • 第1步:修改远程仓库的代码
  • 第2步:右键点击项目,可以将远程仓库的内容 pull 到本地仓库。

    留意:pull 是拉取远端仓库代码到本地,假如远程库代码和本地库代码不一致,会自动合并,假如自动合并失败,还会涉及得手动解决冲突的题目。
8.3 clone 克隆远程库到本地

可以将远程仓库中的项目克隆 clone 到本地磁盘。
01图

02图

9 工作中正确利用git


  • 写代码之前先把项目从远程仓库pull下来, 先把master主分支上的代码与远程仓库同步到最新版本;
  • 在本地创建并切换到工作分支,创建完成后会自动切换到该分支,此时master/work分支内容是雷同;
  • 编写代码;
  • 编码完成后,add commit到work分支;
  • 将主分支从远程仓库pull最新的版本下来;
  • 将工作分支合并到主分支,假如有合并冲突,则需要手动解决冲突;
  • 此时所有在work分支上做的修改就会合并到主分支上,最后就可以push到远程仓库上了。
10 学习过程中利用git

10.1 条件



  • 第1:注册 Gitee 账号;
  • 第2:家中电脑安装开发环境,安装并在IDEA中设置 Git;

  • 第3:创建一个远程空仓库【开源】,名字自定义。
10.2 学校和家共同利用

第1:第1天白天正常编写代码,正常完成作业;
第2:晚上放学回家之前,将项目上传 push 到本身仓库中;
第3:晚上到家后,想学习,首先将远程仓库中项目中拉取 pull 最新代码,然后再开始写代码;
第4:晚上睡觉前,将写完的代码上传 push 到远程仓库;
第5:第2天到学校,第一时间拉取 pull 远程仓库的代码到本地,然后开始上课编写代码;
第6:如此循环… …

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表