Git和GitHub、Gitee、GitLab

86 阅读3分钟

主要内容:

image.png

一、Git概述

官网:Git (git-scm.com)

概念:Git 是一个免费的、开源的分布式版本控制系统

1.版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统

版本控制可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换

  • 集中式版本控制(改的是同一份代码)

image.png

  • 分布式版本控制

image.png

2.工作机制

image.png

3.git和代码托管中心

  1. 局域网

    • GitLab
  2. 互联网

    • GitHub(外网)
    • Gitee码云(国内网站)

二、Git安装

三、Git常用命令

image.png

1.设置用户签名

2.初始化本地仓库

image.png

3.查看本地库状态

  1. 首次查看 image.png

  2. 添加文件后再次查看

image.png

4.添加暂存区

image.png

image.png

  • 删除的是暂存区的代码

5.提交本地库

image.png

  • 查看版本信息

image.png

6.修改文件

image.png

修改文件 -> 添加缓存区 -> 提交本地库

7.版本穿梭

  1. 查看版本信息

image.png

  1. 切换当前版本

image.png

四、Git分支操作

公司里服务器运行的模式

image.png

1.Git分支概述

概念:

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独副本。(分支底层是指针的的引用)

2.Git分支查看&创建&切换

  • 查看当前分支

image.png

  • 创建分支

image.png

  • 切换分支

image.png

3.Git合并分支(正常合并)

image.png

站在master分支上合并hot-fix分支

4.Git合并分支(冲突合并)

冲突产生的原因:

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。git无法替我们决定使用哪一个,必须人为决定新代码内容。

image.png

image.png

  1. 查看文件内容冲突部分,人为修改

image.png

  1. 添加暂存区

image.png

  1. 提交本地库

image.png

  • 修改冲突只改变了被合并的分支而不是合并过来的分支内容

五、Git团队协作机制

1.团队内协作

image.png

2.跨团队协作

image.png

六、GitHub操作

1.创建远程库&创建别名

image.png

image.png

2.推送本地库到远程库

image.png

3.拉取远程库到本地库

image.png

image.png

4.克隆远程库到本地库

image.png

clone会做如下操作:

  • 拉取代码
  • 初始化本地仓库
  • 创建别名(默认为origin)

image.png

5.团队内协作

  1. 克隆下来
  2. 修改代码
  3. 添加暂存区
  4. 提交本地库
  5. 推送远程库

image.png

image.png

邀请成员

image.png

image.png

image.png

再次推送代码,成功

image.png

6.跨团队协作

(1)外人修改

  1. 通过邀请链接找到要修改的项目

  2. 把代码叉过来 image.png

  3. 修改代码

  4. 提交给别人 image.png

image.png

image.png

(2)项目创建人审核代码

  1. 申请合并代码

image.png

  1. 确认合并代码

image.png

7.SSH免密登录

  1. 生成公钥

image.png

ssh-keygen -t rsa -C “<youremail@sample.com>“(邮箱填自己的邮箱)

image.png

image.png

image.png

  1. 配置公钥

image.png

image.png

image.png

image.png

七、国内代码托管中心-码云

1.创建远程库

image.png

2.导入GitHub项目

  1. 复制github的https链接

image.png

  1. 粘贴到gitee创建远程库的“导入已有仓库”

image.png