`
wbj0110
  • 浏览: 1616020 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用 Gitk 跟踪 Git 项目源代码

    博客分类:
  • Git
git 
阅读更多

看源代码是学习编程最快、最有效的方法之一,在 Linux 开源的大环境下,研究源代码就更加容易了。面对一个大一点的项目,我们可能无从下手,那么,何不从其雏形阶段开始研究呢?

我现在就在研究 Tualatrix 兄的 ubuntu-tweak 的源代码,以前 ubuntu-tweak 托管于 Google Code 的时候,Google Code 对各版本差异分析得很清楚,然而转向 github 之后,限于网速,看起来很不方便。

有什么跟踪本地 git 项目源代码的工具呢?diff 显然不是最好的方法,尤其涉及到文件移位之类的问题时。

Tualatrix 兄用的是 gitg ,可是我用起来总是感觉缺点什么的样子,而且经常会莫名其妙的崩溃。偶然看 git 官方文档时,认识了 gitk,似乎是官方提供的工具,用起来真是越来越顺手。

先看一下两个软件的对比图:

gitg.pnggitg.pnggitk.pnggitk.png

gitk 基于 tk/tcl,所以用之前要安装这两个包,由于是官方软件,安装 git 时就会自动安装,不必另行安装。

从图中可以看出,基于 Gtk+ 的 gitg 界面更加漂亮,代码差异的彩色背景更加显眼,相比之下,基于 tk 的 gitk 显然简陋许多,大概 gitg 的作者也就是想写个 gitk 的 Gtk+ 版本吧。

不过,仔细看的话,就可以看出很多不同来,比如,中间的横条空间,gitg 是用作显示 Commit 的详情,这显然是浪费了宝贵的屏幕空间,尤其对于宽屏用户来说。

相对地,gitk 虽然中间的空间也用了,不过放置的却是实用的搜索功能。千万不要小看这个搜索条,它不但可以搜索 Headline、Comments、Author、Committer,还可以搜索哪些 Commit 对某些文件进行了修改,并且支持正则表达式、大小写匹配。

再来看一下 diff 功能,gitk 也比 gitg 强上很多,不但可以选择查看差异、新版、旧版的代码,还支持忽略空白符,设定 diff 周边行数。不要小看这个功能,在查看源代码的时候,这个功能对于理解上下文是很重要的。

如果这么强大的差异功能你还不满意,或者觉得视野空间太小的话,还可以右击文件,选择 External diff 来调用 meld 查看,当然前提是你安装了 meld。

右击文件,还可以对该文件加上高亮,这样标记已经读懂的文件比较方便。

通过这些介绍,可以看出,相比 gitg,gitk 更加成熟,功能更加强大。

默认启动 gitk 是打开 master 分支,如果想要查看其他分支,使用 gitk 分支名 即可,比如:

1
gitk origin

gitk 的命令行还有很多用法,详见 git 相关文档。

其实,gitk 只是 git gui 中的一个小工具,在命令行输入:

1
git gui

可以发现更多功能,当然,有些功能就不如终端下方便了。下面是 git gui 的效果:

Git GUIGit GUI
分享到:
评论

相关推荐

    使用Git管理源代码

    ### 使用Git管理源代码 #### 一、Git简介与安装 **Git** 是一个开源的分布式版本控制系统,用于跟踪对文件的更改,并管理多个开发者之间的协作。它最初由Linus Torvalds于2005年为了更好地管理Linux内核项目而创建...

    git基本使用

    版本控制系统是一种记录文件变化历史、允许你回顾特定版本的系统,常用于软件开发中协同工作,跟踪和记录源代码的变化。版本控制系统主要分为两种类型:集中式版本控制和分布式版本控制。Git属于后者,与SVN等集中式...

    git客户端x64

    Git是一种分布式版本控制系统,由Linux之父Linus Torvalds开发,旨在处理Linux内核的源代码管理。Git的强大在于它的速度、数据完整性以及支持非线性开发的能力。 Git客户端通常包括一系列工具,如git-gui、gitk、...

    progit-zh git官方文档-中文版

    - **从源代码安装**:对于高级用户或特定需求,可以从源代码构建Git。 - **在Linux上安装**:大多数Linux发行版提供了预编译的Git包,可以通过包管理器轻松安装。 - **在Mac上安装**:可以使用Homebrew等工具安装Git...

    git详解-PDF

    - **从源代码安装**:适用于希望自定义编译选项或希望获得最新功能的用户。 - **在Linux上安装**:通常可以通过包管理器轻松安装Git。 - **在Mac上安装**:可通过Homebrew等工具快速安装。 - **在Windows上安装**:...

    git安装与使用介绍.docx

    Git是一款强大的分布式版本控制系统,它的主要作用在于跟踪和管理软件项目的源代码变更。Git的安装过程简单,可以从微云上下载安装包,解压后直接安装。安装过程中,可以选择中文语言包,按照提示一步步操作即可。 ...

    Pro Git - Scott Chacon

    - **从源代码安装**:适用于Linux和类Unix系统。 - **在Linux上安装**:通常通过包管理器如apt-get或yum来安装。 - **在Mac上安装**:可通过Homebrew或其他工具安装。 - **在Windows上安装**:推荐使用Git for ...

    Git权威指南PDF完整版

    3.1.2 从源代码进行安装/ 23 3.1.3 从Git版本库进行安装/ 23 3.1.4 命令补齐/ 25 3.1.5 中文支持/ 25 3.2 在Mac OS X 下安装和使用 Git/ 26 3.2.1 以二进制发布包的方式安装/ 26 3.2.2 安装 Xcode/ 27 3.2.3 使用 ...

    Git权威指南.txt

    - Linux 系统通常提供多种安装方式,包括包管理器安装、从源代码安装以及从 Git 版本库安装等。 - 安装完成后还需要进行一些配置,如命令补齐和中文支持等。 - **3.2 在MacOSX下安装和使用Git** - MacOSX 下可以...

    git中文手册

    对于Linux和类Unix系统,可以通过编译源代码的方式安装Git。首先需要安装必要的依赖包,然后下载Git源码包,编译并安装。 - **1.4.2 在Linux 上安装** 大部分Linux发行版都提供了预编译好的Git包,可以直接通过...

    progit中文版

    - **从源代码安装**:适用于Linux系统,需要编译源代码。 - **在Linux上安装**:多数现代Linux发行版都包含了Git。 - **在Mac上安装**:可以通过Homebrew或预编译的包来安装。 - **在Windows上安装**:推荐使用MinGW...

    git-1.9.0.chromium.5_bin

    Chromium是Google Chrome浏览器的基础开源项目,其开发过程大量依赖于Git来维护源代码。 在描述中提到的“git-1.9.0.chromium.5_bin.zip”是一个压缩包文件,其中包含了Git的可执行文件,便于在不支持自动安装或...

    ProGit.pdf

    - **从源代码安装**:适用于对编译有一定了解的高级用户。 - **在Linux上安装**:多数 Linux 发行版都提供了预编译好的 Git 包。 - **在Mac上安装**:可通过 MacPorts 或 Homebrew 安装 Git。 - **在Windows上安装**...

    pro git中文版

    - **从源代码安装**:对于熟悉编译过程的用户来说,可以从源代码编译Git。 - **在Linux上安装**:大多数Linux发行版都提供了简单的包管理工具来安装Git。 - **在Mac上安装**:可以通过Homebrew等工具或者直接下载...

    progit中文手册

    - **从源代码安装**: 对于喜欢自定义编译选项的用户来说,这是一个可行的选择,但过程较为复杂。 - **在Linux上安装**: 大部分Linux发行版都有预编译好的包可供安装。 - **在Mac上安装**: Mac 用户可以通过 Xcode ...

    Pro Git 中文版 免积分

    - **从源代码安装**:适用于需要高度定制化安装的情况。 - **在Linux上安装**:大多数Linux发行版都有预编译的包可供安装。 - **在Mac上安装**:可以使用Homebrew或其他软件包管理器进行安装。 - **在Windows上安装*...

    progit手册

    - **从源代码安装**:适用于对编译环境有特殊需求的情况。 - **在Linux上安装**:多数Linux发行版都有包管理器,可以直接通过包管理器安装。 - **在Mac上安装**:可以使用Homebrew等工具快速安装。 - **在Windows上...

    《Pro Git》,简体中文,2011-12-16更新

    - **从源代码安装**:适合高级用户,可以根据自己的需求定制编译选项。 - **在Linux上安装**:大多数Linux发行版都提供了预编译的Git包,可以通过包管理器轻松安装。 - **在Mac上安装**:Mac用户可以通过Homebrew...

Global site tag (gtag.js) - Google Analytics