使用Git进行代码版本管理及协同工作
Git简介:
git是一种较为先进的代码版本管理及协同工作平台,采用分布式文件块存储:
1. 分布式: 代码保存在所有协同成员的计算机上,网速较差时依然可用;而传统的集中式代码版本管理系统则较难脱离网络运行。
2. 文件块: 直接以文件块保存整个最新文档,版本提交及恢复速度快:而传统的增量式代码版本管理系统则在每次提交及恢复时都需要对所有的增量进行求和,速度慢。
3. 基于以上两点,Git不仅可以采用传统的“星形”工作模式,也可以有多重不同模式。
Git的几个概念:
1. 仓库(Repositories),类似我们生活中的仓库,存储东西,在这是网络或者本地实际存放代码的地方,同一个仓库可存多个项目。
2. 参照(References),可以看做是指向文件块中特定代码版本的指针,可沿代码版本有向图进行向前(一般指提交操作Commit),向后(一般是恢复操作Restore), 跳转(不同分支间的切换Switch)。
3.分支(Branch),一般是为了进行代码调试或概念开发,从主要的开发版本中分离出一个副版本,并在此基础上进行修改,(实际中我们可以分离出来进行各自的模块开发)使版本有向图呈现分支状态。
4.合并(Merge), 一般是为了将代码调试或概念开发分支的代码加入到主要版本中,将对两部分的代码进行比较:
a) 先向后回朔两个分支的最近公共节点,通过与最近的公共节点进行比较,分析两个分支各对哪些文件进行了修改(因为是文件块,所以需要对两个版本的文件求差,传统模式则需要对两个版本的记录进行求和)
b)合并最容易产生的错误(冲突)如果某一个文件在 两个版本中均被修改过,则视为“冲突”,这时我们解决的办法是需要人工手动调整其中一个版本,这里推荐使用一个工具(BCompare)
可以快速明了的看出修改的地方; 否则,即自动将两个版本分别修改后的部分,未修改的部分合并成一个新的版本。
5.标签(Tag),不移动的参照(指针),以标记特殊的代码版本副本,比如说项目的里程碑等
6.Push,Fetch等操作,在实际开发中我们常常使用(SourceTree)
客户端管理git,进行远程fetch工程,代码更新,push是将本地仓库修改的东西提交至远程仓库,一般我们的操作更新文件至远程服务器是:先获取远程最新的代码,以免提交时报错冲突,然后在拉取代码,至此保证这是最新的代码。 然后选中你所需要更新的代码文件,文件夹提交(Commit),写好注释,最后进行推送至相应的库,代码分支上。这样就不会报错以及冲突。
使用Git进行代码版本管理及协同工作的更多相关文章
- 基于git的代码版本管理规范及流程-简版
基于git的简单实用的版本管理规范及流程,包括:代码库的分布.人员角色的划分.代码提交合并流程.代码冲突处理.分支管理. 代码库分类 根据代码库分布的位置及作用,分为以下几类: 主库:位于服务端,所有 ...
- 代码版本管理/SVN/Git
代码版本管理 一.SVN 1.SVN diff(create patch) 遇到了一个问题: Index: 通信协议.doc ===================================== ...
- Git 结合Git使用Bitbucket进行代码版本管理流程规范与实践
结合Git使用Bitbucket进行代码版本管理流程规范与实践 By:授客 QQ:1033553122 目录 目录 1 一. 测试环境 2 二. 新建项目 2 三. 新建公有版本库 3 四. ...
- 实验一 GIT 代码版本管理
实验一 GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...
- 实验一 GIT 代码版本管理
实验一 GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ini ...
- 实验一Git代码版本管理
GIT代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git init git ...
- 实验一  GIT 代码版本管理
实验一 GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...
- 软件工程实验一 Git代码版本管理
实验一 GIT 代码版本管理 一.实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 二.实验内容: 1)安装git: 2)初始配置git ,gi ...
- Jenkins获取git tags代码
配置Jenkins获取git tag代码的方式其实方法很多,目前我使用比较多的主要是通过Git Parameter 来配置动态的获取最新tags代码,主要我们首先需要安装一下Git Parameter ...
随机推荐
- UWP 圆形菜单
用过Surface dial的童鞋们都很熟悉,当使用Dial的时候,那个圆形菜单很漂亮,那么我们在普通的uwp中是否也可以实现吗? 答案是肯定的. 其实这是来源于GayHub的一个开源项目,做的很不错 ...
- 笔记:Maven 项目目录结构
Maven提倡使用一个共同的标准目录结构,使开发人员能在熟悉了一个Maven工程后,对其他的Maven工程也能清晰了解.这样做也省去了很多设置的麻烦,以下的文档介绍是Maven希望的目录结构,并且也是 ...
- Vue解析五之mounted
在mounted获得vue的实例要加 this.$nextTick(function () { // 代码保证 this.$el 在 document 中 }) mounted: function ( ...
- 详细分析du和df的统计结果为什么不一样
今天有个人问我du和df的统计结果为什么会不同.给他解析了一番,后来想想还是写篇文章从原理上来分析分析. 我们常常使用du和df来获取目录或文件系统已占用空间的情况.但它们的统计结果是不一致的,大多数 ...
- Algorithm --> Dijkstra和Floyd最短路径算法
Dijkstra算法 一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必 ...
- 设计模式之 观察者模式详解(包含观察者模式JDK的漏洞以及事件驱动模型)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 本章我们讨论一个除前面的单例 ...
- 控制反转( IoC)和依赖注入(DI)
控制反转( IoC)和依赖注入(DI) tags: 容器 依赖注入 IOC DI 控制反转 引言:如果你看过一些框架的源码或者手册,像是laravel或者tp5之类的,应该会提到容器,依赖注入,控制反 ...
- openjudge(二)
强制类型转换的作用:按照规范输出.
- php 常用数据大全
一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...
- C语言第二次作业
一.PTA实验作业 题目1:7-1 计算分段函数[2] 1.实验代码 double x,y; scanf("%lf",&x); if (x>=0) { y=sqrt( ...