开发工具 Happycasts: git diff 实战

happypeter · 2012年08月06日 · 最后由 happypeter 回复于 2012年08月08日 · 5187 次阅读

http://happycasts.net/episodes/32 在实际操作(突出讲 git diff,但不是孤立的讲)中讲解 git diff 的几种常用情形。

@azhao @billie @camel @cantin @chinacheng @chucai @dfang @ery @googya @jiffies @jinleileiking @jjym @kenshin54 @lex @lgn21st @lidashuang @linjunpop @lyfi2003 @poshboytl @rainly @randuin @reducm @sectic @stc @superbatironmans5 @suupic @tudou @toy @thisiskun @xmonkeycn @xufeng @ywjno @zhangyuan @zhex @AlphaLiu @PrideChung @7LI

列位,以后咱们可能改用邮件提醒的方式。 好在大家要做的就一步,到 http://happycasts.net/log_in 点一下“使用 github 登陆”,就 OK 了。

同时也欢迎大家到 http://happycasts.net 发些评论,那上面现在太冷清了,惨淡啊 😄

真是高产啊,谢谢 @happypeter

高产,而且质量还很不错。

非常喜欢 vim git 相关的视频 前几天已经下载了 happycasts 上的大部分视频看,今晚回去看这个:)

#4 楼 @congteng 说到 vim git 视频,目前我看到的最好的还是要算 vimcast 和 codeschool 的 git real。 #1 楼 @happypeter 视频全下了,仔细研读,多谢辛勤劳动和无私奉献。。。

@happypeter 喜欢 git 的视频。

正在 wget 多谢 lz

#8 楼 @happypeter 好东西,收下了。多谢!

我这里网速太慢,加载很长时间才能出来

有空一定看看。

我是一般不太喜欢通过视频来学习东西 ...

#11 楼 @zw963 视频在展示一些动态的综合性的知识点时,确实能有超过书面的东西很多很多的优势。这就是为什么尽管文档都在那里,人们一样会很喜欢 railscasts.com

我在做视频的时候会努力发挥视频这种形式的独特优势。如果视频只是书面内容的单纯复现,那就 stupid 了

@happypeter 很喜欢你是视频,能发布到 itunes podcast 么?

#12 楼 @happypeter

嗨~~ 你可能误解我啦,我不是说视频不好。纯粹个人爱好而已。我更倾向于读那种晦涩的但是比较详细文档 (最好可以包含一个工具的所有方面介绍), 然后我会倾向于从作者的角度来思考,并不断的实践,来理解我需要的东西。我自己可能会犯很多错误,也会走很多弯路,但是挺喜欢这个过程的。

有时候觉得我自己就是那种受虐狂,什么方式学起来越慢,什么方式学起来越痛苦,我就喜欢用什么方式,可是没办法,我是真喜欢这样。

#12 楼 @happypeter

忘了问楼主,难道楼主不用第三方代码比较与合并工具吗?

顺便提下,按照社区流行的说法,我是一个很极端的 CLI 控,几乎所有事情都是能在 CLI 下较好的完成的,都不会借助图形工具。

针对 git diff, 这里有个小脚本,可以涵盖绝大多数应用场景。

function git_diff () {
    if [ -e "$*" ]; then
        git diff -- "$*"
    else
        if [ "$*" ]; then
            git diff $*
        else
            git diff -- .
        fi
    fi
}

然后再设个别名就是了,例如 gitd.

然后键入 gitd aaa

  • 如果 aaa 这个文件 (或目录) 存在,则自动比较当前工作目录与 staged 不同。

  • 如果文件不存在,则会接受多个参数。例如: gitd branch1 branch2 或 gitd tag1 tag2 或 gitd hash1 hash2

  • 如果不加参数,例如:gitd, 则比较当前目录下的所有文件的不同。

谢谢分享。对 git 很感兴趣

#13 楼 @allenwei 很好的建议,已经加到 issue 中备忘了 https://github.com/happypeter/happycasts/issues/33 不过我以前没弄过,大家给指个路吧,谢谢

BTW, 如果有同志能帮忙维护一下的话就更好了,我会在 http://happycasts.net 上致谢的 😄

#14 楼 @zw963 Learn xxx the hard way

#15 楼 @zw963

第三方代码比较与合并工具吗?

到 branching 和 merging 的部分再讲这个。我也是超级的 plain text 粉丝啊。GUI 的工具,不太喜欢。

我自己当年初学的时候有这样的两个痛苦:

  1. 对一个新东西摸不着方向,瞎学,浪费大量时间
  2. 学用 vim 或 git 之类的工具一两年了,其实很多意识都是错的,瞎操作,也浪费的大量时间

所以我做 happycasts 主要希望大家不要掉进坑里,不奢望能把大家带到天上。像您的这个脚本比较适合放在视频的评论区里,供熟手赏析。我的视频里只讲最简单基础的东西 😏

本人喜欢工具是 SourceTree, 很直观

#19 楼 @happypeter

嗯。我不讨厌 linux 下的 diff, 甚至好几种 diff 显式的方式,也都大概明白,不过真到了项目中,直接用 diff 看就是噩梦。推荐:Windows 和 linux 下推荐Beyond Compare 3. 无出其右。Mac 下据说Araxis Merge不错。不过我没用过。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号