git<git rebase冲突解决>

git rebase 使用总结:

使用git rebase 修改以前已经提交的内容

比如要修改之前的commit的 hashcode为:187f869c9d54c9297d6b0b1b4ff47d2ec781a55e

1,git rebase 187f869c9d54c9297d6b0b1b4ff47d2ec781a55e^ --interactive

        --退回到要修改的commit的前一个点上,执行后,git会调用默认的vi编辑器显示commit到最新commit的所有记录,把我们要修改的那一项的首行的pick 改成edit。

2, git add <filepattern>

        --修改完我们要修改的内容后,利用git add 添加
3, git commit --amend

        --修改这个commit

4,git rebase --continue

        -- 提交修改后的commit 并且返回到原来的head 处

git rebase 冲突合并:

1,手动修改冲突(可以用git status查看冲突文件)

冲突产生后,文件系统中冲突了的文件(这里是test.txt)里面的内容会显示为类似下面这样:

a123

<<<<<<< HEAD

b789

=======

b45678910

>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc

c

其中:冲突标记<<<<<<< (7个<)与=======之间的内容是我的修改,=======与>>>>>>>之间的内容是别人的修改。

此时,还没有任何其它垃圾文件产生。

最简单的编辑冲突的办法,就是直接编辑冲突了的文件(test.txt),把冲突标记删掉,把冲突解决正确

2,git add  <文件名>

3,git rebase --continue

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一、基本

git rebase用于把一个分支的修改合并到当前分支。

假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。

$ git checkout -b mywork origin

假设远程分支"origin"已经有了2个提交,如图

现在我们在这个分支做一些修改,然后生成两个提交(commit).

$ vi file.txt

$ git commit

$ vi otherfile.txt

$ git commit

...

但是与此同时,有些人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉"了。

在这里,你可以用"pull"命令把"origin"分支上的修改拉下来并且和你的修改合并; 结果看起来就像一个新的"合并的提交"(merge commit):

但是,如果你想让"mywork"分支历史看起来像没有经过任何合并一样,你也许可以用 git rebase:

$ git checkout mywork

$ git rebase origin

这些命令会把你的"mywork"分支里的每个提交(commit)取消掉,并且把它们临时
保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把"mywork"分支更新
为最新的"origin"分支,最后把保存的这些补丁应用到"mywork"分支上。

当‘mywork‘分支更新之后,它会指向这些新创建的提交(commit),而那些老的提交会被丢弃。 如果运行垃圾收集命令(pruning garbage collection), 这些被丢弃的提交就会删除. (请查看 git gc)

二、解决冲突

在rebase的过程中,也许会出现冲突(conflict).
在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:

$ git rebase --continue

这样git会继续应用(apply)余下的补丁。

在任何时候,你可以用--abort参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态。

$ git rebase --abort

三、git rebase和git
merge的区别

现在我们可以看一下用合并(merge)和用rebase所产生的历史的区别:

当我们使用Git log来参看commit时,其commit的顺序也有所不同。

假设C3提交于9:00AM,C5提交于10:00AM,C4提交于11:00AM,C6提交于12:00AM,

对于使用git merge来合并所看到的commit的顺序(从新到旧)是:C7
,C6,C4,C5,C3,C2,C1

对于使用git rebase来合并所看到的commit的顺序(从新到旧)是:C7
,C6‘,C5‘,C4,C3,C2,C1

因为C6‘提交只是C6提交的克隆,C5‘提交只是C5提交的克隆,

从用户的角度看使用git rebase来合并后所看到的commit的顺序(从新到旧)是:C7
,C6,C5,C4,C3,C2,C1

表示本地当前本地当前关于git
pull简介》

原文:http://gitbook.liuhui998.com/4_2.html

转自:http://blog.csdn.net/hudashi/article/details/7664631/

http://blog.csdn.net/mad1989/article/details/16885569

时间: 2024-11-07 16:17:09

git<git rebase冲突解决>的相关文章

git的常用命令

 git的常用命令 一.bash的简单命令 注意:首字母都是小写 1.Pwd 查看当前目录 2.Cd /e 切换到e盘 3.Cd 文件夹名称   切换到下一个目录 4.Cd ../ 返回上一级目录 5.Ls 查看当前目录的内容  (canvas/ 是文件夹) 6.Ls -a 查看所有文件 -a 是all的意思 7.Mkdir hello创建目录(文件夹)名为hello 8.Touch test.txt 创建文件test.txt 9.Cat 文件名 查看文件中的内容 10.Wc 文件名  统计文件

git的常用命令。。

git的常用命令.. git help <command>  显示command的help git show  显示某次提交的内容 git show $id git co -- <file>  抛弃工作区修改 git co .  抛弃工作区修改 git add <file>  将工作文件修改提交到本地暂存区 git add .  将所有修改过的工作文件提交暂存区 git rm <file>  从版本库中删除文件 git rm <file> --c

GIT 版本控制常用命令汇总

[转自]:http://www.cnblogs.com/sawyerzhu/p/3578268.html GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git config user.name "Your Name Comes Here" 设置当前项目git用户名 git config --global user.name "Your

git之常用命令

git之常用命令 1.下载远程仓库最新代码 $ git pull --rebase origin master 2.上传代码 $ git push origin master 3.退出编辑 ESC + Z +Z //z必须是大写,连按两次 报错: refusing to merge unrelated histories 解决: git pull origin master --allow-unrelated-histories 原文地址:https://www.cnblogs.com/s313

Linux中git的常用命令

1.安装依赖包 sudo yum install curl-devel expat-devel gettext-developenssl-devel zlib-devel sudo yum install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev 2.安装git yum -y install git 3.创建项目目录 mkdir gitbase cd gitbase 4.创建共享库 sudo git init 5.

我也玩玩git,常用命令

我也玩玩git,初入,本屌还是处在一头雾水,不知如何来玩git的阶段,下面先列一些常用的命令及git客户端安装 安装 rpm -qa |grep git   查看是否安装git yum list | grep ^git  查看列表 yum install git-all.noarch git version 把自己介绍给git git config --global user.name "xf" git config --global user.email "[email p

Git基础(常用命令)介绍

版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 关于版本控制分为三种:本地版本控制系统,如rcs:集中化的版本控制系统,如CVS.SVN:分布式版本控制系统,如Git. Git基础要点 Git和其它版本控制系统的主要差别在于:Git只关心文件数据的整体是否发生变化,而大多数其它系统则只关心文件内容的具体差异. 对于任何一个文件,在Git内都只有三种状态:已提交(committed).已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地保存在本

git操作常用命令

一.使用git 1.git是什么? Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器.集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个

git 操作常用命令

git仓库配置常用命令 ####首先下载代码 + git下载代码命令: git clone [git地址] [下载位置] ####分支命令 1. 查看分支 git branch 2. 查看远程分支 git branch -r 3. 查看所有分支(本地和远程) git branch -a 4. 创建分支 git branch [分支名称] 5. 切换分支 git checkout [分支名称] #####远程仓库操作 1.查看远程仓库地址 git remote -v 2.切换远程仓库地址 git

GIt 版本控制 常用命令

转自 :http://www.cnblogs.com/cspku/articles/Git_cmds.html 查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id git co -- <file> # 抛弃工作区修改 git co . # 抛弃工作区修改 git add <file> # 将工作文件修改提交到本地暂存区 git add .