Git开发流程整理

最近和Google一起开发,对git的工作流程有了更进一步的理解,记录一下。

一AVM为例

1.搭建工作环境

对于一个我们想要参与开发的Git项目。我们首先要做的是搭建一套完整的环境,以便于后续的开发管理。

可能有些同学和我当初一样,看到一个项目就先clone到本地,实际上这样也许自己改改是可以,但是真的合作开发是完全不行的。

首先我们应该需要fork一个仓库,作为自己的远程仓库,在git命令中,git push origin,其实就是将本地的代码传到自己的远程仓库,所以origin一般也指这个remote仓库。

而upstream,也就是那个我们fork的库,一般也叫上游仓库,如下图所示,那怎么理解这些东西呢?

 

我们看到的github项目,一般是一个公共的稳定的可靠的代码库,也就是我们fork的对象,我们最终希望是我们代码,融合进这个仓库。

但是我们不可能直接在这上面动手吧,因此,我们需要复制一份下来,用来自己开发、这便是fork的概念,也很好理解。

fork了之后,我们得到一个远程仓库,这个仓库呢,就是属于我们某个人的,但是远程仓库上很难写代码,也不好调试什么的,所以我们还需要把这份代码拿到本地,也就是我们的计算机上(local),进行真正的代码编写。(第一次拿下来,可以clone,之后可以使用pull和fetch的命令)

2.分支管理

我们进行开发时,一般会分模块发开,例如购买模块,消费模块等等。因此,对于一个模块的开发,我们往往会新建一个分支,在每个分支上专门针对性的进行开发。尽量不会去动主分支。

有时候需要新建一个干净的分支,有时候我们希望在远程仓库的某个分支上继续开发(远程仓库也有分支的概念)。

例如今天本地开发了购物模块,那工作完就上传至远程仓库的购物模块分支,明天要开发消费模块,那我就拉远程的消费模块下来开发。这样开发会非常简洁高效。

branch -a 

红色的代表远程的分支,绿色代表当前分支,白色的代表本地分支。

 

git checkout -b dev  origin/research-in-loop-filters  #创建一个叫dev的分支,该分支继承自远程仓库中的research-in-loop-filters
###
git add . 添加更新
git commit -m"xxx"注释更新
git push origin research-in-loop-filters 上传到远程仓库的 research-in-loop-filters分支

 

 3.MR(merge request)

 

当我们终于完成开发后,我们会向fork的仓库 ,提一个merge request,之后仓库的developer就会检查我们的代码是否可以更新。 如果更新是合理的,就会被成功merge。这样我们的代码就被接收了。


4.注意事项

  • 我们fork的仓库,可能也在更新,所以我们有时候要注意一下,不要光顾着自己开发,也要将上游仓库的更新拉取一下。
  • 对于我们的远程仓库,也应该采取MR的方式,保持一个干净的main分支,将各个模块的分支代码向main分支MR。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-07-13 17:26  魏晋南北朝  阅读(1412)  评论(0编辑  收藏  举报