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 发些评论,那上面现在太冷清了,惨淡啊
#4 楼 @congteng 说到 vim git 视频,目前我看到的最好的还是要算 vimcast 和 codeschool 的 git real。 #1 楼 @happypeter 视频全下了,仔细研读,多谢辛勤劳动和无私奉献。。。
世界上最好的 vim 视频: http://www.derekwyatt.org/ 世界上最好的 git 视频: http://gitcasts.com 尤其是最后一个 RailsConf 2008 Talk
嗨~~ 你可能误解我啦,我不是说视频不好。纯粹个人爱好而已。我更倾向于读那种晦涩的但是比较详细文档 (最好可以包含一个工具的所有方面介绍), 然后我会倾向于从作者的角度来思考,并不断的实践,来理解我需要的东西。我自己可能会犯很多错误,也会走很多弯路,但是挺喜欢这个过程的。
有时候觉得我自己就是那种受虐狂,什么方式学起来越慢,什么方式学起来越痛苦,我就喜欢用什么方式,可是没办法,我是真喜欢这样。
忘了问楼主,难道楼主不用第三方代码比较与合并工具吗?
顺便提下,按照社区流行的说法,我是一个很极端的 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, 则比较当前目录下的所有文件的不同。
#13 楼 @allenwei 很好的建议,已经加到 issue 中备忘了 https://github.com/happypeter/happycasts/issues/33 不过我以前没弄过,大家给指个路吧,谢谢
BTW, 如果有同志能帮忙维护一下的话就更好了,我会在 http://happycasts.net 上致谢的
第三方代码比较与合并工具吗?
到 branching 和 merging 的部分再讲这个。我也是超级的 plain text 粉丝啊。GUI 的工具,不太喜欢。
我自己当年初学的时候有这样的两个痛苦:
所以我做 happycasts 主要希望大家不要掉进坑里,不奢望能把大家带到天上。像您的这个脚本比较适合放在视频的评论区里,供熟手赏析。我的视频里只讲最简单基础的东西
嗯。我不讨厌 linux 下的 diff, 甚至好几种 diff 显式的方式,也都大概明白,不过真到了项目中,直接用 diff 看就是噩梦。推荐:Windows 和 linux 下推荐Beyond Compare 3
. 无出其右。Mac 下据说Araxis Merge
不错。不过我没用过。