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

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

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

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

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

 

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

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

git config --global user.name 'hello'
git config --global user.email '123@163.com'

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

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提示

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

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

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

git篇之二----团体项目中使用git的更多相关文章

  1. 在VS项目中通过GIT生成版本号作为编译版本号

    上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号.虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟(可能要归功于那段捣鼓 ROM 的时光),但少有 ...

  2. 使用Git Subtree在多个项目中共用同一个子项目

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8427796.html 场景一:已有一个大项目,需要把其中一部分内容独立出来作为共用子项目,被其他项目引用 一: ...

  3. salesforce零基础学习(一百一十二)项目中的零碎知识点小总结(四)

    本篇参考: https://trailblazer.salesforce.com/issues_view?id=a1p4V0000003znDQAQ https://salesforce.stacke ...

  4. [git]安装git-pylint-commit-hook提高python项目中的代码质量

    什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ...

  5. salesforce零基础学习(七十二)项目中的零碎知识点小总结(一)

    项目终于告一段落,虽然比较苦逼,不过也学到了好多知识,总结一下,以后当作参考. 一.visualforce标签中使用html相关的属性使用 曾经看文档没有看得仔细,导致开发的时候走了一些弯路.还好得到 ...

  6. 项目中的Git七步精髓

    项目中Git常用的七步操作: 1.git branch -a  查看所有分支 2.git checkout dev_yxq 如果冲突了,操作回退上一个版本, git status git checko ...

  7. 前端项目中使用git来做分支和合并分支,管理生产版本

    最近由于公司前端团队扩招,虽然小小的三四团队开发,但是也出现了好多问题.最让人揪心的是代码的管理问题:公司最近把版本控制工具从svn升级为git.前端H5组目前对git的使用还不是很熟悉,出现额多次覆 ...

  8. 项目中常用git命令操作指令(一般正常的话够用不够再看相关git命令)

    配置git1.首先在本地创建ssh key:ssh-keygen -t rsa -C "github上注册的邮箱" //(一路回车)2.进入c:/Users/xxxx_000/.s ...

  9. 两张图让git新手在项目中运用git命令行

    创建分支命令:    git branch (branchname) 切换分支命令:      git checkout (branchname) 当你切换分支的时候,Git 会用该分支的最后提交的快 ...

随机推荐

  1. 4、LayIM 开发者文档

    一.配置文档目录 1.好友列表状态 2.当前会话状态 3.查看群成员 4.业务暂无此必要 5.发送消息 6.接受消息 7.监听我主面板的在线状态 8.弹出申请好友面板(业务场景用于好友添加需申请) 9 ...

  2. 028-实现阿里云ESC多FLAT网络

    实现类似于阿里云ECS的网络结构,其效果为云主机拥有两块和两个不同的网络,一个网络是用于用于和外网连接,一个用于内网通信,但宿主机上至少有两个网卡,整体配置如下:1.在wmare里给宿主机添加一块网卡 ...

  3. 002-printf 命令用法

    printf 命令的用法,大部分结合awk命令使用 是格式化的输出的命令 %s 输入字符串 \n 换行 \t \r 回车键 [root@zabbix lianxi]# printf %s [root@ ...

  4. IsDate(expression)函数

    IsDate 函数 返回 Boolean 值指明某表达式是否可以转换为日期. IsDate(expression) expression 参数可以是任意可被识别为日期和时间的日期表达式或字符串表达式. ...

  5. Codeforces Round #573 (Div. 2) E. Tokitsukaze and Duel (博弈)

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  6. socket keepalive 服务端异常断线

    异常断线  客户端检测不到  没有重连

  7. Markdown的使用和计算机基础

    TOC] 一级标题 这不是开玩笑 你问我为什么? 粗的才好(滑稽) 什么!明明有人推我 ==一闪一闪亮晶晶== 我上面有人^人在这^ water?H~2~O(下标) hello world! hell ...

  8. 可决系数R^2和方差膨胀因子VIF

    然而很多时候,被筛选的特征在模型上线的预测效果并不理想,究其原因可能是由于特征筛选的偏差. 但还有一个显著的因素,就是选取特征之间之间可能存在高度的多重共线性,导致模型对测试集预测能力不佳. 为了在筛 ...

  9. Python私有变量(Private Variable)

    Variables can be private which can be useful on many occasions. A private variable can only be chang ...

  10. 阿里重磅开源全球首个批流一体机器学习平台Alink,Blink功能已全部贡献至Flink

    11月28日,Flink Forward Asia 2019 在北京国家会议中心召开,阿里在会上发布Flink 1.10版本功能前瞻,同时宣布基于Flink的机器学习算法平台Alink正式开源,这也是 ...