git篇之二----团体项目中使用git
上篇说了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 url1:功能开发
当我们将代码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的更多相关文章
- 在VS项目中通过GIT生成版本号作为编译版本号
上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号.虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟(可能要归功于那段捣鼓 ROM 的时光),但少有 ...
- 使用Git Subtree在多个项目中共用同一个子项目
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8427796.html 场景一:已有一个大项目,需要把其中一部分内容独立出来作为共用子项目,被其他项目引用 一: ...
- salesforce零基础学习(一百一十二)项目中的零碎知识点小总结(四)
本篇参考: https://trailblazer.salesforce.com/issues_view?id=a1p4V0000003znDQAQ https://salesforce.stacke ...
- [git]安装git-pylint-commit-hook提高python项目中的代码质量
什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ...
- salesforce零基础学习(七十二)项目中的零碎知识点小总结(一)
项目终于告一段落,虽然比较苦逼,不过也学到了好多知识,总结一下,以后当作参考. 一.visualforce标签中使用html相关的属性使用 曾经看文档没有看得仔细,导致开发的时候走了一些弯路.还好得到 ...
- 项目中的Git七步精髓
项目中Git常用的七步操作: 1.git branch -a 查看所有分支 2.git checkout dev_yxq 如果冲突了,操作回退上一个版本, git status git checko ...
- 前端项目中使用git来做分支和合并分支,管理生产版本
最近由于公司前端团队扩招,虽然小小的三四团队开发,但是也出现了好多问题.最让人揪心的是代码的管理问题:公司最近把版本控制工具从svn升级为git.前端H5组目前对git的使用还不是很熟悉,出现额多次覆 ...
- 项目中常用git命令操作指令(一般正常的话够用不够再看相关git命令)
配置git1.首先在本地创建ssh key:ssh-keygen -t rsa -C "github上注册的邮箱" //(一路回车)2.进入c:/Users/xxxx_000/.s ...
- 两张图让git新手在项目中运用git命令行
创建分支命令: git branch (branchname) 切换分支命令: git checkout (branchname) 当你切换分支的时候,Git 会用该分支的最后提交的快 ...
随机推荐
- C 调试 gdb常用命令
gdb常用命令: [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) b ...
- hdu 3530 单调队列最值
/** HDU 3530 单调队列的应用 题意: 给定一段序列,求出最长的一段子序列使得该子序列中最大最小只差x满足m<=x<=k. 解题思路: 建立两个单调队列分别递增和递减维护(头尾删 ...
- GUI学习之三十二—QLCDNumber学习总结
下面我们来总结一下QLCDNumber的用法 一.描述 QLCDNumber主要用来展示LCD样式的数字,他可以显示几乎任何大小的数字,可以显示十进制,十六进制,八进制或二进制数,也可以展示一些简单的 ...
- <转> thinkPHP的常用配置项2
'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符'TMPL_L_DELIM'=>'<{', //修改左定界符'TMPL_R_DELIM'=>'}> ...
- C++ GUI Qt4学习笔记04
本章将实现应用程序的功能,通过编写底层函数来完成之前的Spreadsheet程序,关于如何载入和保存文件,如何在内存中存储数据,如何实现剪贴板的操作以及如何向QTableWidget中添加对电子指标软 ...
- Python---进阶---logging---装饰器打印日志
#### logging - logging.debug - logging.info - logging.warning - logging.error - logging.critical --- ...
- B1011. A+B 和 C
题目描述 给定区间[-2^63, 2^63]内的三个整数A.B 和 C,请判断A+B是否大于C 输入格式 第一行给出正整数T(≤10),即测试用例的个数.随后给出T组测试用例,每组占一行,顺序给出A. ...
- 关于反射和动态代理和AOP
package Exercise.reflect; /** * 反射把java中所有的东西都当做对象,甚至是类的本身也作为一种对象,并把它作为Class的对象的实例: * 反射是把类.类的属性.方法都 ...
- [UVA160]Factors and Factorials 题解
前言 这道题目本身毫无技术含量珂言,但是输出格式珂以调一年 题解 这道题让我们求\(N!\)中每个质数的个数. 一种方法是直接模拟,枚举\(N!\)中的每个元素,然后暴力查看每个数含有有多少质数. 但 ...
- int转字符串 stringstream
1. 设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数,将答案按 “偶-奇-总” 的位序,排出得到新数.重复进行,最后会得到 123. #include<i ...






















