一般的操作流程

1.pull

王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服务器上了。

王小坤一直在做设备驱动的相关工作,昨天也刚刚修改了driver.c文件中的几个函数,加班太晚就只是commit了一下,没push到服务器。今天早上听说张大炮已经把数据库读写的api改了,那么现在王小坤直接推到服务器,是推送不上去的,因为张大炮修改的那部分代码王小坤本地并没有,而王小坤本地修改的driver.c服务器的仓库也没有,所有王小坤必须先从服务器上最新版本的代码下载到自己本地的方库中,合并两人的代码才能push到服务器。于是执行下面的命令:

git pull

2.merge

pull命令是下载与合并的双重含义。如果没什么问题会自动合并,然而,事情没这么简单:

remote: Enumerating objects: 5, done.

remote: Counting objects:100% (5/5), done.

remote: Compressing objects:100% (3/3), done.

remote: Total3 (delta 0), reused 0 (delta 0)

Unpacking objects:100% (3/3), done.

From https://gitee.com/feipeng8848/Demo

35da8e7..43f4744 master -> origin/master

Auto-merging Main.c

CONFLICT (content): Merge conflictinMain.c

Automatic merge failed; fix conflicts andthen commit the result.

由于王小坤本地的代码还是老版本的read(),所以与张大炮最新的代码对比是同一文件的同一处修改,git会提示自动merge失败(上面是pull命令执行之后的提示,最后一行提示自动合并失败),因为有冲突,git没法确定到底用哪一个,这就需要手动merge。由于王小坤已经按照Git学习笔记---(2)在本地配置了kdiff3软件,那这样就方便多了,直接输入

git mergetool

自动打开kdiff3手动合并有冲突的文件。关于kdiff3的一些基本操作请看上一章:Git学习笔记---(2)

当然,合并到这里并没有结束,因为万恶的张大炮竟然觉得read()看起来不如Read()舒服,就把read()改成Read(),这可苦了王小坤,所有之前调用read()的地方都要改成Read()才不会导致系统出问题。

3.commit

当王小坤做完了所有的合并工作之后执行了下面的语句看看git是什么进度了

On branch master

Your branch and'origin/master'have diverged,

and have1 and 1different commits each, respectively.

(use"git pull"to merge the remote branch into yours)

All conflicts fixed but you are still merging.

(use"git commit"to conclude merge)

Changes to be committed:

addfile: serialport.c

很好,合并之后git都自动给add到暂存库(stage或index)中了。然后commit一下,commit的说明就写“合并张大炮对read函数的修改”,这个时候王小坤昨晚的commit和张大炮昨天的所有的commit就都合并在一起了。

4.push

最后push到服务器上去。

git push origin master

张大炮此时想要最新的代码只需要再pull一下就可以了。

git serialtool_Git学习笔记---协作的一般流程相关推荐

  1. git的学习笔记(二):git远程操作

    git的学习笔记(一):git本地操作 1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目 ...

  2. Git 个人学习笔记及心得

    作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...

  3. git/github学习笔记

    原文地址为: git/github学习笔记 请移步到:http://www.testclass.net/git/ ----- 我重新对git/github教程进行了编排和整理. 1. git 版本控制 ...

  4. 《Got Git》学习笔记(一)

    <Got Git>学习笔记(一) 最近想对自己的代码和文档进行归档整理,需要一个版本控制系统来进行 处理.自然而然的想到了目前流行的GitHub. GitHub,是一个面向开源及私有软件项 ...

  5. Learn Git Branching 学习笔记(移动提交记录篇)

    目录 一.移动提交记录篇 1.Git Cherry-pick 2.交互式rebase Git用法高级篇在上一篇文章中Learn Git Branching 学习笔记(高级篇)_流年--by gone的 ...

  6. Learn Git Branching 学习笔记(高级话题篇)

    目录 一.高级话题篇 1.多分支rebase 2.选择父提交记录 3.纠缠不清的分支 Git的一些技术.技巧与贴士集合在上一篇文章中 Learn Git Branching 学习笔记(Git 技术.技 ...

  7. Git工作流学习笔记

    Git工作流指南 分布式版本控制系统 观看笔记:https://www.bilibili.com/video/BV1dW411U7ER?p=1 老师笔记: http://www.funtl.com/z ...

  8. 廖雪峰Git教程学习笔记

    廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...

  9. Git剑客学习笔记-待完善

    Git 学习 前言 一.Git基础 01|安装 安装成功后,打开powershell窗口, 检查 git 版本 PS C:\Users\lvzb3> git --version git vers ...

最新文章

  1. Swift学习——Swift解释特定的基础(七)
  2. 解决了,短视频APP开发者最头疼的苹果上架相关问题
  3. C shell命令行解释器
  4. 02-JDBC学习手册:JDBC编程步骤【重点重点】
  5. CF1245D Shichikuji and Power Grid
  6. 一文理解Netty模型架构
  7. kotlin 两个数字相加_Kotlin程序交换两个数字
  8. Spark内核解析2
  9. 线程间通信 1全局变量2当前主对话框指针3发消息方式4 AfxBeginThread的返回值(为CWinThread类型的指针)5AfxGetApp...
  10. 关于iframe跨域实践(转载)
  11. 幸运的袋子(深度优先遍历(Depth First Search,DFS))
  12. 避坑!!!Matlab中文版下载地址、详细讲解Matlab中文版的下载、安装
  13. 项目进度管理之三点估算法
  14. VC 读取usb相机
  15. MessageQueue的使用方法(一)
  16. 1113 小胖子的时钟【水题】
  17. canvas流星雨网页h5动画
  18. Javascript 将 jpeg、png转换为webp
  19. 如何进行数据可视化制图
  20. 以人工智能和大数据为核心的第四次工业革命已经悄然而至

热门文章

  1. 使用TFS存储项目文档
  2. Huntor中国CRM评估报告连载(一)
  3. 内联函数 error LNK2001: unresolved external symbol
  4. Button按钮多行显示的实现方法
  5. 搞不定的C语言--extern的作用
  6. java启动servlet_Java Servlet 运行原理分析
  7. TS Decorator
  8. Vue (响应式原理-模拟-1-vue)
  9. 4023-基于双向链表的双向冒泡排序法
  10. 分离链接法的删除操作函数