# 比较和整合工具
要了解在项目中都发生了什么,你就需要检查发生的改动。由于改动过的文件会被表示为 “diff”,所以关键就是在于更好地理解这些改动差异。
尽管在命令行界面中可以非常简单地输出这些差异信息,但是要读懂这些信息还是很有难度的。
```
$ git diff
diff --git a/css/about.css b/css/about.css
index e69de29..4b5800f 100644
--- a/css/about.css
+++ b/css/about.css
@@ -0,0 +1,2 @@
+h1 {
+ line-height:30px; }
\ No newline at end of file
diff --git a/css/general.css b/css/general.css
index a3b8935..d472b7f 100644
--- a/css/general.css
+++ b/css/general.css
@@ -21,7 +21,8 @@ body {
h1, h2, h3, h4, h5 {
color:#ffd84c;
- font-family: "Trebuchet MS", "Trebuchet"; }
+ font-family: "Trebuchet MS", "Trebuchet";
+ margin-bottom:0px; }
p {
margin-bottom:6px;}
diff --git a/error.html b/error.html
deleted file mode 100644
index 78alc33..0000000
--- a/error.html
+++ /dev/null
@@ -1,43 +0,0 @@
- <html>
-
- <head>
- <title>Tower :: Imprint</title>
- <link rel="shortcut icon" href="img/favicon.ico" />
- <link type="text/css" href="css/general.css" />
- </head>
-
```
比较工具仅仅致力于一个单一的工作,那就是帮助你来更容易地理解这些差异。它会使用不同的颜色,特殊的格式,甚至是不同的布局(并排,组合单个列等等)来展现出不同文件中差异:
![gui-example-diff](https://box.kancloud.cn/2016-05-04_572967e8bba46.jpg)
其中一些工具甚至还可以帮助你解决合并冲突。特别是在这种情况下,你很快就能体会到,它可以非常有效地帮助降低操作的复杂性并避免错误的产生。
今天,我们可以找到很多强大的比较工具。下面这个列表就为你列出了一些:
## Mac OS X
* Kaleidoscope [www.kaleidoscopeapp.com](http://www.kaleidoscopeapp.com)
* Araxis Merge: [www.araxis.com](http://www.araxis.com/merge)
* DeltaWalker: [www.deltopia.com](http://www.deltopia.com/compare-merge-sync/macosx)
## Windows
* Beyond Compare: [www.scootersoftware.com](http://www.scootersoftware.com)
* Araxis Merge: [www.araxis.com](http://www.araxis.com/merge)
* P4Merge: [www.perforce.com](http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools)
- Learn Version Control with Git 中文版
- 前言
- Part 1 - 基础知识
- 什么是版本控制?
- 为什么要使用版本控制系统?
- 准备工作
- 版本控制的基本工作流程
- 从一个未被纳入版本控制的项目开始
- 从一个已被纳入版本控制的项目开始
- 工作在你的项目上
- Part 2 - 分支与合并
- 分支可以改变你的生命
- 在分支上工作
- 暂时保存更改
- 切换一个本地分支
- 合并改动
- 分支的工作流程
- Part 3 - 远程仓库
- 关于远程仓库
- 连接一个远程仓库
- 查看远程数据
- 整合远程的改动
- 发布一个本地分支
- 删除分支
- Part 4 - 高级应用
- 撤销操作
- 用 diff 来检查改动
- 处理合并冲突
- Rebase 代替合并
- 子模块
- git-flow 的工作流程
- 使用 SSH 公钥验证
- Part 5 - 工具与服务
- 桌面应用程序
- 比较和整合工具
- 代码托管服务
- 更多学习资源
- 附录
- 版本控制的最佳实践
- 命令 101
- 从 Subversion 过渡到 Git
- 为什么选择 Git