`
seavers
  • 浏览: 170822 次
  • 来自: ...
社区版块
存档分类
最新评论

git的本质

    博客分类:
  • git
git 
阅读更多
git 的本质

配置:
git的配置操作,本质上,都是在修改config文件 (.git/config)
* git config -l

其中
remote.origin.fetch 与 remote.origin.url 即是 remote 的配置

    * git remote -v 就是显示配置, git remote -v show <name> 细节
    * git remote add|rm|set-url|rename 即是增删改操作
    * git prune 是与服务器同步的功能


其中
branch.master.remote 与  branch.master.merge 即是 branch的配置

    * git branch -v 就是显示配置
    * git branch <branchName>|-m|-d 就是增删改的操作
    * git branch --set-upstream 设置分支对应的 remote




分支名:
git 命令,使用分支时,需要一个名字, 如origin/master, refs/remotes/origin/HEAD等
其实,可以参考 .git/refs目录, 就明白了

    * heads 代表本地分支
    * remotes 代表远程分支
    * tag 代表tags分支
    * master 与 HEAD 同义

当我们需要使用分支时,语法大致是这样的  (refs/)? (heads/|remotes/|tags/)? <name>
即,refs 或者 heads 等, 都是可以省略的, git 会遍历查询
假如有冲突时, git报错 warngin: refname '...' is ambiguous , 但还会执行第一个

当然还有更精确及表示更多标识的方式, 即 commitId
而 tag 只是将 commitId 取了一个容易记忆的名字
而 分支,远程分支,可以理解为是一个 commitId 的有序列表(可变数组)




分支操作:
假如将远程仓库也看成是一个个本地分支的话, 就会明白了
[list]
* git pull 就是  git merge origin/master
* git reset <commit> 就是 还原至某分支的状态    (会根据参数,还原 文件,index, commit)
* git rebase 可以看作是另一种merge操作, 算法不同



操作index
* git add    追加 index
* git rm     删除文件,以追加index
* git mv     移动文件,并追加index
* git reset  清除uncommit的index


clone
* 这个大家都知道了,就是一系列git操作的组合


checkout
* 就是在操作HEAD的位置


git
* git的所有操作,如果理解清每个命令, 是如何操作 file, index, commit, branch 的,就都理解了









分享到:
评论

相关推荐

    2018尚硅谷Git和GitHub视频教程

    29.Git分支管理的本质是创建和移动指针 30.GitHub账号注册 31.修改GitHub账号头像 32.本地库和远程库交互方式回顾 33.为了测试远程交互初始化新的本地库 34.创建远程库 35.在本地创建远程库地址别名 36.推送操作 37....

    Git.docx

    这种方式在分支方面会带来很大的好处,Git的分支,其实本质上仅仅是指向提交对象的可变指针。 3. Git对数据的引用 Git中所有数据,包括提交,目录,文件等,在存储前都计算校验和,然后以校验和来引用,这个校验和...

    git原理详解及实用指南(好书).rar

    1.git基本用法 2.git高级用法 3.git概念和本质 4.git中常见问题的处理方式 5.git中的高级需求解决方案

    Git 各指令的本质解析.doc

    Git 各指令的本质解析.doc

    git,gitlab,idea插件教程

    git的常见命令,冲突怎么解决,IDEA git插件怎么使用,gitlab的使用

    git-meld:包装 git 和 meld 以比较 git 树

    它本质上是一个扩展的 git-difftool,用于支持比较目录的工具,而不是让 git 为每个已更改的文件调用外部工具 例子 显示暂存区和您的工作目录之间的差异: $ git 融合 显示 HEAD 和暂存区之间的差异(即如果您现在...

    git原理详解及实用指南-每章独立.rar

    而这本小册,就是从概念的角度出发,帮你先从本质上了解 Git 的工作模型,在此基础上去了解它的具体用法,以此来达到四两拨千斤的学习效果。而且这样的学习具有更高的持久性,在看完这本小册之后,你以后也很难再...

    git-date-extractor:CLI和JS工具,用于基于Git历史记录提取文件时间戳

    本质上,这是一种运行命令并基于git历史记录获取已created和已modified时间戳记列表的方法,而不管文件是在计算机上实际创建的。 它既可以作为CLI工具运行,也可以通过JS运行,并返回一个易于解析的JSON对象,以...

    02尚硅谷_Git.docx

    ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千斤 2.课程内容推陈出新: ·基于JDK 11,将Java8、Java9、Java10、Java11新特性一网打尽 ·课程中,Eclipse...

    深入理解学习Git工作流(git-workflow-tutorial)

    工作流其实不是一个初级主题,背后的本质问题其实是有效的项目流程管理和高效的开发协同约定,不仅是Git或SVN等VCS或SCM工具的使用。这篇指南以大家在SVN中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进...

    通俗易懂的前端Git教程(含资料)

    Git是目前业界非常流行的版本控制系统,而GitHub是开源代码托管...本套视频是Git的中级视频, 涉及Git底层存储原理,对Git对象、树对象、提交对象、分支本质、回退原理、本地分支、跟踪分支、远程分支等都做了详细讲解。

    git原理详解及实用指南,分为18章md和pdf版本都有

    git操作 什么是版本控制系统(VCS) 1什么是分布式版本控制系统(DVCS) 1:新公司用 Git 管理代码,怎么快速上手? 2:团队工作的基本工作模型 1:HEAD、master 与 branch 2:push 的本质 3:merge:合并 ...

    Git教程 包含:快速入门、基础使用、进阶使用、服务器集成、一些常见的问题

    3.从上面的描述上看,就会显得非常繁琐,而且本质上并没有太重要的内容,仅仅是因为环境上的变化,就需要重新修改,所以如果将本地测试环境和服务器测试环境区分开,分别进行文件版本维护,是不是就会显得更合理一些...

    git-flight-rules:git的飞行规则

    本质上,它们是非常详细的,特定于场景的标准操作程序。 [...] 自1960年代初以来,NASA一直在捕获我们的失误,灾难和解决方案,当时水星时代的地面团队首次开始将“经验教训”收集到一个纲要中,该纲要现在列出了...

    Git分支管理实践

    在谈Git之前,先谈一下Linux。Linux和Windows作为两个广泛使用的操作系统,有着极大的差异,在各种广泛的评价和争执中,我对下面的评价十分赞同:Linux与Windows最本质的区别在哪里。有人会说前者免费,后者需要买(或偷)...

    git 入门教程之本地仓库和远程仓库的本质介绍

    本地仓库和远程仓库在本质上没有太大区别,只不过一个是本地电脑,一个是远程电脑.这篇文章主要介绍了git 入门教程之本地和远程仓库的本质介绍,需要的朋友可以参考下

    Git和GitHub:从入门到实践,第1部分Git和GitHub基础简介

    本文来自ibm,文章从概念的角度介绍版本控制系统、Git和GitHub,并着重通过一些实验来演示Git的基础特性。Git是目前业界最流行的版本控制系统...二者虽然联系甚紧,但从本质上是两个不同的概念。Git是一个开源的分布式

    Git-Sample:实现用于管理源代码和其他文件的分布式修订控制系统-Sample system source code

    在本质上,beargit本质上是git的简单版本。 它维护着一个.beargit /子目录,其中包含有关您的存储库的信息。 对于用户进行的每次提交,都会在.beargit /目录中创建一个目录(.beargit /,其中是提交的ID)。 ....

    Git的基本操作、开发流程、实用技巧总结

    Git仓库主要是由是三部分组成:本地代码,缓存区,提交历史,这几乎是所有操作的本质,但是为了文章更加简单易懂,就不围绕这块展开了,有兴趣的可以去了解下。开门见山,我们直接来说说Git有哪些常见的操作。我们...

    Git实践操作技术详解

    Git与其他VCS有什么本质不同?可能最明显的区别是Git是分布式的(这和SVN或TFS不同)。这意味着,你将拥有一个本地存储库,该存储库位于名为.git的特殊文件夹中,通常(也不一定)会有一个远程中央存储库,不同的...

Global site tag (gtag.js) - Google Analytics