设为首页 收藏本站
查看: 785|回复: 0

[经验分享] git glossary(词汇表)

[复制链接]

尚未签到

发表于 2018-9-19 06:17:28 | 显示全部楼层 |阅读模式
  git 词汇表(git glossary)
  http://www.kernel.org/pub/software/scm/git/docs/gitglossary.html
  alternate object database
  通过alternate机制,一个仓库能从另一个对象数据库继承部分对象数据库,此种机制称为alternate。
  bare repository
  bare repository是一个以.git为后缀的目录,它没有检出任何版本控制的文件。所有在正常的.git目录中出现的git管理和控制文件都将出现在这个目录下。通常公共仓库的发布都是做一个bare repository来访问。
  blob object
  没有类型的对象。例如:文件内容
  branch
  一个branch是一个开发线。Branch上的最新提交被称为tip of that branch。tip of that branch又被head所引用。单个仓库能跟踪任意个分支,但是你的工作树只与一个分支相关,HEAD指向那个分支。
  cache
  由index关键字替代
  chain
  对象列表,各个对象包含它的继承者。例如:一个commit的继承可以是它的父提交中的一个。
  Changeset
  因为git不存储变更,只存储状态,所以对git来说,没有意义。
  Checkout
  以对象数据库中的树对象或者blob对象更新工作树,可以更新全部也可以更新部分。如果整个工作树指向一个新分支,则更新索引和HEAD。
  cherry-picking
  用scm的行话,cherry pick意味着从变更序列中选出一个变更子集,然后将这个变更子集组成一个新的变更序列。在git中,这个任务由git cherry-pick命令来完成,它从已经存在的commit中抽取变更,然后基于当前分支应用变更序列。
  clean
  工作树是干净的,如果它与当前head版本是一致的。否则为dirty
  commit
  作为名词:git历史中的一个节点。项目的整个历史就是由这些节点组成的。Commit相当于其它版本控制系统的revision或者version。
  作为动词:存储项目状态的镜像到git历史中,它创建index中的当前状态为一个commit,然后使HEAD前移到新的commit上。
  commit object
  一个包含特定版本信息的对象,可能的对象是parents,committer,author,date,tree object,它对应存储版本的最顶级目录。
  core git
  git的基础数据结构和实用工具,只包含有限的源代码管理工具。
  DAG
  Directed acyclic graph.非周期图表,提交对象组成了一个非周期图表,因为它们有父对象。起始和末尾不是同一对象。
  dangling object
  一个unreachable对象就是即使从其它unreachable对象也不可达的对象;一个dangling对象在本仓库中没有引用或对象来引用它。
  detached HEAD
  正常情况下HEAD存储分支名字,可是,git允许你检出任意commit,即使此commit不是特定分支的tip。这样,HEAD就是detached。
  dircache
  查看index
  dirty
  如果工作树包含修改,但是还没有提交到当前分支,则称为dirty
  ent
  一些爱好者将tree-ish叫做ent
  evil merge
  是这样的一个merge,它引入那些没有出现在parent中的变更。
  fast-forward
  fast-forward是一种特殊的merge类型,你有一个版本,而你要merge的源分支正好是此版本的后代。这样的情况下,你不必做一个新的merge commit,而是直接更新到此分支的版本。这个操作在remote-track barnch中使用很频繁。
  fetch
  fetch一个分支意味着从远程仓库获得此分支的head引用,以便找出本地对象数据库缺少哪些对象并且获得它们。
  file system
  linus torvalds设计git成为一个用户空间文件系统。例如:保留文件和目录架构。保证git的效率和速度。
  git archive
  仓库repository的同义词
  grafts
  grafts通过为commits记录假的祖先信息使两个不同开发线组合在一起。你可以通过这种方式使git为提交假装了一些父对象,这与正常提交创建的是有不同的。通过.git/info/grafts文件来配置。
  hash
  在git上下文中,与object name同义
  head
  tip of a branch的命名引用。存储在/GIT_DIR/refs/heads/下,除非使用打包引用(查看git pack-refs)
  HEAD
  当前分支。当前工作树从HEAD派生。如果没有使用detached HEAD,HEAD就是你的仓库中的heads中的一个的引用。
  head ref
  head的同义
  hook
  在正常执行git命令时,hook允许开发者增加功能或者进行检验。Hook是可选的,hook存储在$GIT_DIR/hooks下,只需要将.sample后缀去除即可使其生效。
  index
  带有状态信息文件的集合。Index是工作树的一个存储版本。
  index entry
  存储在index中的条目
  master
  缺省开发分支
  merge
  作为动词:将其它分支内容引入到当前分支。Fetch和merge的联合操作称为pull.
  作为名词:除非是fast-forward,否则将会产生一个新的提交。此提交称为merge commit
  object
  在git中的存储单元。它由SHA1来唯一标识。对象不能改变。
  object database
  存储一系列对象。所有对象存于$GIT_DIR/objects/下。

  Object>  与object name同义
  object name
  对象唯一标识符。
  object type
  commit,tree,tag,blob中的一种
  octopus
  merge多于两个的分支。
  origin
  缺省上游仓库。大多数项目有至少一个上游仓库。
  pack
  压缩到一个文件的一系列对象(节省空间和传输快)
  pack index
  pack中的标识序列和其它信息以帮助访问pack内容
  pathspec
  路径模式
  pathspec用于命令行,如”git ls-files” “gitls-tree” “git grep“ ”git checkout“。许多其它命令限制操作范围到树或工作树的子集。
  parent
  提交对象的前继对象。
  pickaxe
  packaxediff的一个选项,它帮助选择增加或删除哪些变更集,使用—pickaxe-all选项,可以查看引入或删除的整个变更集。
  plumbing
  core git的可爱的名字
  porcelain
  依赖于core git的程序或程序套件,对core git的更高级访问;pocelain比plumbing暴露更多的源代码控制管理接口。
  pull
  fetch + merge
  push
  push分支意味着从远程仓库获取分支head,确认它是否本地分支的直接祖先,如果是,则把本地分支head能够获取的而远程仓库没有的对象放入远程仓库并且更新远程head。如果远程head不是当前分支的祖先,则push失败。
  reachable
  一个提交的所有祖先称为这个提交可以”reachable”的。
  rebase
  从一个branch重放变更到另一个分支,重置另一个分支的head
  ref
  意指一个特定对象。存放在$GIT_DIR/refs/下
  reflog
  显示ref的本地历史。换句话说,它能告诉你此仓库中第三个最新的版本的是什么,此仓库中昨天9:14的当前状态是什么。详情见git-reflog
  refspec
  refspec被用于fetch\push以映射远程ref和本地ref。它们由:组成,前面有一个可选的+。例如:git fetch $URL refs/heads/master:refs/heads/origin意味着从$URL抓取master分支head,然后存取到origin分支。
  remote-tracking branch
  一个用于追踪其它仓库变更的git分支。它不包含直接的修改,也不能向它提交。远程跟踪分支通常用于pull的右边引用。
  repository
  包含对象数据库及refs。
  resolve
  修复失败的merge操作后,对其进行的确认操作。
  revision
  文件或目录的一定特定状态。它由commit对象引用。
  rewind
  扔掉部分开发,例如:将head赋值到一个早期版本。
  SCM
  代码控制管理
  SHA1
  与object name同义
  shallow repository
  git clone –depth创建shallow仓库,它只包含部分历史,这样可以快速查看最近历史。如果要查看更深历史,可以使用git fetch获得。
  synref
  符号引用:与其使用SHA1id,不如使用refs/some/thing来代替。
  tag
  对tag或commit对象的引用。与head的实质是一样的,只是存储在$GIT_DIR/refs/tags下。
  tag object
  包含指向另一对象引用的对象,它能包含一些信息,也能包含PGP签名。
  topic branch
  概念开发线,我们定义一个topic branch来开发定义的概念或一些小的变更。
  tree
  不是一个工作树,就是一个树对象
  tree object
  包含blob或tree对象的对象
  tree-ish
  指向提交、tree、tag对象、提交、树对象的引用
  unmerged index
  包含未合并index条目的index
  unreachable object
  不能由branch\tag\其它引用引用的对象
  upstream branch
  合并分支时的缺省分支。上游分支。
  working tree
  实际检出文件的树。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-593704-1-1.html 上篇帖子: Windows XP 下如何使用Qt Creator中的Git版本控制功能 下篇帖子: 使用git reset之后,如何恢复删除掉的commit
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表