Git之大家一起来写作业

作者: 5ac7ecf11d1d | 来源:发表于2017-08-19 19:09 被阅读55次
作业线
这篇文章,接TO有话说[2]-Git与拿作业、交作业

那么,今天我们来思考,如何用Git让大家共同完成一份作业,也就是写一个程序。

首先,引入Git的branch概念。

之前的举的一个写作业的例子,我们现在来拓展一下这个模型。

学校里不可能只有你一个学生,你的班级里不可能只有你一个学生。

学校,可以理解成你的公司。班级,你所在的部门。学生,软件工程师(程序员)。

每个人都会push自己写好的作业,那么我们如何把不同人写的作业的过程(也就是代码提交的修改,还记得我们的第一节说的吗)清晰的显示出来呢。很简单,把不同人写的作业分开来放呗。

比如,张三写的一本本作业(一次次代码修改)放在一条线上,称这条线为zhangsan,贴一个zhangsan的标签。

李四写的一本本作业(一次次代码修改)放在zhangsan这条线的在地板这个平面的一条平行线上,称这条线为lisi,在这条线上贴一个lisi的标签。。

这分开的两条线,就是两个branch。

张三可以在zhangsan这条线上放上(push)自己的作业,李四可以在lisi这条线上放上(push)自己的作业,两条线之间可以互相不冲突。

当然,最后,老板(或者你的上司)会将作业写的好人的作业放在红榜上进行表扬。那么我们就需要一条线来放置老板认为质量最好的作业,对吧?我们称这条线为master,也就是我们的主线,这里放着写的质量最高的作业。

有了这条线,接下来我们是不是要把最好的作业放到master上呢?

而在Git中,完成这个操作有两种方式。一个是merge,一个是rebase。

我们先来弄清楚merge。

大家应该都已经懂了,我们每次都commit,都是一次代码的改动,那么多次代码的改动,当然可以变成一次改动,也就是将多次commit合并。多个commit与这多个commit合并所得的commit,是等价的。

张三把多次commit合并,变成了一个commit,然后把这次commit,合并到master这个branch上。这个操作就是merge zhangsan into master,这样会导致master这个branch只多一个commit。这个commit可能是多次commit的一次合成。Merge这个操作,就是将zhangsan这个branch相对于master的修改,在master上也进行了一次等价的修改。

那么这样zhangsan和master其实是一样的了,所以我们其实只需要一条线了,对吧。然后在这条线上贴上两个标签,zhangsan和master。

那么什么是相对于master的修改?

这里需要解释一下。假象一下,master这个branch上的作业(代码)是星期六的作业了。zhangsan这个branch在此时和master这个branch是一模一样的。你(比如你是zhangsan)星期天在你的branch commit并push了。那么相对于master这条branch,zhangsan这个branch有了星期日的作业,也就是相对于master有了修改。

那么什么是rebase?

同样的,有了相对的修改。

rebase,与merge不同,不会将多次commit合成一个commit。

而是将相对的修改直接抄过去。比如rebase master on lisi,就是将lisi这个branch相对于master的修改直接抄上去了,而且是一个commit一个commit的抄,那就会在master上留下多次commit。

其后面的本质其实是这样的,先将lisi这个branch相对于master的修改截取下来,保存在一个地方。此时lisi和master是等价的了。也就是一条线2个标签,然后这时把我们刚刚保存起来的修改,一个一个的放在master这条线上。

这就是rebase。

好了,下一次我将阐述如何抄别人的作业和怎么让老师知道你是谁,你在哪里写的作业。

相关文章

  • Git之大家一起来写作业

    那么,今天我们来思考,如何用Git让大家共同完成一份作业,也就是写一个程序。 首先,引入Git的branch概念。...

  • 大家一起来写写写

    写作吧,只有写出来才能把别人的东西变成自己的。

  • 一起来写作业

    以下是老师的授课内容,建议看三遍 大家早上好,今天早上阳光明媚,我刚刚环顾了一下四周,看到了绿色葱葱的大树,感受到...

  • 大家一起来写面试攻略(Android)

    号召 如果你在面试中也遇到过类似的问题,但是你有更好的回答方案,可以在评论中回复,我会带着你的名字加到文章中 如果...

  • git与github,第一次接触

    git与github,第一次接触 加入了lzj老师的python之禅知识星球,和大家一起学习python。 lzj...

  • 大家一起写作业

    今天我和我的朋友们一起写作业。

  • “七一班”的同学们

    为了免得自己作业越欠越多,我先把大家写过的同学一起放到这里,待我日后一个个的来写,这样大家就可以直接点开去看你关注...

  • 《幽梦影》品读(四)

    今天来写《幽梦影》品读的第四章。 大家之文,吾爱之慕之,吾愿学之;名家之文,吾爱之慕之,吾不敢学之。学大家而...

  • 诚邀大家来写《馅饼日记》

    从上初中起,我就开始断断续续写日记了。 从今年,也就是2018年,6月3日起,我开始频繁地写《馅饼日记》。 为什么...

  • 大家为什么来写作?

    最近感觉不知道该写什么了,对文字的热爱也似乎渐冷渐淡。 不禁自问,写作真正是自己的爱好吗?以文为乐是发自内心的希求...

网友评论

    本文标题:Git之大家一起来写作业

    本文链接:https://www.haomeiwen.com/subject/dnntdxtx.html