V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lijinma
V2EX  ›  程序员

大家平时项目中都如何用 git 进行合作的?分享+学习

  •  
  •   lijinma · 2014-03-03 09:48:34 +08:00 · 4440 次点击
    这是一个创建于 3731 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们项目是这样使用的,(自己vps搭建的git服务器)

    暂时称为:origin master

    项目中多人A+B+C等

    (1)A工作中先git fetch origin master,拿到代码后,修改代码,并提交到本地;

    $ git commit ...

    (2)A push代码:

    1)再fetch origin master,获取最新版本,可能这个时候B或C有提交
    2)$ git rebase origin/master
    3)如果第二步出现代码conflic,就使用 git mergetool进行merge,如果没conflic,直接下一步
    4)$ git push origin master



    如上,我们不使用 git pull等操作;

    不知道大家一般都如何使用git进行合作的?我们的做法是否可以更效率?
    21 条回复    1970-01-01 08:00:00 +08:00
    moto72
        1
    moto72  
       2014-03-03 10:00:51 +08:00
    按照模块分发,完成自测没有问题在 push ,每次开工前都会先fetch 或者有内部fetch提醒时都会按需去fetch
    Keyes
        2
    Keyes  
       2014-03-03 10:07:19 +08:00   ❤️ 2
    两个分支master、dev
    开发从dev往下拉分支,自测没问题merge到dev
    版本锁代码之后测试,没问题经理把dev merge到master
    然后版本就对外发了,发完再从master拉回一个dev,循环 = =
    顺带一提,redmine好东西
    atian25
        3
    atian25  
       2014-03-03 10:08:05 +08:00
    git-flow
    ffts
        4
    ffts  
       2014-03-03 10:10:23 +08:00   ❤️ 1
    好像pull就是fetch+merge?
    akira
        5
    akira  
       2014-03-03 10:13:45 +08:00
    分支是个好东西
    wuxqing
        6
    wuxqing  
       2014-03-03 10:15:56 +08:00
    @Keyes 分享下redmine的经验?我安装了感觉很简陋呀
    lijinma
        7
    lijinma  
    OP
       2014-03-03 10:20:34 +08:00
    @Keyes 多谢,我们现在代码review和分支管理做的不好,学习了。
    lijinma
        8
    lijinma  
    OP
       2014-03-03 10:22:06 +08:00
    @ffts 好像是,你们用 git pull 吗
    chmlai
        9
    chmlai  
       2014-03-03 10:23:27 +08:00
    参考git flow
    lijinma
        10
    lijinma  
    OP
       2014-03-03 10:36:25 +08:00
    @chmlai
    @atian25

    多谢,正在看;
    wuyexiong
        11
    wuyexiong  
       2014-03-03 10:37:24 +08:00   ❤️ 1
    @chmlai 对的. 补充一点就是 >>
    ##功能分支往develop拉之前,
    1. 先checkout到develop分支下,把最新的代码pull下来,
    2. 再checkout到你当前开发的功能分支,
    3. 把develop rebase 到当前开发的功能分支,
    4. 直接merge --no-ff 当前分支到develop ...搞定
    lijinma
        12
    lijinma  
    OP
       2014-03-03 10:59:58 +08:00
    @wuyexiong
    多谢 了解了
    但你的3应该是: 把你当前开发的功能分支 rebase 到 develop 上把
    atian25
        13
    atian25  
       2014-03-03 11:01:33 +08:00   ❤️ 2
    http://www.zhihu.com/question/20070065/answer/16021641
    底部有张我之前翻译的关于gitflow的图。
    lijinma
        14
    lijinma  
    OP
       2014-03-03 11:42:45 +08:00
    @atian25 感谢,看来,你的回答真棒!
    ffts
        15
    ffts  
       2014-03-03 12:27:07 +08:00
    @lijinma 没,公司只有svn...
    git一般是自己在家写代码,或者从github上下东西的时候用,我更新github的项目的时候是用git pull
    其他的其实也没怎么用过...
    ivenvd
        16
    ivenvd  
       2014-03-03 22:52:36 +08:00
    git pull --rebase 就等于 fetch + rebase 啊。
    forgottencoast
        17
    forgottencoast  
       2014-03-04 09:19:55 +08:00
    这个业界已经有很成熟的方案了。
    常见的四种工作流模式参见 https://www.atlassian.com/git/workflows#!workflow-overview
    我们公司采用gitflow流程模式。
    lijinma
        18
    lijinma  
    OP
       2014-03-04 10:06:39 +08:00
    @ivenvd -.- 学习了,多谢
    lijinma
        19
    lijinma  
    OP
       2014-03-04 10:07:06 +08:00
    @forgottencoast 继续学习!
    Hysteria
        20
    Hysteria  
       2014-03-04 10:54:50 +08:00
    小团队我觉得用github flow不错。
    zodiac1111
        21
    zodiac1111  
       2014-03-04 12:44:22 +08:00
    http://www.ndpsoftware.com/git-cheatsheet.html 这个也是个流程图,前短时间看还只有英文的,现在连简体中文都有了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1124 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:41 · PVG 02:41 · LAX 11:41 · JFK 14:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.