git解决冲突

第二篇:版本控制git之分支

走远了吗. 提交于 2019-12-22 05:19:13
有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。 分支操作 1、git branch 查看所有分支 2、git branch name 创建分支 Git 是怎么创建新分支的呢? 很简单,它只是为你创建了一个可以移动的新的指针。 比如,创建一个 testing 分支, 你需要使用 git branch 命令: $ git branch testing 3、git checkout name 切换分支 要切换到一个已存在的分支,你需要使用 git checkout 命令。 我们现在切换到新创建的 testing 分支去: $ git checkout testing 创建一个新的分支,并切换到刚创建的这个分支中,一条命令搞定: $ git checkout -b dev Switched to a new branch 'dev' git checkout 命令加上

版本控制Git

非 Y 不嫁゛ 提交于 2019-12-21 19:19:08
文章目录 版本控制系统: 版本控制软件 分布式版本控制 部署Git服务器 客户端测试(192.168.2.200作为客户端主机) HEAD指针操作 Git分支操作 Git服务器形式 版本控制系统: 集中式版本系统 – 开发者之间共同用一个仓库(repository) – 所有操作需要联网 分布式版本控制系统 – 每个开发者都是一个仓库的完整克隆,每个都是服务器 – 支持断网操作 版本控制软件 集中式版本控制软件 – CVS – SVN (Subversion) 分布式版本控制软件 – Git – BitKeeper (收费) 分布式版本控制 Git基本概念 – Git仓库: 保存所有数据的地方 – 工作区: 从仓库中提出的文件,放在磁盘上提供你使用或修改 – 暂存区: 就是一个文件,索引文件,保存了下次讲提交的文件列表信息 部署Git服务器 安装Git软件 #yum -y install git 初始化一个空仓库 #mkdir /var/git #git init /var/git/project --bare #ls /var/git/project 客户端测试(192.168.2.200作为客户端主机) 使用git常用指令列表如表-1所示。 表-1 git常用指令列表 clone克隆服务器仓库到本地。 [root@web2 ~]# yum -y install git

从git的问题模型理解git(三)

喜欢而已 提交于 2019-12-19 00:56:51
目录:     问题记录     正文 问题记录: 问题概述: 1. 图中有两个分支 , master , dev分支 , 如果master分支和dev分支合并 , 会不会产生冲突 ? 如何才能避免冲突呢? 避免冲突的规则是什么呢 ? ? 2. 图中master分支有4个commit值 , dev分支有2个commit值. 正文 本文的知识点涉及到以下两篇文章的内容: https://blog.csdn.net/qq_44160357/article/details/103548128 https://blog.csdn.net/qq_44160357/article/details/103568122 解析一: 1. 在master分支和dev分支上的修改都是根据base文件的内容为基础进行修改. 2. 同时首先git的区分文件变化的最细粒度是line行 , 不是单词更不是字母. 1. master分支和deV分支来进行合并 , master指向 commit值为21cecd , dev指向 commit值为56c17e。如果要 进行合并 , 此时是不会产生冲突的 , 为什么呢 ? 在 maste分支上有4个 commit值 , dev分支上有2个 commit值 , 两个分支进行合并 , 是把21ced的内容和56c17e的内容进行合并 , 在

从git的问题模型理解git(二)

江枫思渺然 提交于 2019-12-18 03:22:34
紧跟上一篇文章: https://blog.csdn.net/qq_44160357/article/details/103548128 1.通过上一篇知道 : 两个commit.add到同一个gap. 那么不同的操作顺序最终结果不同. 这两个commit是conflict(冲突). 两个commit.当删除第n行或者在第n行末尾添加新内容或者把第n行替换成新内容或者在第n行上把该行的内容删除一部分时 , 只留下一部分时 , 这一行本身和这一行前后的gap都被被锁定 --- - - 可以认为时被污染的范围之内. 此时在本行的前后面不能继续删除以及不能在末尾添加新内容以及在本行的前面或者后面不能添加一行新内容. 这样会产生冲突. 上一篇有个问题记录, 本文继续根据实验结论来解决这个问题记录: 为什么会产生冲突??? 根据实验再次验证出来的(如果有不正确的地方,欢迎指正.) 解析一: 1. base文件(基地文件). 从图中可以看出base文件为aa.txt其内容为a. 图中有两个分支 , maste分支和dev分支 , 在master分支和dev分支上的修改都是根据base文件的内容为基础进行修改. 2. 首先git的区分文件变化的最细粒度是line行 , 不是单词更不是字母 , 当base文件的行数为1行时 , 如果对第一行内容进行修改

sourcetree的使用方法

落爺英雄遲暮 提交于 2019-12-12 13:24:18
之前在协同开发中遇到过这样的一个问题,在使用git合并代码时会覆盖掉其他同事的代码,刚开始接触的时候用的是命令行,后台开始用IDEA自带的git插件,今天第一次用到SourceTree,操作起来挺方便的! 一 、SourceTree简介 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。 二、下载安装SourceTree步骤 1、下载地址: https://www.sourcetreeapp.com/ ,该版本是中文的 下载完成后可以进行安装。 2、安装SourceTree 安装首界面 点击,Next 点击“install”,安装完成后,打开sourcetree,点击“user an existing account”,如图 注意:1使用谷歌帐号登录即可,前提是你必须可以上谷歌才可以。 GOOGLE帐号登录完成之后,如图: 此处无需设置,直接点击“跳过初始设置”即可。 登录注册成功后,弹出设置puttykey的界面,点击“取消”即可。 点击“取消”按钮,弹出如下提示框: 此时进入到sourcetree的主界面,现在就可以使用sourcetree啦。 三、集成文件对比插件

Git 安装使用以及命令详解

北城余情 提交于 2019-12-11 00:05:41
一、简介及下载安装 Git是目前世界上最先进的分布式版本控制系统 作者 Linus Torvalds(林纳斯·托瓦兹) 关于git的发展史感兴趣可以自行百度,这里不再详细描述,接下来直接开撸 下载地址: https://git-scm.com/downloads 下载对应os版本等即可 按照提示选择默认配置下一步,完成即可。 二、本地仓库配置及相关操作 安装完成后,还需要最后一步设置,在命令行输入如下: zhanh247@DESKTOP-5IG8MJC MINGW32 /e/git-home/home1 $ git config --global user.name "zhanh247" zhanh247@DESKTOP-5IG8MJC MINGW32 /e/git-home/home1 $ git config --global user.email "77366xxxx@qq.com" Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。 C:\Users\admin路径下的.gitconfig文件里面可以看到 --global 表示全局属性,所有的git项目都会共用属性 关于GIT的开发流程,我们可以用如下图来简单描绘 下面正式进入git相关操作及常用命令 git init 在项目文件夹内初始化本地仓库 git status 查看当前目录下的文件状态 git

Git 版本控制

你。 提交于 2019-12-09 09:08:37
简介: Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 特点: 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。 下图是经典的git开发过程。 Git的功能特性: 从一般开发者的角度来看,git有以下功能: 1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。 2、在自己的机器上根据不同的开发目的,创建分支,修改代码。 3、在单机上自己创建的分支上提交代码。 4、在单机上合并分支。 5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。 6、生成补丁(patch),把补丁发送给主开发者。 7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。 8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。 从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能: 1

git常用命令

爱⌒轻易说出口 提交于 2019-12-09 00:59:28
安装git linux系统安装 sudo yum install git 如果是基于Debian的发行版,即Ubuntu系统 sudo apt-get install git mac系统安装 mac一般自带git 如果没有可到git官网进行下载: 点击跳转官网下载安装包 直接下一步就可以。。。安装完成后,打开终端,输入git --version,即可显示版本。表示安装成功。 windows系统安装 到git官网进行下载: 点击跳转官网下载安装包 直接下一步,可选择安装盘符。。。 安装完成后,点击右键会有Git Bash Here,点击后弹出命令行窗口,输入git --version,即可显示版本。表示安装成功。 git仓库的划分 Workspace:工作区,就是你在电脑里能看到的目录。 Index / Stage:暂存区,一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。通过add命令将工作区内容添加到暂存区。 .git是我们初始化目录时git自动创建的一个隐藏目录,里面存放的是我们所有的版本信息。勿动!!! Repository:仓库区(或本地仓库),工作区有一个隐藏目录.git。通过commit命令将暂存区内容添加到仓库区。 Remote:远程仓库。通过push命令将暂存区的内容提交到远程仓库。

Git使用

回眸只為那壹抹淺笑 提交于 2019-12-06 14:10:04
一、Git简介 Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。 图为git开发过程: 1、Git的功能特性 从一般开发者的角度来看,git有以下功能: 从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。 在自己的机器上根据不同的开发目的,创建分支,修改代码。 在单机上自己创建的分支上提交代码。 在单机上合并分支。 把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。 生成补丁(patch),把补丁发送给主开发者。 看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。 一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。 从主开发者的角度看,git有以下功能: 查看邮件或者通过其它方式查看一般开发者的提交状态。 打上补丁,解决冲突(可以自己解决

Git笔记

徘徊边缘 提交于 2019-12-06 13:03:31
Git笔记 Git直接记录快照,而非差异比较,这样Git值关注修改的文件,没有修改的文件,Git不再重新存储该文件,而只是保留一个链接指向之前存储的文件,Git对待数据更像是个快照流。 Git很多情况使用哈希值,即Git数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名。 三种状态 已提交 committed:数据已经安全的保存到本地数据库中了 已修改 modified:修改了文件,但还没有保存到数据库中 已暂存 staged:对一个已修改文件的当前保本做了标记,使之包含在下次提交的快照中。 基本的 Git 工作流程如下: 在工作目录中修改文件。 暂存文件,将文件的快照放入暂存区域。 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。 ​ 大型项目项目管理的一种思路:多人项目,本地在提交时往往不推荐使用pull 来拉去远端仓库中最新的代码到本地仓库中更新,原因是如果远端仓库的代码被其他人更改过,再pull时会出现冲突的情况(例如本地修改A.java,远端也有人将修改过的A.java上传到远端仓库中,这样两个A.java就不是一个,所以会产生了冲突),这样还是需要一步一步解决冲突,最佳做法是,再建一个新文件夹将远端仓库代码pull到本地,通过第三方的比差分代码软件来查看差分,然后自己手动合并,之后再push到远端仓库。 注意:理解上需要注意的地方