Git学习

1.版本控制

1.1版本控制介绍

  • 协同修改
  • 数据备份
  • 版本控制
  • 权限控制
  • 历史记录
  • 分支管理

1.2版本控制工具介绍

集中式的版本控制工具:

​ CVS、SVN、VSS…

分布式版本控制工具:

​ Git、Merxurial…

2.Git简介

2.1Git的优势

  • 大部分操作在本地完成,不需要联网
  • 完整性保证
  • 尽可能添加数据而不是修改或删除数据
  • 分支操作非常快捷流畅
  • 与Linux命令全面兼容

2.2Git架构

在这里插入图片描述

2.3Git和代码托管中心

代码托管中心的任务:维护远程库

  • 局域网环境下
    • GitLab服务器
  • 外网环境下
    • GitHub
    • 码云

3.Git命令行操作

常用指令

  • git init:初始化仓库
  • git status:查看工作区和暂存区状态
  • git add [filename] :将文件从本地工作区添加到暂存区
  • git commit -m “comment” [filename]
  • git config user.name name && git config user.eamil email : 设置仓库级别的签名
  • git config --global user.name name && git config --global user.eamil email : 设置用户级别的签名
  • git log、git log --pretty=oneline、git log --oneline:打印日志
  • git reset – hard [索引号] :版本的回退以及前进,其中索引号从日志中获取
  • git remote -v:
  • git remote add [远程地址别名] [远程地址]:给远程地址起别名
  • git push [远程地址] [分支]:将本地代码库提交到远程库
  • git fetch [远程地址] [分支]:
  • git merge [远程地址/分支]:
  • git pull [远程地址/分支]:将远程库拉取到本地库,以上两个操作可以合并为这一个
  • git clone [远程地址]:将代码复制到本地,并初始化仓库
  • fork和pull request以及merge是在github界面上进行的操作,设计团队间协作,在不同的远程库进行合并的过程。
  • git diff
  • git rm --cached [filename]:删除暂存区中的文件
  • git rm [filename]:删除工作区和暂存区中的文件

git clone [远程地址]

  • 效果
    • 完整的把远程库下载到本地
    • 创建origin远程地址别名(给远程地址起别名的命令:git remote add origin(别名) www…(远程地址)
    • 初始化本地库

Git设置签名

  • 形式
    • 用户名:Tom
    • Email地址:goodmoring@atguigu.com
  • 作用:区分不同开发人员的身份
  • 辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
  • 命令:
    • 项目级别/仓库级别:仅在当前本地库范围内有效
      • git config user.name tom_pro
      • git config user.email goodMoring_pro@xiaomi.com
    • 系统用户级别:登录当前操作系统的用户范围内有效
      • git config user.name --global tom_pro
      • git config user.email --global goodMoring_pro@xiaomi.com

什么是分支?

在版本控制过程中,使用多条线同时推进多个任务。

分支的好处:

  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支重新删除即可。

分支的具体操作

  • 查看所有的git分支:git branch -v
  • 创建分支:git branch [要创建的分支名称]
  • 切换分支git checkout [要切换的分支名称]
  • 合并分支
    • 第一步:切换到接受修改的分支上 git checkout [被合并分支名]
    • 第二步:git merge[有新内容的分支名]
  • 解决冲突
    • 第一步:手动编辑文件,删除特殊符号,把文件修改到满意为止
    • 第二步:git add[文件名]
    • 第三步:git commit -m “日志信息”(不能带文件名)

拉取代码到本地库

pull = fetch + merge

  • git fetch [远程库地址别名] [远程库分支名]
  • git merge [远程库地址别名/远程库分支名]
  • 也可以git pull [远程库地址别名] [远程库分支名]

解决冲突

  • 要点
    • 如果不是基于Github远程库的最新版所做的修改,不能推送,必须先拉取
    • 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决急了

fork:涉及到两个远程库之间的操作(跨团队协作)

  • 首先登录自己的github账号
  • 然后到要参与协作的库的github网址,点击fork
  • 然后就看到在自己的远程代码托管中心即github上有了复制的代码
  • 接下来就可以执行git clone…将代码下载 到自己的本地库,修改后上传到自己的远程库
  • 在github进行操作:
    • fork的一方:pull request
    • 被fork的乙方:pull request + 代码审核 + merge

4.Git图形化界面操作

5.Gitlab服务器环境搭建

6.Git基本原理

6.1哈希

共同点

  • 不管输入数据 的数据量多大,输入同一个哈希算法,得到的加密结果长度固定
  • 哈希算法确定,输入数据确定,输出数据能够保证不变
  • 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化非常大
  • 哈希算法不可逆

Git底层采用的是SHA-1算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值