《Git学习指南》——2.3 Git的协作功能

  • 时间:
  • 浏览:0
  • 来源:大发5分3DAPP下载_大发5分3DAPP官方

现在,该项目形态如图2.4所示。

2.3.3 从任意版本库中退还修改

在那么参数的状况下,pull命令只在克隆版本库中能发挥作用,否则可不并能并能 该克隆体蕴藏默认的原版本库的连接。当朋友执行pull操作时,也需用用参数来指定任意版本库的路径,以便从某一特定开发分支中提取相关修改。

接下来,朋友就需用用push命令向共享版本库传送该提交了(见图2.6)。该指令的参数要求与pull命令相同,朋友需用指定目标版本库的路径及其分支。

如上所示,pull命令从原版本库中退还了新的修改,将它们与克隆体中的本地修改进行了对比,并在工作区中合并了两边的修改,创建了一次新的提交。你你是什么 过程可是我 我所谓的合并(merge)。

本节书摘来自异步社区《Git学习指南》一书中的第2章,第2.3节,作者: 【德】René Preißel(普莱贝尔) , Bjørn Stachmann(斯拉赫曼)著,更多章节内容需用访问云栖社区“异步社区”公众号查看

图2.4 样例项目与它的克隆体

2.3.1 克隆版本库

朋友的这位新开发者首先要有原本属于他/她我其他人的版本库副本(也称为克隆体)。该副本蕴藏高了所有的原始信息与整个项目的历史信息。下面。朋友用clone命令来创建原本克隆体。

现在,让朋友将克隆体中的修改pull到原版本库中吧。

请注意!合并过程在一点状况下否则会带来冲突。一旦遇到了你你是什么 状况,Git中就可不并能 进行自动化的版本合并了。在你你是什么 状况下,朋友就需用要手动清理一点文件,否则再确认要提交那此修改。

2.3.4 创建共享版本库

除了需用用pull命令从一点版本库中退还相关提交外,朋友也需用用push命令将提交传送给一点版本库。只不过,push命令只适用于那此那么开发者在上方开展具体工作的版本库。最好的措施可是我 我创建原本不带工作区的版本库,朋友称之为裸版本库(bare repository)。给你使用clone命令的--bare选项来创建原本裸版本库。裸版本库通常可被用来充当开发者们传递提交(使用push命令)的汇聚点,以便我其他人需用从中拉回朋友所做的修改。下面朋友来看原本裸版本库(见图2.5)。

请注意!否则原本开发者在朋友可是我否则做过一次push操作,此次push命令就会被拒绝传送提交。这可是我,朋友需用要先做一次pull操作,将我其他人新上载的更新退还,并在本地合并。

现在,朋友在原本版本库中各做了一次新的提交。接下来,朋友要用pull命令将原版本库中的新提交传递给它的克隆体。否则可是我朋友在创建克隆版本库时,原版本库的路径就否则被存储在了它的克隆体中,否则pull命令知道该从哪里去退还新的提交。

现在,朋友否则有了原本存放项目文件的工作区,以及原本存放项目历史的版本库。在原本像CVS和Subversion原本传统的集中式版本系统中,尽管每个开发者也都是属于他/她我其他人的工作区,但其他人都共享了原本通用的版本库。而在Git中,每个开发者拥都是原本属于他/她我其他人的、自带独立版本库的工作区,否则这否则是原本不依赖于中央服务器的、完整性的版本控制系统了。开发者们需用通过交换其他人版本库中的提交来实现项目公司相互合作 。下面朋友就来做个试验,先创建原本新的工作区,以便朋友模拟第二位开发者的活动。

你你是什么 次,历史记录不再是三根直线了。在上方的日志中,朋友需用很清晰地看多并行开发的过程(即上方的两次提交),以及可是我用于合并分支的那次合并提交(即顶部的那次提交)。

2.3.6 Pull命令:退还修改

现在,为了让克隆版本库也得到相应的修改,朋友需用在执行pull命令时配置参数指向共享版本库的路径参数。

图2.5 裸版本库(原本那么工作区的版本库)

2.3.5 用push命令上载修改

为了演示push命令的使用,朋友需用再次修改一下firststeps/foo.txt文件,并执行以下操作来创建一次新的提交。

2.3.2 从另一版本库中获取修改

下面,朋友来修改一下first-steps/foo.txt文件,并执行以下操作来创建一次新提交。

现在,新的提交否则被存入了朋友原本的first-steps版本库中,但其克隆版本库(first-stepsclone)中依然缺失这次提交。为了给你更好地理解你你是什么 状况,朋友来看一下first-steps的日志。

在拉回(pull)、合并(merge)的过程完成可是我,朋友需用用原本新的log命令来查看结果。这次是日志的图形化版本。

图2.6 经由共享版本库来进行版本共享

在接下来的步骤中,朋友再来修改克隆版本库中的first-steps-clone/bar.html文件,并执行以下操作。