这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战
前言: 在我们日常项目开发过程中,往往leader会根据功能模块不同,来进行“任务划分”。每个人开发过程中会与其他人有依赖关系,也就是协同开发。
下面我将模拟一个项目需求,来实例化一下开发流程
我们使用github作为仓库
举例现在有A和B两个人:
-
Fork他的仓库:这是GitHub操作,这个操作会复制A的仓库(包括文件,提交历史,issues,和其余一些东西)。复制后的仓库在你自己的GitHub帐号下。目前,你本地计算机对这个仓库没有任何操作。
-
Clone你的仓库:这是Git操作。使用该操作让你发送"请给我发一份我仓库的复制文件"的命令给GitHub。现在这个仓库就会存储在你本地计算机上。
-
更新某些文件:现在,你可以在任何程序或者环境下更新仓库里的文件。
-
提交你的更改:这是Git操作。使用该操作让你发送"记录我的更改"的命令至GitHub。此操作只在你的本地计算机上完成。
-
将你的更改push到你的GitHub仓库:这是Git操作。使用该操作让你发送"这是我的修改"的信息给GitHub。Push操作不会自动完成,所以直到你做了push操作,GitHub才知道你的提交。
-
给Joe发送一个pull request:如果你认为A会接受你的修改,你就可以给他发送一个pull request。这是GitHub操作,使用此操作可以帮助你和A交流你的修改,并且询问A是否愿意接受你的"pull request",当然,接不接受完全取决于他自己。
在多人的开发的时候,这种行为就显得比较重要起来,比如说:
依赖他人代码
场景一:A直接拉去Mater的代码
创建一个上游远程仓库,将Master代码拉取到A的本地。
$ git remote add upstream https://github.com/datura-lj/git-fork-demo.git
$ git pull upstream master
场景二:A和B有依赖。但是B代码还没Pull request到Master。
方法一:
直接从B远程仓库拉取代码。
$ git pull https://github.com/B/datura-lj/git-fork-demo.git master
方法二:
给A添加B的远程仓库
$ git remote add B https://github.com/B/datura-lj/git-fork-demo.git
$ pull B master