关于git 多人合作编程 实战记录

转载请标明出处:http://blog.csdn.net/nicnac/article/details/7822011

首先,要说git比我想象的功能强大的多,也不可避免的复杂的多。所以我不想花大量的时间去刻意学习它,在实践中用哪查哪是我非常中意的方法。

我们现在在进行android项目的开发。由于速度代码之庞大,编译过程之繁复,所以必须多人在高性能linux服务器上进行编译和版本控制。由于多人编程,版本控制不可避免。

具体情况是这样:

1.一台8核200GB的CentOS服务器,足够了。

2.每个人在/home下简历自己的用户目录,并从/data下的一个repo,clone下来一个git节点,完全克隆哦,就是完全复制了一个一摸一样的版本,几个branch、版本历史、神马神 马都是一样一样的。

命令:git clone[email protected]:/data/git/git1106.git(your android dir)

    cd(your android dir)

    git checkout -b fina origin/fina (fina是保存着最新稳定版本的分支)

必须说明,我们所克隆的这个节点保存着我们多人合作后所提交的最新稳定版本的代码。

3.每个人在自己目录下修改代码后要提交给git(注意不是提交给那个最新稳定版本),是为了提交给git进行版本控制与记录的。

命令:git branch hook

    git checkout hook

    git add -A

    git commit  -am "添加话柄摘放处理并上报至应用层(CallNotifier.java)"

    git log

     commit 08cb4ea3f0dfa503146598f55801c329fac8bafe
    Author: zhangyixiang <[email protected]>
    Date:   Wed Aug 1 17:12:11 2012 +0800

                    添加话柄摘放处理并上报至应用层(CallNotifier.java)

                    commit 336f0c44fe68581779dab8124b54e5db0d088a12
                    Author: zhouniandong <[email protected]>
                    Date:   Wed Jun 20 13:14:45 2012 +0800

                    修改了设备ID,改为SEUIC-M600

如果调试某一个功能模块时,是和别人一起合作进行的,那么就要在提交给最新稳定版本前与同伴merge一下。这里可有的说了,由于我没有git操作经验,所以又新建了一个branch,用来试验,成了就成了,不成就删掉,反正教程上说,新建并管理分支的成本几乎可以忽略。所以我新建了一个分支叫hook(原来所在分支为RIL),并转到该分支。执行完以上两条命令后,并转会分支RIL,发现工作目录发生变化,本来之前添加的几个文件,都不见了!这是因为我们已经把他们add+commit给我分支hook,此时工作目录已经和stage完全同步! 认识到这点很重要,一旦把新的工作提交,工作目录中所呈现的文件和git记录的(即为stage状态的文件)是同步的,随着分支、版本的切换,工作目录中的文件会发生变化,很神奇吧!

还有,如果想在RIL分支中把刚才做的修改也进行提交,git会提示“nothing to commit (working directory clean)”,这是因为新的修改已经完全被提交到hook,RIL则作为老分支存在着,她的存在就是为了保存之前的代码。所以,任何一次修改,只能够提交到一个branch,每个branch保存着不同的版本发展历程。即便是父子分支,从子分支的startpoint开始之后,父分支就开始与子分支开始完全不同的路了,此一别,永不相逢。

4.同伴同样从最新稳定版本中clone了git工作目录,并做了一些修改,接下来他要合并我刚才的最新修改才可以进行进一步的工作。怎么做呢?就是将我的代码合并到她的上面。

命令:git branch hook1

    git checkout hook1(她的老分支也是RIL)

    git add -A

    git commit -am "完善Dail,InCallScreen界面,并添加通话设置"

    git log  

                    commit 7a878f3a7a259367c577eebe492c3456e70ed9fe
    Author: luyuhong <[email protected]>
    Date:   Wed Aug 1 18:18:43 2012 +0800

        完善Dail,InCallScreen界面,并添加通话设置

    commit 336f0c44fe68581779dab8124b54e5db0d088a12
    Author: zhouniandong <[email protected]>
    Date:   Wed Jun 20 13:14:45 2012 +0800

        修改了设备ID,改为SEUIC-M600

                    git pull /home/zhangyixiang/git0702/git1106      (这就是关键的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值