美文网首页
《工程_Git》之Git_1

《工程_Git》之Git_1

作者: tjhuey | 来源:发表于2018-08-02 13:30 被阅读221次

    前言:
    Git你了解多少?一探究竟!

    1.Git体系

    Git与SVN区别

    存储方式:

    GIT把内容按元数据方式存储类似k/v数据库,而SVN是按文件(新版svn已改成元数据存储)。

    使用方式:

    从本地把文件推送远程服务,SVN只需要commint 而GIT需要 add、commint、push 三个步骤SVN基本使用过程。

    1.SVN基本使用过程
    svn.png
    2.Git基本使用过程
    git_use.jpg
    管理方式:

    git 是一个分布式的版本管理系统,而要SVN是一个远程集中式的管理系统。

    集中式:
    svn_manage.png
    分布式:
    git_manage.png

    2.核心命令

    01本地初始化项目并关联远程仓库

    mkdir git_repeat 新建目录
    cd git_repeat 进入目录
    git init 初始化仓库
    touch README.md 新建文件
    vim README.md 编辑文件
    git add README.md 添加到缓冲区
    git commit -m "first commit" 提交到本地仓库
    git remote add origin https://gitee.com/tjhuey/git_repeat.git 关联远程仓库
    git push -u origin master 关联简化以后push 和 pull
    git remote  对应远程信息
    
    02.fork远程代码
    git clone  https://gitee.com/tjhuey/git_repeat.git gir_repeat2 克隆代码到本地
    
    03.版本回退与超前
     回退       git reset --hard 版本号
     超前  (回退后 当前版本之前的版本看不到了)
     记住版本号 或者   git reflog 查看历史操作 
    
    04.撤销文件修改
    未提交到本地仓库时   git checkout -- filename
    提交到本地仓库时  git reset HEAD(git rm --cached 文件名  )[根据提示]  退回到add后状态,(再git checkout -- filename 恢复原版本)  
    
    05 分支相关
    git checkout-b本地分支名x origin/远程分支名x 依赖远程分支创建本地分支 并切换到本地分支上去
    查看分支:git branch
    
    创建分支:git branch <name>
    
    切换分支:git checkout <name>
    
    创建+切换分支:git checkout -b <name>
    
    合并某分支到当前分支:git merge <name>
    
    删除分支:git branch -d <name>
    
    删除远程分支
    1.7版本前
    - git branch -r -d origin/branch-name
    - git push origin :branch-name
    
    1.7版本后
    $ git push origin --delete <branchName>
    
    06 日志log相关
    #查看当前分支下所有提交日志
    git log
    #查看当前分支下所有提交日志
    git log {branch}
    # 单行显示日志
    git log --oneline
    # 比较两个版本的区别
    git log master..experiment
    

    Git原理:

    1.Git是内容寻址文件系统,底层是C开发的,原理 简单的说 是 类似java中的 hashMap 即key-value 数据存储。每次提交都会产生一个 能定位某文件或目录的SHA-1值,是一个指针,在git中 文件可能是Blob类型或者Tree类型。我们提交的文件是Blob,目录是Tree。这就是检索时快速的原因。


    2.Git中分支创建也是依赖某次提交的SHA-1值,有了这个指针,内部的HEAD指针只要指向哪个SHA-1值 就是定位哪个分支,哪个文件的当时状态,故Git可以理解是指针指向的概念。


    3.每个文件的内容去哪了,SHA-1哈希算法正是根据内容计算的hash值。故你有了hash值,就能得到对应的内容。故你回退或前升到哪个时刻的内容都是ok的。


    4.在任何第三方UI软件中集成的Git都是基于Git命令,建议小伙伴们还是直接用命令。


    5.哪些不明白可以互相交流哦!


    git_top.png

    coding 时,做到了如何落实;
    writing时,做到了如何表达;
    sharing时,做到了如何传授;
    thinking时,做到了如何提升;

    [详细请参考官网:)
    [Git官网请参考:https://git-scm.com/book/zh/v2/]

    进度

    互联网工程之Git_1,yes
    其他,no

    相关文章

      网友评论

          本文标题:《工程_Git》之Git_1

          本文链接:https://www.haomeiwen.com/subject/atijvftx.html