全网最详细团队多人开发《Git与GitHub底子》,学习Git有这一篇就够了!_git ...

打印 上一主题 下一主题

主题 937|帖子 937|积分 2811

3.3 Git优势


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


3.5 Git和代码托管中心



  • 局域网

    • GitLab服务器

  • 外网情况下

    • Github
    • Gitee(码云)

3.6 Git安装

3.7 本地库和长途库



  • 团队内部协作



  • 跨团队协作

4、Git命令行利用

4.1 本地库初始化



  • 命令:git add

    • 结果:

  • 命令:git init

    • 结果:



注意:.git目次中存放的是本地库的相关的子目次和文件,不要删除,也不要随意修改


  • ll 加载当前目次下的资源
  • ls -lA 加载当前目次下的资源包含隐藏资源
  • ls-l|less| 分屏查看
  • pwd 用于显示工作目次
  • cd ~ 进入家目次
  • 假如显示: 说明内容一页放不完,按空格进入下一页
  • reset 加回车键 清空屏幕
vim编辑器


  • :wq 生存退出
  • esc 退出编辑模式
  • set nu 显示行号
  • cat .git/config 查看信息内容
4.2 设置署名



  • 情势
用户名:tom
Email地点:goodMorning@atguigu.com


  • 作用:区分不同开发人员的身份
  • 辨析:这里设置署名和登录长途库(代码托管中心)的账号、密码没有任何关系。
  • 命令:

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

      • git config user.name zhangmazi_pro
      • git config user.email 1016942589_pro@qq.com
      • 信息生存位置: .git/config 文件


    • 系统用户级别:登录当前利用系统的用户范围

      • git config –global user.name zhangmazi_glb
      • git config –global user.email 1016942589_glb@qq.com
        1. [/code]
        2. [/list] git config --global user.name zhangmazi_glb
        3. git config --global user.email 1016942589_glb@qq.com
        4. [code]- ![image-20210920103019444](https://img-blog.csdnimg.cn/img_convert/b0d896609cd19e4774af116c93faf622.png)
        复制代码

      • 级别优先级

        • 就近原则:项目级别优先于系统用户级别,二者都有时接纳项目级别的署名
        • 假如只有系统级别的署名,就以系统用户级别的署名为准
        • 两个都没有是不答应


    4.3 基本利用

    4.3.1状态查看利用—git status

    查看工作区、暂存区状态
    4.3.2 添加利用—git add [file name]

    将工作区新建/修改添加到暂存区
    4.3.3 提交利用—git commit -m “commit message” [file name]

    将暂存区的内容提交到本地库

    git add good.txt 将good.txt提交到暂存区,假如如今还没有提交但是对于暂存区得刚刚提交得文件不想提交了,可以使用git rm --cached good.txt从缓存区移除,假如想要继承提交到长途仓库就需要使用 git commit good.txt。但是会出现一个vim编辑器让你对提交得内容进行形貌处理。

    按下a键或e键进入编辑模式

    编辑完成之后,按下Esc键输入:wq回车就会退出vim编辑器

    用vim对good.txt进行编辑后再次查看git status 主动检测到我们文件进行了修改


    1. #使用特定得提交不再进入vim编辑器而是在提交得时候进行描述
    2. $ git commit -m "My second commit,modify good.txt" good.txt
    复制代码

    4.3.4 查看历史记录利用—git log

    1. git log                #查看的是本地库,详细显示
    复制代码
    **多屏显示控制方式:空格向下翻页、b向上翻页、q退出。**假如显示 : 则说明内容一页放不完,按空格进入下一页直到出现(END)才算是末了一页
    1. git log --pretty=oneline #每个记录一行显示
    复制代码

    1. git log --oneline        #哈希值缩短了
    复制代码

    1. git reflog        #在oneline版本上显示了移动到其他版本需要几步
    2. #HEAD@{移动到当前版本需要多少步}
    复制代码

    4.3.5 版本前进后退—git reset --hard [局部索引值]



    • 本质



    • 基于索引值利用【保举】
    1. git reset --hard [局部索引值]       
    2. git reset --hard 0e2298b        #后退
    3. git reset --hard 4dc987c        #前进
    复制代码



    • 使用^符号:只能后退

    1. git reset --hard HEAD^        #往后退一步
    2. #注:一个^表示后退一步,n个表示后退n步
    复制代码


    • 使用~符号:只能后退
    1. git reset --hard HEAD~N        #往后n步
    复制代码
    4.3.6 命令的三个参数对比



    • –soft 参数

      • 仅仅在本地库移动HEAD指针


    • –mixed 参数

      • 在本地库移动HEAD指针
      • 重置暂存区


    • –hard 参数

      • 在本地库移动HEAD指针
      • 重置暂存区
      • 重置工作区


    4.3.7 删除文件并找回—rm [文件名]

    条件:删除前,文件存在时的状态提交到本地库。
    利用:git reset --hard [指针位置]


    • 删除利用以及提交到本地库:指针位置指向历史记录
    • 删除利用尚未提交到本地库:指针位置使用HEAD



    • 永世删除文件后找回


    1. rm aaa.txtgit statusgit commit -m "new aaa.txt" aaa.txtrm aaa.txtgit add aaa.txtgit commit -m "delete aaa.txt" aaa.txtgit refloggit reset --hard 26b6196
    复制代码


    • 添加到暂存区的删除文件的找回

    4.3.8 比较文件的差别—git diff [文件名]

    1. git diff [文件名]                #将工作区中的文件和暂存区进行比较git diff [本地库中历史版本] [文件名] #将工作区中的文件和本地库历史记录进行比较#不带文件名比较多个文件
    复制代码

    4.4 分支管理

    4.4.1 什么是分支?

    在版本控制过程中,使用多条线同时保举多个任务。
    4.4.2 分支的好处?

    4.4.3 分支利用



    • 创建分支——git branch [分支名称]
    • 查看分支——git branch -v
    • 切换分支——git checkout [分支名称]
    • 合并分支——git merge [分支名称]

      • 第一步:切换到接收修改的分支(杯合并,增长新内容)上
      git checkout [分支名]
         

      • 第二步:实行merge命令
      git merge [有新内容分支名]

    • 解决冲突
    利用vim apple.txt将两个问及那的内容都设置为相同的内容就会发生冲突,则需要手动进行合并分支。
    出现这种情况就是由于两个文件的内容一样发生了冲突。



    • 冲突的表现



    • 冲突的解决

      • 第一步:编辑文件,删除特殊符号
      • 第二步:把文件修改到满意的水平,生存退出
      • 第三步:git add [文件名]
      • 第四步:git commit -m “日志信息”

        • 注意:此时commit肯定不能带具体的文件名



    5、Git基本原理

    5.1 哈希

    哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下
    几个共同点:
    ①不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
    ②哈希算法确定,输入数据确定,输出数据能够保证稳定
    ③哈希算法确定,输入数据有变化,输出数据。 定有变化,而且通常变化很大I
    ④哈希算法不可逆
    Git底层接纳的是SHA-1算法。
    哈希算法可以被用来验证文件。原理如下图所示:

    5.2 版本生存机制

    5.2.1 集中式版本控制工具的文件管理机制

    ​ 以文件变动列表的方式存储信息。这类系统将它们生存的信息看作是一-组基本文件和每个文件随时间渐渐累积的差别。

    5.2.2 Git的文件管理机制

    ​ Git把数据看作是小型文件系统的一组快照。每次提交更新时Git都会对当前的全部文件制作一个快照 并生存这个快照的索引。为了高效,假如文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以Git的工作方式可以称之为快照流。

    5.2.3 Git文件管理机制细节


    • Git的"提交对象"



    • 提交对象及其父对象形成的链条

    5.3 Git分支管理机制

    5.3.1 分支的创建


    5.3.2 分支的切换





    6、Gitee

    6.1 账号信息

    官方网址:https://gitee.com/
    6.1.1修改头像



    6.2 创建本地仓库


    其他的内容不需要填写

    创建完成后,复制网站的地点

    之后进入git Bash
    1. git remote -v        #查看别名git remote add origin https://gitee.com/z6135/test.git #将地址赋给origin
    复制代码

    6.3 推送—git push

    1. git push origin master
    复制代码

    这就推送成功了!

    6.4 克隆—git clone

    结果:

    • 完整的把长途库下载到本地

    • 创建origin长途地点别名

    • 初始化本地库
    6.5 约请别人加入团队







    推送上去不用登录是由于再电脑里面根据


    6.6 拉取



    • pull=fetch+merge
    • git fetch [长途库地点别名] [长途分支名]
    1. git fetch origin mastercat test.txt
    复制代码



    • git merge [长途库地点别名/长途分支名]

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

冬雨财经

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表