git的一些基本操作(中)

168 阅读2分钟

这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战

前言: 在我们日常项目开发过程中,往往leader会根据功能模块不同,来进行“任务划分”。每个人开发过程中会与其他人有依赖关系,也就是协同开发。
下面我将模拟一个项目需求,来实例化一下开发流程
我们使用github作为仓库

举例现在有A和B两个人:

  1. Fork他的仓库:这是GitHub操作,这个操作会复制A的仓库(包括文件,提交历史,issues,和其余一些东西)。复制后的仓库在你自己的GitHub帐号下。目前,你本地计算机对这个仓库没有任何操作。

  2. Clone你的仓库:这是Git操作。使用该操作让你发送"请给我发一份我仓库的复制文件"的命令给GitHub。现在这个仓库就会存储在你本地计算机上。

  3. 更新某些文件:现在,你可以在任何程序或者环境下更新仓库里的文件。

  4. 提交你的更改:这是Git操作。使用该操作让你发送"记录我的更改"的命令至GitHub。此操作只在你的本地计算机上完成。

  5. 将你的更改push到你的GitHub仓库:这是Git操作。使用该操作让你发送"这是我的修改"的信息给GitHub。Push操作不会自动完成,所以直到你做了push操作,GitHub才知道你的提交。

  6. 给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