Git diff 代码比较的高级技巧
2013-09-03 11:53
197 查看
Git diff 代码比较的高级技巧
作者:offbye出处:/article/1562897.html
Git是使用branch来管理不同的功能点开发的,那么我们怎样能比较不同branch的不同呢?
使用 git diff branch1 branch2 , 就可以了, 但这个方法不够直观, 因为只能显示不同点的上下几行,不方便理解。
比较好的做法是使用图形化比较工具比较,例如meld, 使用以下的命令就可以了
[html] view
plaincopy
git difftool -t meld -y branch1 branch2
这样可以使用meld一个一个文件的比较,每次关闭meld就会自动显示下一个不同的文件。
比较不同的commit,使用以下命令就可以了
[html] view
plaincopy
git difftool -t meld -y commitId1 commitId2
比较工作区和上次提交的差异,这个最常用了
[html] view
plaincopy
git difftool -t meld -y HEAD
你可以使用git config命令设置meld为默认的比较工具,并且把prompt设为false,这样以后就可以使用git difftool了。
也可以直接修改 .gitconfig
gedit ~/.gitconfig 在最后加入
[diff]
tool = meld
[difftool]
prompt = false
当然了,如果你不喜欢meld,也可以使用其他的比较工具,git difftool 支持以下的比较工具:
kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
ecmerge, diffuse, opendiff, p4merge and araxis
--------------------------------------------------------------------------------
比较提交 - Git Diff
作者:http://gitbook.liuhui998.com/3_5.html出处:http://gitbook.liuhui998.com/3_5.html
你可以用 git
diff 来比较项目中任意两个版本的差异。
[code]$ git diff master..test
上面这条命令只显示两个分支间的差异,如果你想找出‘master’,‘test’的共有 父分支和'test'分支之间的差异,你用3个‘.'来取代前面的两个'.' 。
[code]$ git diff master...test
git diff 是一个难以置信的有用的工具,可以找出你项目上任意两点间
的改动,或是用来查看别人提交进来的新分支。
哪些内容会被提交(commit)
你通常用gitdiff来找你当前工作目录和上次提交与本地索引间的差异。
[code]$ git diff
上面的命令会显示在当前的工作目录里的,没有 staged(添加到索引中),且在下次提交时 不会被提交的修改。
如果你要看在下次提交时要提交的内容(staged,添加到索引中),你可以运行:
[code]$ git diff --cached
上面的命令会显示你当前的索引和上次提交间的差异;这些内容在不带"-a"参数运行 "git commit"命令时就会被提交。
[code]$ git diff HEAD
上面这条命令会显示你工作目录与上次提交时之间的所有差别,这条命令所显示的 内容都会在执行"git commit -a"命令时被提交。
更多的比较选项
如果你要查看当前的工作目录与另外一个分支的差别,你可以用下面的命令执行:[code]$ git diff test
这会显示你当前工作目录与另外一个叫'test'分支的差别。你也以加上路径限定符,来只 比较某一个文件或目录。
[code]$ git diff HEAD -- ./lib
上面这条命令会显示你当前工作目录下的lib目录与上次提交之间的差别(或者更准确的 说是在当前分支)。
如果不是查看每个文件的详细差别,而是统计一下有哪些文件被改动,有多少行被改 动,就可以使用‘--stat' 参数。
[code]$>git diff --stat layout/book_index_template.html | 8 ++- text/05_Installing_Git/0_Source.markdown | 14 ++++++ text/05_Installing_Git/1_Linux.markdown | 17 +++++++ text/05_Installing_Git/2_Mac_104.markdown | 11 +++++ text/05_Installing_Git/3_Mac_105.markdown | 8 ++++ text/05_Installing_Git/4_Windows.markdown | 7 +++ .../1_Getting_a_Git_Repo.markdown | 7 +++- .../0_ Comparing_Commits_Git_Diff.markdown | 45 +++++++++++++++++++- .../0_ Hosting_Git_gitweb_repoorcz_github.markdown | 4 +- 9 files changed, 115 insertions(+), 6 deletions(-)
有时这样全局性的查看哪些文件被修改,能让你更轻轻一点。
相关文章推荐
- Git diff代码比较的高级技巧
- [git]使用vimdiff做git代码比较
- Mac下使用git difftool来做代码比较
- 代码技巧1.类似于登录、注册界面要判断登录账号是不是空,验证码是否正确等,怎么写比较舒服一点?
- 高级设置电脑系统windows7防火墙出错代码0×6D9原因与解决技巧
- ECMS 高级技巧之 list.var支持程序代码
- git diff 比较文件差异时,中文显示为乱码的问题。
- 比较提交 - Git Diff
- Git log diff config高级进阶
- git diff查看修改,比较修改之间的差异
- git diff 比较两个版本的差异
- git difftool 三方比较
- 用Eclipse进行代码调试的七种高级技巧
- 比较提交 - Git Diff
- “阿一web标准学堂”选修课:EditPlus高级使用技巧(附视频、课件、代码下载)
- 去掉git diff在文件属性变化时候的比较
- SecureCRT使用技巧,包含比较高级的技巧 [转]
- 第二行代码学习笔记——第十三章:进阶之路——你还应该掌握的高级技巧
- python 关于git下unix和windows换行符不同导致稍微改动一行代码git diff就是全部文件对比的解决方案
- git 使用vimdiff比较文件差异