第三章 Git 属性.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Git 属性 一些设置项也能被运用于特定的路径中 ,这样 ,Git 以对一个特定的子目录 或子 件集运用那些设置项。这些设置项被称为 Git 属性 ,可以在你目录 中的.gitattributes 件内进行设置 (通常是你项目的根目录 ),也可以当 你不想让这些属性 件和项目 件一同提交时 ,在.git/info/attributes进 行设置。 使用属性 ,你可以对个别 件或目录定义不同的合并策略 ,让 Git 知道怎 样比较非 本 件 ,在你提交或签出前让 Git 过滤内容。你将在这部分了 解到能在自己的项目中使用的属性 ,以及一些实例。 二进制 件 你可以用 Git 属性让其知道哪些是二进制 件 (以防 Git 没有识别出 来 ),以及指示怎样处理这些 件 ,这点很酷。例如 ,一些 本 件是由 机器产生的 ,而且无法比较 ,而一些二进制 件可以比较 — 你将会了解到 怎样让 Git 识别这些 件。 识别二进制 件 一些 件看起来像是 本 件 ,但其实是作为二进制数据被对待。例如 , 在Mac上的Xcode项目含有一个以.pbxproj结尾的 件 ,它是由记录设置 项的IDE写到磁盘的JSON数据集 (纯 本javascript数据类型 )。虽然技 术上看它是由ASCII字符组成的 本 件 ,但你并不认为如此 ,因为它确实 是一个轻量级数据库 — 如果有2人改变了它 ,你通常无法合并和比较内 容 ,只有机器才能进行识别和操作 ,于是 ,你想把它当成二进制 件。 让 Git 把所有pbxproj 件当成二进制 件 ,在.gitattributes 件中设置 如下 : *.pbxproj -crlf -diff 现在 ,Git 会尝试转换和修正CRLF (回车换行 )问题 ,也不会当你在项目 中运行git show或git diff时 ,比较不同的内容。在Git 1.6及之后的版本 中 ,可以用一个宏代替-crlf -diff : *.pbxproj binary 比较二进制 件 你可以使用 Git 属性来有效地比较两个二进制 件 (binary files ,译注 : 指非 本 件 )。那么第一步要做的是 ,告诉 Git 怎么把你的二进制 件 转化为纯 本格式 ,从而让普通的 diff 命令可以进行 本对比。但是 ,我 们怎么把二进制 件转化为 本呢 ?最好的解决方法是找到一个转换工具 帮助我们进行转化。但是 ,大部分的二进制 件不能表示为可读的 本 , 例如语音 件就很难转化为 本 件。如果你遇到这些情况 ,比较简单的 解决方法是从这些二进制 件中获取元数据。虽然这些元数据并不能完全 描述一个二进制 件 ,但大多数情况下 ,都是能够概括 件情况的。 下面 ,我们将会展示 ,如何使用转化工具进行二进制 件的比较。 边注 :有一些二进制 件虽然包含 字 ,但是却难以转换。 (译注 :例如 Word 档。 )在这些情况 ,你可以尝试使用 strings 工具来获取其中的 字。但如果当这些 档包含 UTF-16 编码 ,或者其他代码页 (codepages ),strings 也可能无补于事。strings 在大部分的 Mac 和 Linux 下都有安装。当遇到有二进制 件需要转换的时候 ,你可以试试这 个工具。 Word 档 这个特性很酷 ,而且鲜为人知 ,因此我会结合实例来讲解。首先 ,要解决 的是最令人头疼的问题 :对Word 档进行版本控制。很多人对Word 档 又恨又爱 ,如果想对其进行版本控制 ,你可以把 件加入到 Git 库中 ,每 次修改后提交即可。但这样做没有一点实际意义 ,因为运行git diff命令 后 ,你只能得到如下的结果 : $ git diff diff --git a/chapter1.doc b/chapter1.doc index 88839c4..4afcb7c 100 44 Binary files a/chapter1.doc and b/chapter1.doc differ 你不能直接比较两个不同版本的Word 件 ,除非进行手动扫描 ,不是吗 ? Git 属性能很好地解决此问题 ,把下面的行加到.gitattributes 件 : *.doc diff=word 当你要看比较结果时 ,如果 件扩展名是doc ,Git 调用word过滤器。 什么是word过滤器呢 ?其实就是 Git 使用strings 程序 ,把Word 档转 换成可读的 本 件 ,之后再进行比较 : $ git config diff .word.textc

文档评论(0)

daijun + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档