文章目录
  1. 1. 准备环境
  2. 2. 查看历史
  3. 3. 合并和衍合
  4. 4. 查看stash

已经11岁的Git现在应该算是最流行的版本管理系统了。不过它的上手过程略令人感伤:为什么要用git reset HEAD而不是git unadd/unstage?Mac的朋友们有福了,GitUp来拯救懒程序员们啦。它提供了一个简约而不简单的界面,让我们可以凭直觉轻松地打出git组合拳来处理各种状况。在2016年4月的ThoughtWorks技术雷达上,它处于试验阶段,也就是值得追求,建议尝试。让我们来看看它有什么能力吧。

准备环境

GitUp只是一个小应用程序,下载下来就能用啦:

1
2
3
4
5
mkdir gitup
cd gitup
wget -c https://s3-us-west-2.amazonaws.com/gitup-builds/stable/GitUp.zip
unzip GitUp.zip
open GitUp.app

打开GitUp就能看见下面的界面:

然后我们新建一个git repo:

1
2
3
4
5
6
7
8
9
10
11
12
13
mkdir test
cd test
git init
echo a > a.txt
echo b > b.txt
echo c > c.txt
git add a.txt
git commit -m "a"
git add b.txt
git commit -m "bb"
git add c.txt
git commit -m "c"

查看历史

在刚才的GitUp欢迎界面上选择新建的test文件夹,就能看到简洁的版本历史图,有三个commit,其中两个是小圆点,一个是现在所处的HEAD。随便单击选择一个commit:

可以看到这个commit的信息,按上下键可以选择其它commit,按空格切换commit详细页面。在commit上右击,便能看到所有支持的操作。我们可以先右击中间的commit,选择Edit Message把先前的提交消息”bb”改成”b”。很简单吧!比输命令易用多了。之后在HEAD上右击并选择Create Branch来新建一个分支,分支名为temp。然后就能看到下图:

可以在终端中运行git branch来确认自己在temp分支上。然后加点代码:

1
2
echo d >> c.txt
cat c.txt

这时切回GitUp的界面,选择中间的视图,如下图所示:

看起来很像git gui吧。双击c.txt就可以切换文件的状态。输入提交消息cd,然后点击Commit按钮来提交。于是就能看到下图:

双击master的小黄点就可以切换到master分支上了。然后也加点代码:

1
2
3
echo e >> c.txt
cat c.txt
git commit -am "ce"

这回的图变成这样了:

合并和衍合

我们来试一下合并分支。右击temp上的小圆圈,选择Merge into Current Branch,然后点击Merge按钮就能看到冲突了。可以使用Open with Default Editor来自己解决冲突,也可以使用Resolve in Merge Tool来解决。如果是前者,可以注意一个小细节:这里的冲突提示是ours和theirs,看起来人性化了不少。合并完成后,点击Mark as Resolved,然后Commit,就可以看到图变成这样了:

衍合也是类似。GitUp提供了一个逆天功能Command+Z,可以快速回退到上一次操作(再次前进是Command+Shift+Z)。这样我们很轻松就能再来一次衍合。右击temp上的小圆圈,选择Rebase Current Branch onto Here,剩下的和合并分支类似。提交之后,就可以看到图变成这样了:

GitUp还提供了强大的快照功能。我们可以点击右上方的时钟按钮来选择自己想要的快照,就像Time Machine似的。如下图:

查看stash

那么第三个视图是干什么的呢?我们先stash一段代码:

1
2
3
4
echo f >> c.txt
cat c.txt
git stash
echo g >> c.txt

打开第三个视图,原来是stash列表,这回可以很容易看清楚了。也可以在这里stash:点击左下方的加号按钮,输入一个消息然后Save Stash,就可以看到下图:

还可以在这里轻松地Apply想要的stash,这个可视化可以有。可惜还是不支持选择特定文件stash。

文章目录
  1. 1. 准备环境
  2. 2. 查看历史
  3. 3. 合并和衍合
  4. 4. 查看stash