一 引言

这一篇文章还是记录我在杭州工作的总结。

我刚来公司的时候,对Git的使用很头痛,因为在学校里面很少用这个东西,即使用,一般也只有一个分支,不会出现代码冲突和代码合并的情况。但是公司里面一个项目组有那么多的人,无法避免代码冲突和合并。从开始的战战兢兢到后来教新人使用Git,也算是一个成长吧,记录一下我总结的使用方法。

二 关于冲突

公司里面用的是GitLab,其实和GitHub是一个道理。在团队协作时,合并代码的过程中出现冲突时非常正常的一件事,并不是错误。所以也不要害怕冲突,更不能试图掩盖掉冲突。我们知道一般一个项目会有很多的文件,包括源代码,文档等,冲突的根源是两个Git账号对同一个文件做了修改,也就是说,如果你和同事修改或者新增的不是同一个文件,并不会产生冲突。

三 没有冲突时的代码提交流程

在大部分时候,团队协作不会产生冲突,因为每个人负责的模块不一样,不会修改同一个文件。

一般一个项目有三类分支,master分支:项目上线的时候用的,develop分支:所有开发人员共有的分支,以及开发人员自己的分支,像我的一般就是xiajun

先设定一个情景,比如你昨晚下班的时候提交了代码,并且和同事的代码合并过了,然后今天上午你又写了很多代码,到了午饭时间,你准备提交新的代码。你需要按照以下步骤进行。

A 查看你在哪个分支,切换到xiajun分支(即自己名字命名的分支):

B git add 你要提交的文件或者文件夹。作用是将修改提交到暂存区,比如我们修改了根目录下的 file3.txt 和 dir2 目录下的 dir2_file2.txt:

C git commit
提交信息。将暂存区里面的内容提交到本地仓库,即你本机的仓库。提交信息一般用英文。

D 拉取远程develop分支的代码,因为你的同事在上午的时候可能修改了develop的代码:

上午有一个同事在根目录下面加了一个file2.txt,因为和我们修改的不是一个文件,所以没有冲突

E 使用git status查看提交哪些文件修改了没有提交:

这一步是必做的,防止有代码的修改,而忘了提交。

F 将代码推到名字为xiajun的远程分支:

G 在浏览器上进行代码的合并:

打开GitHub:

点击上面的按钮:

点击上面的按钮,要注意选择好源分支和目标分支,源分支是xiajun,目标分支是develop。

上面的提示告诉我们这次的合并没有冲突。点击绿色的按钮:

写好合并信息后,就可以Confirm merge了。然后我们可以去develop分支查看一下自己的修改是否合并了过去:

上面的乱码就是我这次提交的内容。

这个过程的分支的流程大致是:远程的develop -> 本地的xiajun -> 远程的xiajun -> 远程的develop

四 有冲突时的代码提交流程

冲突会在两个地方发生,一是在D那一步,一是在G那一步,D处理起来比较麻烦。

所有流程和上面一模一样,除了D这里要处理一下冲突:

比如同事在file2.txt里面加了一些东西(原来只有一行中文):

而你直接修改了file2.txt:

试图从develop分支拉取代码:

提示我们有冲突,怎么办呢?如果你本来不应该修改这个文件,那就直接拷贝develop中的file2.txt的内容覆盖掉你的。如果你也需要修改这个文件,那就找同事商量。

假设是第一种,我们从浏览器拷贝develop分支的file2.txt的内容到磁盘上的file2.txt,然后重新提交一下这个有冲突的文件:

后面的步骤和上面三里面的内容一样。

五 几个需要注意的地方

1 除了技术Leader以外,一般任何人都不可以动master分支

2 推到远程分支以前,一定要用git status查看自己是否提交了所有修改的内容,没有做这一步可能会忘了提交一些内容,估计Leader会锤你一顿

3 冲突不知道怎么处理的情况下,和与你冲突的同事商量,不能随便冲掉别人的代码

Git在商业项目中的使用流程的更多相关文章

  1. AppScan在项目中的使用流程

    AppScan在项目中的使用流程 http://www.docin.com/p-829022229.html

  2. git 在 A 项目中引用 B 项目

    git 在 A 项目中引用 B 项目   场景: 需要在项目calcDLL(http://XXX/XXXA.git) 中 引用 项目libindex(http://XXX/XXXB.git). 解决方 ...

  3. git分支在项目中管理

    实际项目中如何使用Git做分支管理 2018年06月24日 18:08:24 ShuSheng007 阅读数:9241   版权声明: https://blog.csdn.net/ShuSheng00 ...

  4. salesforce零基础学习(九十九)Git 在salesforce项目中的应用(vs code篇)

    本篇参考: https://code.visualstudio.com/docs/editor/versioncontrol https://git-scm.com/doc https://git-s ...

  5. 【开发工具】-- IDEA集成Git在实际项目中的运用

    1.企业实际项目中Git的使用 在实际的企业项目开发中,我们一般Java的项目在公司都有自己的局域网代码仓库,仓库上存放着很多的项目.以我工作过的公司如华为的项目,一般是存放在企业内部的CodeHub ...

  6. Git 在小团队中的管理流程(转)

    目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍 ...

  7. Git 在小团队中的管理流程

    目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍 ...

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

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

  9. web项目中的执行流程参数传递详解

    还是从这个图开始讲解: struts2中有一个存放数据的中心:值栈.(值栈里面有map和对象栈) 首先:值栈的作用范围是一个请求:request作用域(一个请求是代表的一个过程,即页面点击到数据返回到 ...

随机推荐

  1. Vue(day1)

    一.起步 <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/v ...

  2. firefox中遇到的offsetX的问题

    项目中遇到一个问题,滚轮缩放或鼠标移动svg的时候,当鼠标放置在svg元素上时,firefox浏览器中的offsetX和offsetY是不准确的,导致缩放和移动会产生便宜,其实问题不是firefox计 ...

  3. [Swift]LeetCode462. 最少移动次数使数组元素相等 II | Minimum Moves to Equal Array Elements II

    Given a non-empty integer array, find the minimum number of moves required to make all array element ...

  4. [Swift]LeetCode581. 最短无序连续子数组 | Shortest Unsorted Continuous Subarray

    Given an integer array, you need to find one continuous subarray that if you only sort this subarray ...

  5. controller分支实现前台显示弹框同时转发

    controller分支实现前台显示弹框,前台不需要进行什么操作,  前台请求后台的分支即可. controller层(标红的地方是(alert('账号或密码错误!请重新输入!!!!')        ...

  6. spark对elasticsearch增删查改

    增 新建一个 dataframe ,插入到索引 _index/_type ,直接调用 saveToEs ,让 _id 为自己设定的 id: import org.elasticsearch.spark ...

  7. 【WebAPI No.4】Swagger实现API文档功能

    介绍: Swagger也称为Open API,Swagger从API文档中手动完成工作,并提供一系列用于生成,可视化和维护API文档的解决方案.简单的说就是一款让你更好的书写API文档的框架. 我们为 ...

  8. 从锅炉工到AI专家(7)

    说说计划 不知不觉写到了第七篇,理一下思路: 学会基本的概念,了解什么是什么不是,当前的位置在哪,要去哪.这是第一篇希望做到的.同时第一篇和第二篇的开始部分,非常谨慎的考虑了非IT专业的读者.希望借此 ...

  9. 可视化面板LogDashboard使用log4net源

    logdashboard现已支持log4net文件源,本示例源码在 https://github.com/liangshiw/LogDashboard/tree/master/samples/UseL ...

  10. 15-Flink实战项目之实时热销排行

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...