摘要: 版本库间的交互是通过git push和/或git pull命令实现的,这是Git最主要的交互模式,但并不是全部。使用补丁文件是另外一种交互方式,适用于参与者众多的大型项目进行分布式开发。 创建补丁 Git提供了将提交批量转换为补丁文件的命令:git format patch。该命令后面的参数是一个版 阅读全文
posted @ 2018-02-06 23:29 uetucci 阅读(346) 评论(0) 推荐(0) 编辑
摘要: Git作为分布式版本库控制系统,每个人都是本地版本库的主人,可以在本地的版本库中随心所欲地创建分支和里程碑。当需要多人协作时,问题就出现了: 如何避免因为用户把所有的本地分支都推送到共享版本库,从而造成共享版本库上分支的混乱? 如何避免不同用户针对不同特性开发创建了相同名字的分支而造成分支名称的冲突 阅读全文
posted @ 2018-02-05 23:34 uetucci 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 代码管理之殇 分支是代码管理的利器。如果没有有效的分支管理,代码管理就适应不了复杂的开发过程和项目的需要。在实际的项目实践中,单一分支的单线开发模式还远远不够,因为: 成功的软件项目大多要经过多个开发周期,发布多个软件版本。每个已经发布的版本都可能发现bug,这就需要对历史版本进行更改。 有前瞻性的 阅读全文
posted @ 2018-02-01 22:43 uetucci 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 里程碑即Tag,是人为对提交进行的命名。这和Git的提交ID是否太长无关,使用任何数字版本号无论长短,都没有使用一个直观的表意的字符串来得方便。例如:用里程碑名称“v2.1”对应于软件的2.1发布版本就比使用提交ID要直观得多。 使用git describe命令显示里程碑和提交ID的组合来代表软件的 阅读全文
posted @ 2018-01-29 22:55 uetucci 阅读(544) 评论(0) 推荐(2) 编辑
摘要: 拉回操作中的合并 用户user1执行git pull操作解决非快进式推送问题似乎非常的简单,就好像直接把共享版本库中最新提交直接拉回到本地,然后就可以推送了,其他好像什么都没有发生一样。真的是这样么? 用户user1向共享版本库推送时,因为user2强制推送已经改变了共享版本库中的提交状态,导致us 阅读全文
posted @ 2018-01-24 23:03 uetucci 阅读(454) 评论(0) 推荐(0) 编辑
摘要: Git支持的协议 首先来看看数据交换需要使用的协议。 Git提供了丰富的协议支持,包括:SSH、GIT、HTTP、HTTPS、FTP、FTPS、RSYNC及前面已经看到的本地协议等。各种不同协议的URL写法如表15 1所示。 |协议名称|语法格式|说明| | | | | |SSH协议(1)|ssh: 阅读全文
posted @ 2018-01-22 22:32 uetucci 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 对象和引用哪里去了? 从GitHub上克隆一个示例版本库,这个版本库在“历史穿梭”一章就已经克隆过一次了,现在要重新克隆一份。为了和原来的克隆相区别,克隆到另外的目录。执行下面的命令。 进入克隆的版本库,使用git show ref命令看看所含的引用。 其中以refs/heads/开头的是分支;以r 阅读全文
posted @ 2018-01-18 23:12 uetucci 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 鸡蛋不装在一个篮子里 Git的版本库目录和工作区在一起,因此存在一损俱损的问题,即如果删除一个项目的工作区,同时也会把这个项目的版本库删除掉。一个项目仅在一个工作区中维护太危险了,如果有两个工作区就会好很多。 上图中一个项目使用了两个版本库进行维护,两个版本库之间通过拉回(PULL)和/或推送(PU 阅读全文
posted @ 2018-01-17 22:59 uetucci 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 悔棋 在日常的Git操作中,会经常出现这样的状况,输入git commit命令刚刚敲下回车键就后悔了:可能是提交说明中出现了错别字,或者有文件忘记提交,或者有的修改不应该提交,诸如此类。 Git提供了“悔棋”的操作,甚至因为“单步悔棋”是如此经常的发生,乃至于Git提供了一个简洁的操作——修补式提交 阅读全文
posted @ 2018-01-11 23:10 uetucci 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 图形工具:gitk gitk是最早实现的一个图形化的Git版本库浏览器软件,基于tcl/tk实现,因此gitk非常简洁,本身就是一个1万多行的tcl脚本写成的。gitk的代码已经和Git的代码放在同一个版本库中,gitk随Git一同发布,不用特别的安装即可运行。gitk可以显示提交的分支图,可以显示 阅读全文
posted @ 2018-01-10 00:20 uetucci 阅读(255) 评论(0) 推荐(0) 编辑