网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

自定义 Git - Git 钩子

Git 钩子 和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 你可以随心所欲地运用这些钩子。 安装一个钩子 钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。 当

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

自定义 Git - Git 属性

Git 属性 你也可以针对特定的路径配置某些设置项,这样 Git 就只对特定的子目录或子文件集运用它们。 这些基于路径的设置项被称为 Git 属性,可以在你的目录下的 .gitattributes 文件内进行设置(通常是你的项目的根目录)。如果不想让这些属性文件与其它文件一同提交,你也可以在 .git/info/attributes 文件中进行设置。 通过使用属性,你可以对项目中的文件

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

自定义 Git - 配置 Git

到目前为止,我们已经阐述了 Git 基本的运作机制和使用方式,介绍了许多 Git 提供的工具来帮助你简单且有效地使用它。 在本章,我们将演示如何借助 Git 的一些重要的配置方法和钩子机制,来满足自定义的需求。 通过这些工具,它会和你、你的公司或你的团队配合得天衣无缝。 配置 Git 正如你在 起步 中看到的,可以用 git config 配置 Git。 首先要做的事情就是设置你的名字和邮

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

Git 工具 - 凭证存储

凭证存储 如果你使用的是 SSH 方式连接远端,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。 然而,这对 HTTP 协议来说是不可能的 —— 每一个连接都是需要用户名和密码的。 这在使用双重认证的情况下会更麻烦,因为你需要输入一个随机生成并且毫无规律的 token 作为密码。 幸运的是,Git 拥有一个凭证系统来处理这个事

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

Git 工具 - 替换

替换 我们之前强调过,Git 对象数据库中的对象是不可改变的, 然而 Git 提供了一种有趣的方式来用其他对象 假装 替换数据库中的 Git 对象。 replace 命令可以让你在 Git 中指定 某个对象 并告诉 Git:“每次遇到这个 Git 对象时,假装它是 其它对象”。 在你用一个不同的提交替换历史中的一个提交而不想以 git filter-branch

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

Git 工具 - 打包

打包 虽然我们已经了解了网络传输 Git 数据的常用方法(如 HTTP,SSH 等),但还有另外一种不太常见却又十分有用的方式。 Git 可以将它的数据“打包”到一个文件中。 这在许多场景中都很有用。 有可能你的网络中断了,但你又希望将你的提交传给你的合作者们。 可能你不在办公网中并且出于安全考虑没有给你接入内网的权限。 可能你的无线、有线网卡坏掉了。 可能你现

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

Git 工具 - 子模块

子模块 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。 我们举一个例子。 假设你正在开发一个网站然后创建了 Atom 订阅。 你决定使用一个库,而不是写自己的 Atom 生成代码。 你可能不得不通过 CPAN 安装或 Ruby ge

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

Git 工具 - 使用 Git 调试

使用 Git 调试 除了主要作为版本控制工具外,Git 也提供了几个命令来辅助你调试你的项目源码中的问题。 由于 Git 被设计成适用于几乎所有类型的内容,这些工具也相当通用,但它们往往可以在出现问题时帮助你找到 bug 或者原因。 文件标注 如果你在追踪代码中的一个 bug,并且想知道是什么时候以及为何会引入,文件标注通常是最好用的工具。 它能显示任何文件中每行最后一次修改的提交记

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

Git 工具 - Rerere

Rerere git rerere 功能是一个隐藏的功能。 正如它的名字“重用记录的解决方案(reuse recorded resolution)”所示,它允许你让 Git 记住解决一个块冲突的方法, 这样在下一次看到相同冲突时,Git 可以为你自动地解决它。 有几种情形下这个功能会非常有用。 在文档中提到的一个例子是想要保证一个长期分支会干净地合并,但是又不想

网站开发,移动开发,技术服务,域名,云服务,一站式IT解决方案,通之影科技

Git 工具 - 高级合并

高级合并 在 Git 中合并是相当容易的。 因为 Git 使多次合并另一个分支变得很容易,这意味着你可以有一个始终保持最新的长期分支, 经常解决小的冲突,比在一系列提交后解决一个巨大的冲突要好。 然而,有时也会有棘手的冲突。 不像其他的版本控制系统,Git 并不会尝试过于聪明的合并冲突解决方案。 Git 的哲学是聪明地决定无歧义的合并方案,但是如果有冲突,它不会尝试智能地自动解决它。

第 1 页,共 26 页