• #15 楼 @lgn21st

    讲的很好呀,受教了,这的确是使用 stash 很好的场景.~~

    不过..., 你是用手机回复的吗?这不像你的风格呀。

    #14 楼 @happypeter 这是普遍情况,你可以用 git-stash 解决。 首先,在这个 new-feature 分之 上执行 git stash,这时所有未提交的修改都会被 零时 保存起来。这个时候你就可以方便的 git checkout master 切换到主干分钟,然后 branch 新的 分之 并解决 bug。等 bug 解决了以后,你可以回到 new-feature 分之 上,用 git stash apply 将之前保存的变更全部还原出来。进一步关于 git-stash 的信息可以看这里。

    我补充一点:好像还有一个 git pop, 取出来后,顺便清空 stash-list.

  • #14 楼 @happypeter

    我是站在作者编写 git 实用的角度,觉得按照这种方式来使用 git 才是正确的。事实上我也可以理解为什么提供 pull --rebase, 如果这个项目很大,例如:linux kernel, 可能在你处理本地 rebase 的时候,又有其他人向 master push 了新的 commit, 而且这个 commit 碰巧就和你要提交的 commit 发生冲突,这个时候,就需要 pull --rebase 了。除非项目很大很大,否则这样的几率还是很低的。

    我的理解,是 rebase 应该总是在本地的不同分支间被执行,这样一步一步才条理,直接在 master 上用 pull --rebase, 我觉得这样是曲解了这个功能的本意 (有点滥用). 相比较而言,pull 的时候如果存在冲突,merge 反倒更靠谱一些。

  • #21 楼 @jialezhang

    没太明白你的需求。

    不过有没有试过使用 load("完整路径") 的方式来加载??

    还有就是 require 默认情况下,是不可以加载 全局可写目录下 的文件的。如果你能加载其中之一,而无法加载另一个,那很有可能就是权限问题??

  • 给新手一点学习建议 at 2012年08月08日

    建议很中肯..

    世界上任何事情都没有捷径,即使有时候看起来是捷径,但是真正进去之后,往往最后还是要走回头路,如果把这个时间全算上的话,根本不算什么捷径了。

    我强烈呼吁年轻的朋友们,扎扎实实的一步一个脚印走下去。你们还年轻,有的是时间,甚至还有很多在校生,干嘛那么心浮气躁呢?

    不好意思。歪楼了...

  • #12 楼 @happypeter

    假设你首先 pull master 下来,然后在 master 上建立 开发分支 开始工作,当你确信工作已经完成,打算要合并到 master 的时候,这个时候首先切换到 master, 然后再次 pull master, 因为这个时候,你的本地 master 并没有执行任何更改,当然是 fast-forward, 然后,下一步在本地 rebase 开发分支 到 最新的 master, 解决冲突后,push 即可。

    我上面这个过程,你说是不是 pull 总是 fast-forwrd 呢?

    既然 pull 总是 fast-forward, 干嘛还要加个--rebase, 搞的那么复杂...

  • #8 楼 @happypeter

    我刚刚看了下 pull --rebase 的 man 帮助,就是先 fetch, 然后和本地当前分支 rebase, 我感觉用这个参数会造成混乱。

    你平常怎么用这个参数?先本地 rebase, pull 的时候再 rebase ? 要不就是你直接在 master 下工作,从来不会创建分支,工作完后,直接 fetch, 然后 rebase.

    其实你自己完全可以一直保证 pull 是 fast forward, 只要保证 不要在master下直接工作,就可以了. 之前就知道 git 鼓励多创建分支, 并不明白为什么,但是等明白了 rebase 的含义之后,就理解了。

  • #7 楼 @Saito

    喔~ filter-branch, 那时 git 里面的核弹级功能,我除了在网上找的脚本,删除大文件以外,貌似其他功能完全用不着。呵呵

  • #3 楼 @fsword

    还有就是,很多时候,我并不确定自己讲的对不对,所以发出来让大家帮我指正。

    如果你觉得有问题,咱们可以讨论下。可别不说呀。

  • 大家没有注意到,这个问题发错版块了吗?

  • #10 楼 @bony

    嘛意思?我写的有那么煽情吗?

  • #3 楼 @fsword

    下个月打算自己写个博客,然后上线,现在还在复习一些 Ruby 的知识...

    不过我觉得 Ruby-china 就是一个所有 Rubyist 的 blog...

  • #1 楼 @ery

    利用这些信息,可以极大的简化在 CLI 下 有关 Git 的一些操作。

  • #1 楼 @ery

    嗯。我知道那些文件,我的目的是想了解,有没有什么办法,自己直接编写脚本来使用这些变量。

    例如 git some_command HEAD 可以获取 HEAD 的值。

    如果没有现成的命令的话,我必须首先定位到当前项目的.git 目录 (因为你不一定总在项目根目录), 然后再查询.git 目录下的某个文件的内容,可能还需要 cut 出来自己所需的字段。这倒是没多麻烦,只不过有现成的,我想用现成的。

  • 怎么我写的帖子,除了自己,一个回复都没有呢?

    太小白??

  • 咱社区的人,都应该感谢 @lgn21st && @huacnlee , 没有他们的通力合作,就不会有现在的 Ruby-china, 去年的时候其实我深有体会的,我虽然是 2 月份才加入的,不过去年就时不时的想寻找有关 Ruby 的中文社区,查点资料啥的,可是当时,国内那几个论坛几乎都是处于停滞更新的状态。而且也根本没什么东西,后来加入 Ruby-china, 才认识了现在的很多朋友,参加了很多讨论,现在也开始加入线下活动,如果没有 Ruby-china, 我现在是怎样的状态,真不好说...

  • 我也爱折腾,不过起点比较低啊。向偶像看齐~~ 继续努力!

  • Rails 其实有点像 Delphi. at 2012年08月07日

    #42 楼 @bhuztez

    ... 所以我说 我不会 C++ ...

  • Happycasts: git diff 实战 at 2012年08月07日

    #19 楼 @happypeter

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

  • Rails 其实有点像 Delphi. at 2012年08月07日

    #38 楼 @ery

    我怎么觉得元编程是八杆子打不着的两个概念。

    当然,如果仅就阅读性以及 ETAGS 使用来说,有那么一点相似。但是在一个语言中的作用,好像完全不同吧。

  • #3 楼 @heliang7

    我换回之前版本了。我之前版本可是好的。

  • 我有一个Matz 亲自编写的 Ruby代码格式化工具, 嘿嘿

  • 好难看的 end at 2012年08月07日

    #8 楼 @hexawing

    Emacs.

  • #19 楼 @fsword

    嗯,那个我编写了 Ruby 脚本,直接查找替换了。

    我上面那个示例是仅仅针对gem自身的一大堆别名中一个。

  • 有关该 gem source, 要是嫌麻烦,写俩函数就是了。刚学两天编程的菜鸟都会。呵呵。

    
    function gem1 {
        gem source --remove http://rubygems.org/ &>/dev/null
        gem source --remove http://rubygems.org &>/dev/null
        gem source --remove http://ruby.taobao.org/ &>/dev/null
        gem source --remove http://ruby.taobao.org &>/dev/null
        gem source --add http://rubygems.org/
        gem source --list
    }
    
    function gem2 {
        gem source --remove http://rubygems.org/ &>/dev/null
        gem source --remove http://rubygems.org &>/dev/null
        gem source --remove http://ruby.taobao.org/ &>/dev/null
        gem source --remove http://ruby.taobao.org &>/dev/null
        gem source --add http://ruby.taobao.org/
        gem source --list
    }
    

    p.s. 我的.bashrc 里大把类似于这种初级的宏函数,我基本上就是靠别名在 CLI 下混呢。有很多对于使用 ruby, 使用 gem 还是很有帮助的。有兴趣的朋友可以去我的 github 上看看,自取所需吧。

  • 很好啊~~ 这也算是 Ruby-china 真正给开源社区带来的贡献啊。

    我觉得目前 Ruby-china 对于开源社区的贡献还是太少了。我觉得这需要激情,换个角度来说,这是需要信仰的,我很期待,Ruby-china 能够真正在整个世界的 Ruby 社区中,做到中坚力量之一的那一天。

  • Happycasts: git diff 实战 at 2012年08月06日

    #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, 则比较当前目录下的所有文件的不同。

  • Happycasts: git diff 实战 at 2012年08月06日

    #12 楼 @happypeter

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

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

  • 坑爹的 markdown, 我怎么感觉越改越难看呢?

  • Happycasts: git diff 实战 at 2012年08月06日

    有空一定看看。

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