上篇说了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. PAT Basic 1024 科学计数法 (20 分) Advanced 1073 Scientific Notation (20 分)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...

  2. 使用pycharm编写自动化脚本

    1.:导入本地Python环境 2:安装Selenium 3:下来需要根据安装的浏览器版本,下载合适的chromedriver驱动程序. 4:接着需要将下载的chromedriver进行解压,并将文件 ...

  3. Educational Codeforces Round 68 (Rated for Div. 2) C. From S To T (字符串处理)

    C. From S To T time limit per test1 second memory limit per test256 megabytes inputstandard input ou ...

  4. STM32CubeMX FreeRTOS no definition for "osThreadGetState" 解决办法

    用STM32CubuMX默认加入的FreeRTOS默认配置eTaskGetState是禁止的 把该功能设为Enabled编译就不会出错了 IAR的编译器要勾选Allow VLA

  5. spring security基本知识(四) WebSecurity

    1.创建一个Filter   现在web.xml文档中声明一个filter class="org".springframework.web.filter.DelegatingFil ...

  6. Python四种实现单例模式的方法

    在这之前,先了解super()和__new__()方法 super()方法: 返回一个父类或兄弟类类型的代理对象,让你能够调用一些从继承过来的方法. 它有两个典型作用: a. 在单继承的类层次结构中, ...

  7. 快照方式备份MySQL数据库及举例

    快照方式备份MySQL数据库及举例 作者: 红豆殺 日期: 2011 年 03 月 17 日发表评论7条评论查看评论   一.创建逻辑卷 依照如下连接的文档创建一个逻辑卷 http://www.178 ...

  8. MongoDB之自动启动服务

    安装详细步骤请点我 为了能让NoSQLBooster for MongoDB连接的时候不报错,将mongodb添加到系统服务中. 在C:\Program Files\MongoDB\Server\3. ...

  9. linux运维、架构之路-MHA高可用方案

    一.软件介绍          MHA(master high   availability)目前是MySQL高可用方面是一个相对成熟的解决方案.在切换过程中,mha能做到0-30s内自动完成数据库的 ...

  10. oracle 11g 卸载 安装10g 成功(卸载oracle+清除注册表信息+清除oracle app文件)

    停用oracle服务:进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止 2 在开始菜单中,找到Universal Installer,运行Oracle Universal Ins ...