Github&git

版本控制工具具备的功能
1、协同修改
多人并行不悖的修改服务器的同一个文件
2、数据备份
不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态
3、版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间。提高运行效率,这方面svn采用的是增量式管理的方式,而git采用了文件系统快照的方式。
4、权限控制
对团队中参与开发的人员进行权限控制。
对团队外开发者贡献的代码进行审核–git独有。
5、历史记录
查看修改人、修改时间、修改内容、日志信息
将本地文件恢复到某一历史状态。
6、分制管理
允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。
Git的优势
大部分操作在本地完成,不需要联网
完整性保证
尽可能添加数据而不是删除或者修改数据
分值操作非常快捷流畅
与linux命令全面兼容
git在本地的结构
本地库(历史版本)
/
|
git commit
/
|
暂存取(临时存储)
/
|
git add
/
|
工作区(写代码)
git和代码托管中心
代码托管中新(维护远程库)
在局域网环境下
gitlab服务器
在外网环境下
github
码云
本地库(团队内部)
远程库(跨团队协作)

本地库初始化
命令 git init 会生成 .git文件夹
在这里插入图片描述注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。
设置签名

  • 形式
    用户名:tom
    email地址:11111@qq.cpm

  • 作用:区分不同开发人员的身份

  • 辨析:这里设置的签名和登陆远程库(代码托管中心)的账号、密码没有任何关系

  • 命令

  • 项目级别/仓库级别:仅在当前本地库范围有效

    • git config user.name tom_pro
    • git config user.email 11111_pro@qq.com
    • 信息保存位置 .git/config下
      在这里插入图片描述
  • 系统用户级别:登陆当前操作系统的用户范围
    - git config –global user.name tom_glb
    - git config –global 11111_glb@qq.com
    - 保存路径 ~/.gitconfig
    在这里插入图片描述

  • 优先级:
    - 就近原则:项目级别优先于系统用户级别,二者都有时采取项目级别的签名
    - 如果只有系统用户级别的签名,就以系统用户级别的签名为准
    - 二者都没有不允许

  • 基本操作

    • 状态查看操作

      • git status
        -
    • 添加操作

      • git add filename
        -
    • 提交操作

      • git commit -m “commit message” filename
        -
    • 查看历史操作记录

      • git log
        在这里插入图片描述
      • git reflog 查看所有历史版本带有索引值
        在这里插入图片描述
    • 基于索引值操作

      • git reset --hard 索引值
        在这里插入图片描述
      • 使用^后退只能后退
        - git reset --hard HEAD(一个标识后退一步n个表示后退n步)
      • 使用~符号:只能后退
        - git reset --hard HEAD~ n(表示后退n步)
    • reset 命令的三个参数对比

      • –hard 在本地库移动HEAD指针,重置暂存区,重置工作区
      • –soft 仅仅在本地库移动HEAD指针
      • –mixed 在本地库移动HEAD指针,重置暂存区
  • 永久删除后找回文件

    • 删除文件 rm 文件名
      在这里插入图片描述

    • 使用 历史记录恢复 git reset --hard 索引值
      在这里插入图片描述

  • 比较文件

    • git diff 文件名 若没指定文件名则把所有改过未提交的文件比较,已提交的文件不比较
      在这里插入图片描述
    • git diff 历史版本 文件名 历史版本的文件与这个文件相比较
      在这里插入图片描述
  • 分支管理

    • 同时并行推进多个功能开发,提高开发效率
    • 各个分支在开发过程中如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可
    • 查看分支 git branch -v
    • 创建分支 git branch 分支名
      在这里插入图片描述
    • 切换分支 git checkout 分支名
      在这里插入图片描述
    • 合并分支
      • 第一步:切换到接收修改的分支(被合并,增加新内容)上 git checkout 被合并分支名
      • 第二步:执行merge 命令 git merge 需要合并的分支名
        在这里插入图片描述
  • 解决冲突(当两个分支都对同一个文件进行修改合并时就会产生冲突)

    • 编辑文件删除特殊符号
    • 把文件修改到满意成功度保存退出
    • git add 文件名
    • git commit -m “日志信息” (注意不可以加具体文件名)
      git 基本原理
    • 哈希
      哈希是一个系列的加密算法,各个不同的哈希爽啊虽然加密强度不同,但是有一下几个共同点
      - 不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
      - 哈希算法确定,输入数据确定,输入数据能够保证不变
      - 哈希算法确定输入数据有变化,输出数据一定有变化,而且通常变化很大
      - 哈希算法不可逆
      git底层采用的是SHA-1算法
      git&github
      将github远程仓库地址保存到git中
      git remote add 地址名 github远程仓库地址
      在这里插入图片描述
      git 推送到github远程仓库

错误修改git config --global http.sslVerify “false”
-在进行push时出现错误
在这里插入图片描述git push github地址别名 推送的分支名

在这里插入图片描述克隆
git clone github远程仓库地址
会把仓库里的内容全部clone下来
在这里插入图片描述

  • 拉取
    • pull=fetch+merge
    • git fetch 远程库地址别名 远程分支名
    • git merge 远程库地址别名/远程分支名
    • git pull 远程库地址名 远程分支名
  • 解决冲突
    • 如果不是基于github远程库的最新版所做的修改,不能推送,必须先拉取
    • 拉取下来之后如果进入冲突状态,则按照“分支冲突解决”操作解决即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值