git篇之二----团体项目中使用git

上篇说了git的简单入门,本篇来说一下在团体项目中我们该如何简单使用git

一般来说,当我们进入公司之后,就前端项目而言,若是有多个同事共同开发一个系统,我们可能会每个人去负责各自的模块。

若是人员较多,我们可能会分的更细,每个人负责每个模块的什么功能。

假设现在我们写的当前模块下面的信息详情页面,然后另一个同事在写商品菜单列表页面,我们的页面本来是自己写的,那么每次往git上提交的时候是正常的且没有冲突的,不过在合并功能时,写商品菜单列表页的同事要跳转到我们的页面,他可能更改了一部分代码来实现这个逻辑并且将代码上传到git,那么我们再次往上推代码的时候可能就会存在合并冲突,因为我们的代码被别人更改过一部分。这时候就要解决冲突。

(在使用git时,我们若是需要用到别人的页面,最好是需要什么,比如传参之类,给这个同事打个招呼,让人家自己来改,我们使用就好,因为若是多个人同时使用这个部分,可能会引起很多冲突),接下来我们详细说明

 

第一步:拉取我们所需要开发维护的项目

进入公司之后,公司会给到一个项目的git(github,gitlab,gitee)地址,我们需要做的是先将git安装包安装好,然后输入个人配置信息

git config --global user.name 'hello'
git config --global user.email '[email protected]'

然后将我们的用户名发给管理人员,管理人员将我们拉入到项目里头,我们就可以克隆该项目了

git clone url

接下来,上图

 接下来我们具体解释这个git树以及关于git树的操作(功能开发,代码提交,合并,解决冲突,bug热修复)。个人较为喜欢webstorm,以其为例进行操作

首先我们我们需要记住一些常用的git命令:

git branch 分支名  // 新建分支

git checkout 分支名  // 切换到目标分支

git add *  // 提交本次所有修改

git commit -m  '本次提交说明' // 将本次所有修改储存到本地git仓库

git push  // 将本地仓库的提交推送(push)到远端git仓库

git pull  // 拉取当前分支最新代码

git pull origin 目标分支  // 拉去取目标分支最新代码,此举一般用来在进行功能合并时操作,大多数会有代码冲突,此时就需要我们解决代码冲突

git stash  // 假设我们正在修改一个当前分支bug,另一个分支上出现了紧急问题需要修复,本次更改还没完成不想提交,我们可以用这个命令,将本次修改进行暂存,然后就可以切换到另一个分支进行紧急修复,完成之后切换回本地分支

git stash pop  // 这个命令是我们切换回本地分支后,将刚才暂存区的代码释放出来,并且删除上一次的暂存

git stash list  // 此命令是用来查看当前分支暂存区的暂存修改list

git log  // 此命令是查看git提交日志,每一条提交日志会有一个对应编号,我们可以利用此编号进行代码回滚,回滚时我们只需要拿到编号的前6-8位即可

git reset --hard 某次的提交编号  // 回滚到某次的提交,回滚是我们代码出现了不可修复的问题时,我们利用提交编号回滚到最近一次较为稳定的版本。当然若是本地改崩了也不好进行回滚,最直接的办法就是重新拉取一下项目git clone url

1:功能开发

  当我们将代码clone到本地之后,拿到的应该是dev分支的代码(其他分支也无所谓,切换就好)。然后我们需要做的是确定我们的模块主分支是哪一个(假设为branch_a该模块主分支)。

  接下来需要做:

  a:查看当前所在分支 两种方式

  1)可通过git命令查看

git branch

  

   2)编辑器右下角也有提示

  

   b:切换到我们的模块主分支(branch_a)两种方式

(切换分支命令 git checkout ** 需了解,只要是目前git仓库里头有的分支,也就是远端已经存在的分支,我们都可以切换过去,也就是我们是可以切换到别人的分支的)

  1)git命令

git checkout branch_a // 切换到主模块分支

git pull // 拉取最新的主模块分支代码,在最新的主模块分支上新建分支可尽量减少冲突,不然后期提交合并肯定会有大量冲突

git branch feature_a_a // 在当前主模块分支下面新建feature_a_a功能分支

git checkout feature_a_a // 切换到该新建的功能分支下面进行功能开发

git branch // 切换完成之后查看所在分支

下面的拉取该分支最新代码,若是已经是最新的则就是下面这样,若不是最新的,则拉取之后会有很多的修改

 

 

 我们已经切换到了自己的功能分支下面,接下来就是具体开发了

  2)webstorm图形界面操作

  当我们首次拉取项目代码时,本地IDE还没有远端的分支记录,即切换到其他分支我们需要使用git命令来进行切换,如上面。

  当然,在我们本地新建的分支或者是我们已经切换过的远端分支,此时我们IDE是已经记录的,即可以通过IDE图形化界面进行切换,如下图所示:

  ①:webstorm右下角有一个git,我们点击他即可

  

  ②:点击之后会出现我们已经使用过的分支记录,进行切换非常容易,如下,我们将从分支feature_a_a切换到branch_a。

  点击我们要切换到的目标分支,选择checkout即可切换成功,完成之后查看右下角的分支名称是否是正确的,切换已经完成,接下来便是具体功能开发了

  

  b:实际开发,我们现在在feature_a_a该功能分支上,做一个简单的项目修改,然后进行提交

   在src文件夹下新建branch_test_commit文件夹,然后在该文件夹下新建branch01.vue。基于webstorm,当我们有新的修改时,它会弹窗提醒是否将本次提交添加到git,点击记住并且add,以后有新的修改便会自己添加到git中。进行简单的修改之后我们进行提交

  

命令式提交

git add *

git commit -m '第一次git新增提交,进行简单的功能开发'

git push

图形界面提交---->鼠标右击该项目

 

 

 

 

 完成提交之后编辑器右下角有一个push success提示,说明提交成功,在码云上我们可以明显看到本次提交

 接下来我们进行代码合并,发送合并请求

首先我们需要拉取主模块分支branch_a代码,如下

 然后编辑器右上角有个git,我们点击红色圈主的这个,会弹出一个弹窗

 选择merge以及stash

 若是有冲突,则会出现如下的样子,我们需要解决冲突(此处的冲突是我自己构造的,我在主模块也建了这个文件,然后让相同变量名的值不一样,做一个简单的冲突构造,都是branch01.vue,上面截图的文件命名有点失误)

 

 最终结果如下,点击apply

 解决完所有的冲突之后,也会有  All files are up-to-date提示

若是没有冲突则编辑器右下角会有如下提示

至此,冲突解决完成,接下来我们发送合并请求,如下

接下来填写信息,点击创建即可,我们的任务基本完成,后续暂且不讨论

 

猜你喜欢

转载自www.cnblogs.com/troublehuan/p/12011601.html