Git概念介绍

这篇文章是对Git概念的介绍/提醒。 它旨在促进来自Subversion(或其他)背景的人的学习曲线。 有关更多详细信息,没有什么比官方书更合适

概念

  • Git在包含文件本地数据库和相应文件修订版的存储库上运行。
  • 存储库包含可以具有3种状态的文件:
    • 提交 –文件存储在数据库中。
  • 文件也可以被Git视为未跟踪 。 它没有状态,直到将其添加到工作目录中为止。 add函数可用于暂存文件。
  • 在将Git存储库克隆或创建到本地目录时,该目录将包含:
    • 一个Git目录,其中包含本地数据库和与存储库相对应的所有元信息。
  • 通常,在工作目录中修改文件,然后从提交暂存,然后再提交到存储库数据库。 在提交文件时,可以跳过暂存步骤,将所有已修改的跟踪文件都考虑在内。
  • 通过在工作目录中进行标记,可以忽略存储库中的文件。 它们将不会存储在本地数据库中。
  • 可以从Git存储库中删除文件,或者在工作目录中移动它们。
  • 在本地克隆存储库时,其来源 (即原始存储库)在本地存储库中注册为远程存储库。 可以将更多远程存储库附加(添加)和分离(删除)到本地Git存储库。
  • 一个人可以从远程存储库(包括分支)中获取所有数据。 但是,此操作不会将其与本地工作合并。
  • 您还可以从远程存储库中提取所有数据,就像自动合​​并的提取一样。
  • 将您的存储库内容送到远程存储库就像拉一样,但是相反。 所有修改都在远程存储库上传输和合并。
  • 可以创建标签 (即特定版本的内容)。 最终,可以用标记器,电子邮件等为该标记添加注释 。也可以对标记进行签名 (以加密方式)。 签名标签可以验证
  • 一个人也可以创建分支 。 从技术上讲,这些是指向数据库存储库中特定版本的指针 。 默认分支称为Master
  • 为了记住您正在处理的分支,Git有一个称为HEAD的特定指针。
  • 可以使用Git checkout命令在分支之间来回切换。 这将相应地更新工作目录的内容。
  • 对不同分支中的文件所做的修改将分别记录。
  • 分支达到稳定水平后,可以将其合并回Master(或它来自的任何其他分支)。 然后,可以将其删除
  • 最终,可以在不合并修改内容的情况下关闭和删除分支。 此内容将永远丢失。
  • 分支可以独立发展。 如果是这样,合并操作将首先找到一个共同的祖先,并在Master(或任何其他目标分支)中创建一个新版本。 此版本将包含目标分支和合并分支的修改。
  • 也可以使用来自远程存储库的远程分支
  • 变基是关于将分支的内容合并回Master(例如)。 当只有一个分支时,它与简单的合并没有什么不同,除了日志历史记录将不再包含重新基础分支的条目(版本)。 当从Git存储库中的多个分支创建多个分支时,此功能最有用。 您可能希望合并一个分支,同时保留其他具有共同祖先的分支。
  • 重新定基时要小心,因为如果其他人在该分支机构(即公共分支机构)或任何子分支机构工作,则持续集成的连续性将对他们不利。
  • 快进是将分支指针向前移动的过程。 例如,从Master创建分支A。 在A上执行工作,然后合并回Master。 主指针可能会落后于不包含合并更改的早期版本。 可以将其快速转发到包含那些合并更改的版本。
  • 藏匿是一种将未完成的工作保存在一边而不提交的实践。 这样一来,您无需切换进行中的工作即可切换分支。
  • 子模块是将另一个Git项目导入到您的Git项目中的一种方法,但是要保证提交是分开的。 当其他项目要开发将在多个Git项目中使用的库时,这很有用。


参考: 技术说明博客上的JCG合作伙伴 Jerome Versrynge 对Git概念的介绍

翻译自: https://www.javacodegeeks.com/2012/11/introduction-to-git-concepts.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值