上篇说了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. socket客户端怎么判断http响应数据的结束

    前言 原文地址:https://blog.csdn.net/nimasike/article/details/81122784 http连接 短连接 定义:http头不包含Connection: Ke ...

  2. visual studio中配置opencv

    第1步附加包含目录:H:\software\programming\opencv\opencv\build\include 第2步附加库目录:H:\software\programming\openc ...

  3. java ThreadGroup源码分析

    使用: import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction; public class Test { public s ...

  4. APIO2019 题解

    APIO2019 题解 T1 奇怪装置 题目传送门 https://loj.ac/problem/3144 题解 很容易发现,这个东西一定会形成一个环.我们只需要求出环的长度就解决了一切问题. 设环的 ...

  5. 【vue-cli 3.0】 vue.config.js配置 - 路径别名

    如何配置vue-cli 3中vue.config.js的路径别名? 前段时间更新电脑重装了一下vue-cli,发现了vue-cli已经更新到3.0版.用来搭建项目后发现简化了很多,而且配置文件现在可以 ...

  6. BZOJ2160 拉拉队排练 PAM

    题意简述 询问一个串中所有奇回文按照长度降序排列,前k个奇回文的长度乘积. 做法 回文自动机(PAM)模板题. 维护每个回文自动机的结点回文串出现次数,跳fail得到每个长度的出现次数,双关键字排序后 ...

  7. eclipse中export 的jar file与 runnable jar file的区别

    (1)直接运行 .class的方法     java  -cp .  com.guangfa.demo1  , 不用加.class后缀 .-cp 是 -classpath 缩写,是指定类运行所依赖其他 ...

  8. Python---面向对象编程---自定义列表和集合操作类

    一.定义一个列表的操作类Listinfo 包括的方法 1.列表元素添加:add_key()  添加的必须是数字或者是字符串 2.列表元素取值:get_key() 3.列表合并:update_list( ...

  9. vue制作分页

    怎么制作分页?得先把思路路通顺了才可以. 我制作过程中遇到3个问题: 1,问:制作分页需要什么数据?怎么关联起来?       答:分页数据内容包含几部分, 1,当前是第几页?或则说当前默认是第几页. ...

  10. luogu 4147 玉蟾宫 悬线DP

    Code: #include<bits/stdc++.h> using namespace std; #define setIO(s) freopen(s".in",& ...