- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Git 项⽬的管理
既然是相互协作,在贡献代码的同时,也免不了要维护管理⾃⼰的项⽬。像是 么处
理别⼈⽤ format-patch ⽣成的补丁,或是集成远端仓库上某个分⽀上的变化等等。但
⽆论是管理代码仓库,还是帮忙审核收到的补丁,都需要同贡献者约定某种长期可持
续的⼯作⽅式。
使⽤特性分⽀进⾏⼯作
如果想要集成新的代码进来,最好局限在特性分⽀上做。临时的特性分⽀可以让你随
意尝试,进退⾃如。⽐如碰上⽆法正常⼯作的补丁,可以先搁在那边,直到有时间仔
细核查修复为⽌。创建的分⽀可以⽤相关的主题关键字命名,⽐如 ruby_client 或者其
它类似的描述性词语,以帮助将来回忆。Git 项⽬本⾝还时常把分⽀名称分置于不同
命名空间下,⽐如 sc/ruby_client 就说明这是 sc 这个⼈贡献的。 现在从当前主⼲分⽀
为基础,新建临时分⽀:
$ git branch sc/ruby_client master
另外,如果你希望⽴即转到分⽀上去⼯作,可以⽤ checkout -b :
$ git checkout -b sc/ruby_client master
好了,现在已经准备妥当,可以试着将别⼈贡献的代码合并进来了。之后评估⼀下有
没有问题,最后再决定是不是真的要并⼊主⼲。
采纳来⾃邮件的补丁
如果收到⼀个通过电邮发来的补丁,你应该先把它应⽤到特性分⽀上进⾏评估。有两
种应⽤补丁的⽅法:git apply 或者 git am 。
使⽤ apply 命令应⽤补丁
如果收到的补丁⽂件是⽤ git diff 或由其它 Unix 的 diff 命令⽣成,就该⽤ git apply 命
令来应⽤补丁。假设补丁⽂件存在 /tmp/patch-ruby-client .patch ,可以这样运⾏:
$ git apply /tmp/patch-ruby-client.patch
这会修改当前⼯作⽬录下的⽂件,效果基本与运⾏ patch -p 1 打补丁⼀样,但它更为严
格,且不会出现混乱。如果是 git diff 格式描述的补丁,此命令还会相应地添加,删
除,重命名⽂件。当然,普通的 patch 命令是不会这么做的。另外请注意,git apply
是⼀个事务性操作的命令,也就是说,要么所有补丁都打上去,要么全部放弃。所以
不会出现 patch 命令那样,⼀部分⽂件打上了补丁⽽另⼀部分却没有,这样⼀种不上
不下的修订状态。所以总的来说,git apply 要⽐ patch 严谨许多。因为仅仅是更新当
前的⽂件,所以此命令不会⾃动⽣成提交对象,你得⼿⼯缓存相应⽂件的更新状态并
执⾏提交命令。
在实际打补丁之前,可以先⽤ git apply --check 查看补丁是否能够⼲净顺利地
应⽤到当前分⽀中:
$ git apply --check 0001-seeing-if-this-helps-the-gem.patch
error: patch failed: ticgit.gemspec:1
error: ticgit.gemspec: patch does not apply
如果没有任何输出,表⽰我们可以顺利采纳该补丁。如果有问题,除了报告错误信息
之外,该命令还会返回⼀个⾮零的状态,所以在 shell 脚本⾥可⽤于检测状态。
使⽤ am 命令应⽤补丁
如果贡献者也⽤ Git ,且擅于制作 format-patch 补丁,那你的合并⼯作将会⾮常轻松。
因为这些补丁中除了⽂件内容差异外,还包含了作者信息和提交消息。所以请⿎励贡
献者⽤ format-patch ⽣成补丁。对于传统的 diff 命令⽣成的补丁,则只能⽤ git apply
处理。
对于 format-patch 制作的新式补丁,应当使⽤ git am 命令。从技术上来说,git am 能
够读取 mbox 格式的⽂件。这是种简单的纯⽂本⽂件,可以包含多封电邮,格式上⽤
From 加空格以及随便什么辅助信息所组成的⾏作为分隔⾏,以区分每封邮件,就像
这样:
From 33002d704da8e76ca5c05c1 8e71a8 Mon Sep 17 00:00:00
From: Jessica Smith jessica@
Date: Sun, 6 Apr 2008 10:17:23 -0700
Subject: [PATCH 1/2] add limit to log function
Limit log functionality to the first 20
这是 format-patch 命令输出的开头⼏⾏,也是⼀个有效
您可能关注的文档
- ENVI遥感图像处理专题及实践.pdf
- ERP销售管理模块常见问题和解决方案.pdf
- eSATA接口移动硬盘使用注意事项.doc
- Eviews2篇EViews工作界面介绍.ppt
- Eviews3篇序列(Series)对象的基本操作.ppt
- Excel 2003 VBA中MsgBox函数介绍.pdf
- Excel 2013 自定义函数使用.pdf
- Excel VBA 基本概念及基本的操作.pdf
- Excel 二级下拉菜单3种方法.docx
- excel1000个小技巧(全集)——第08篇_Excel打印技巧.pdf
- 2025陕西渭南市澄城县招聘城镇社区专职工作人员15人考试备考试题及答案解析.docx
- 2025山东省潍坊新纪元学校初高中名优教师招聘考试备考试题及答案解析.docx
- 2025四川安和精密电子电器股份有限公司招聘PE工程师岗等3人考试备考试题及答案解析.docx
- 2025山东信圆金属科技有限公司招聘16人考试备考试题及答案解析.docx
- 2025上海市嘉定区迎园中学编外教师招聘考试备考试题及答案解析.docx
- 2025山东省烟草专卖局(公司)高校毕业生第二次招聘7人备考题库及答案解析.docx
- 2025山东双瑞风电厂(国企)招聘考试备考试题及答案解析.docx
- 2025山西运城市河津市城市基础设施建设投资开发有限公司招聘10人考试备考试题及答案解析.docx
- 2025山东曲阜师范大学附属中学第二批招聘人员4人考试备考试题及答案解析.docx
- 2025山东菏泽市郓城县教体系统引进第二批优秀青年人才31人备考题库及答案解析.docx
文档评论(0)