假设原来有文件A,程序员甲把A进行了完全的重写,而甲在自己的branch工作的同时,他的同事程序员乙则对A进行了一个优化。这样,当甲想要merge的时候,A文件就有很多的冲突,可能多达几百行。

这时候两个程序员达成一致,最后应该完全采用甲的版本,因为乙只是在原基础上优化,而甲进行了全方面的重写。在这种情况下,git checkout 命令的   - -theirs 和 - -ours 就派上用场了。前者表示保留甲 想要merge的版本,后者表示保留master branch中的版本,即乙的版本。

$ git checkout - -ours xxx/A.java // 抛弃甲的版本,保留乙的

$ git checkout - -theirs xxx/A.java // 抛弃乙的版本,完全采用甲的

从上面的例子看出git checkout --theirs和git checkout --ours的作用与明面上的意思相反,theirs表示自己,ours表示别人

原因:git是这么处理这件事情的,先把甲分支撤销掉,把它作为patch放进.git/rebase目录,然后把master分支更新为乙分支,然后再把甲分支这个patch打上来。

git checkout --theirs(ours)的更多相关文章

  1. 代码回滚:git reset、git checkout和git revert区别和联系

    git reset.git checkout和git revert是你的Git工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文件. 因为 ...

  2. 分支合并git checkout adview git merge adview3

    分支合并 git checkout adview git merge adview3

  3. 每天一命令 git checkout

    检出 checkout  是git常用命令之一.主要用于创建切换分支,覆盖本地修改等 git checkout 用于显示工作区,暂存区,版本库中文件的区别 git checkout -b branch ...

  4. git checkout -b 的详细讲解

    创建分支: $ git branch mybranch 切换分支: $ git checkout mybranch 创建并切换分支: $ git checkout -b mybranch 更新mast ...

  5. [译]git checkout

    git checkout git checkout提供3种不同的功能: checking out文件, checking out commits, checking out branch. check ...

  6. git checkout 命令详解

    转自:http://www.cnblogs.com/hutaoer/archive/2013/05/07/git_checkout.html?utm_source=tuicool&utm_me ...

  7. Git branch 和 Git checkout常见用法

    git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.Git branch 一般用于分支的操作,比如创建分支,查看分支等等, 1.1 git branch 不带 ...

  8. git使用命令, 特别:git checkout -b a 与 git branch a区别

    摘自: https://my.oschina.net/u/587974/blog/74341 创建分支: $ git branch mybranch 切换分支: $ git checkout mybr ...

  9. 转 git使用命令, 特别:git checkout -b a 与 git branch a区别

    创建分支: $ git branch mybranch 切换分支: $ git checkout mybranch 创建并切换分支: $ git checkout -b mybranch 更新mast ...

  10. git checkout 和 git checkout --merge <branch_name>使用

    一.git checkout //查看当前分支$ git branch master *t2 testing //checkout会覆盖当前工作区文件和覆盖暂存区内容,所以发现分支有未提交的警告,执行 ...

随机推荐

  1. a^b%p and a*b%p快速幂

    #include<cstdio> int power(int a, int b, int p) { %p; ) { ) ans=(long long)ans*a%p; a=(long lo ...

  2. Wpf 之Canvas介绍

    从这篇文章开始是对WPF中的界面如何布局做一个较简单的介绍,大家都知道:UI是做好一个软件很重要的因素,如果没有一个漂亮的UI,功能做的再好也无法吸引很多用户使用,而且没有漂亮的界面,那么普通用户会感 ...

  3. ASP.NET WebApi 基于分布式Session方式实现Token签名认证

    一.课程介绍 明人不说暗话,跟着阿笨一起学玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NETWebSer ...

  4. 前端工程化系列[01]-Bower包管理工具的使用

    本文主要介绍前端开发中常用的包管理工具Bower,具体包括Bower的基本情况.安装.使用和常见命令等内容,最后还介绍了依赖树管理的常见方式以及Bower采用的策略并进行了比较. 1.1 关于Bowe ...

  5. 使用http load测试qps

    官网 http://acme.com/software/http_load/ 安装 wget http://acme.com/software/http_load/http_load-12mar200 ...

  6. IDEA攻略合辑

    AS使用lombok注解报错:Annotation processors must be explicitly declared now. The following dependencies on ...

  7. 未能加载文件或程序集“SuperMap.Data.dll”

    重新配置的新的开发环境,使用的是原来的工程文件,编译通过,运行报错:"未能加载文件或程序集"SuperMap.Data.dll"或它的某一个依赖项.找不到指定的模块&qu ...

  8. [Java] Windows/Linux路径不同时,统一war的最简办法

    作者: zyl910 一.缘由 在项目开发时,因为运行环境的不同,导致有时得分别为不同的环境,切换配置参数打不同war包.但手工切换配置文件的话,不仅费时费力,而且容易出错. 有些打包工具支持配置切换 ...

  9. cn_windows_10_enterprise_version_1703_updated_june_2017_x64_dvd_10720588.iso

    ed2k://|file|cn_windows_10_enterprise_version_1703_updated_june_2017_x64_dvd_10720588.iso|4959832064 ...

  10. Faiss安装

    一.上策:使用现成的faiss 找到别人(同事或同学)的python目录,找到faiss文件夹,复制到本地,并将其添加到PYTHONPATH下. 二.中策:使用anaconda anaconda上面的 ...