Git实战

Git使用 分布式工作流程 集中式工作流——————–单点协作 两个开发者从中心仓库克隆代码下来,同时作了一些修改,只有第一个开发者可以顺利地把数据推送回共享服务器。第二个开发者在推送修改之前,必须先将第一个人的工作合并进来,这样才不会覆盖第一个人的修改 集成管理工作流 项目维护者推送到主仓库。 贡献者克隆此仓库,做出修改。 贡献者将数据推送到自己的公开仓库。 贡献者给维护者发送邮件,请求拉取自己的更新。 维护者在自己本地的仓库中,将贡献者的仓库加为远程仓库并合并修改。 维护者将合并后的修改推送到主仓库。 司令官与副官工作流——-大型软件:Linux 普通开发者在自己的特性分支上工作,并根据 master 分支进行变基。 这里是司令官的master分支。 副官将普通开发者的特性分支合并到自己的 master 分支中。 司令官将所有副官的 master 分支并入自己的 master 分支中。 司令官将集成后的 master 分支推送到参考仓库中,以便所有其他开发者以此为基础进行变基。 向项目贡献 影响因素 : 活跃贡献者的数量,项目的工作流程,提交权限 提交准则 git diff --check,它将会找到可能的空白错误并将它们为你列出来 空白错误是指行尾的空格、Tab 制表符,和行首空格后跟 Tab 制表符的行为 每一个提交成为一个逻辑上的独立变更集 不要一次提交解决好多问题 每个提交写清楚,让你的同事工作容易些 有一个优秀的提交信息 私有小团队 私有 : 只有这几个开发者有仓库的推送权限 主采用SVN 区别:合并发生在客户端这边而不是在提交时发生在服务器那边 工作流程: 你通常在一个特性分支工作一会儿,当它准备好整合时合并回你的 master 分支。 当想要共享工作时,将其合并回你自己的 master 分支,如果有他人改动的话然后抓取并合并 origin/master,最终推送到服务器上的 master 分支 私有管理团队 公司使用了一种整合-管理者工作流程,独立小组的工作只能被特定的工程师整合,主仓库的 master 分支只能被那些工程师更新 所有的工作都是在基于团队的分支上完成的并且稍后会被整合者拉到一起 新建一个分支,与他人一起工作,可以加-u 也要注意 -u 标记;这是 --set-upstream 的简写,该标记会为之后轻松地推送与拉取配置分支...

Git基本

git基本操作 由于学习更偏重点性记录或自己使用角度,深入度可能不足,详细见https://gitee.com/progit/index.html 安装及配置 :Git · Pro Git 第二版 简体中文 起步 版本控制 : 记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 本地版本控制 eg : RCS工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。 集中版本控制 : 不同系统上的开发者协同工作 有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新 优点 : 每个人都可以在一定程度上看到项目中的其他人正在做些什么。 而管理员也可以轻松掌控每个开发者的权限 缺点 : 中央服务器的单点故障,只有单独快照 分布式版本控制 客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来 git基础 Git 是把数据看作是对小型文件系统的一组快照。 每次提交更新,或在 Git 中保存项目状态时,主要对当时的全部文件制作一个快照并保存这个快照的索引。 如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息 Git 中所有数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容 计算校验和的机制叫做 SHA-1 散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git 中文件的内容或目录结构计算出来 实际上,Git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名 执行的 Git 操作,几乎只往 Git 数据库中增加数据 三种状态 已提交表示数据已经安全的保存在本地数据库中 已修改表示修改了文件,但还没保存到数据库中 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中 由此 三个工作区 Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方(github) 工作目录是对项目的某个版本独立提取出来的内容(本地仓库) 暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。称作索引 基本Git工作流程 在工作目录中修改文件 暂存文件,将文件的快照放入暂存区域 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录 Git基础 获取Git仓库...