zoukankan      html  css  js  c++  java
  • Git冲突解决: git checkout高级用法

    背景

    Git冲突的原因,一般是修改了同一个文件导致的,这个文件有可能是别人提交到远程仓库里面,还有就是需要合并这个文件导致的。

    解决方法

    1. 你确定你需要的是哪个仓库的文件
    git checkout --theirs conflicted_file.txt  # 保留远端的
    git checkout --ours conflicted_file.txt # 保留本地的
    
    1. 然后执行add和commit
    git add -A
    git commit -m "update conflict
    
    

    举个栗子

    获取远端服务器上的文件,提示冲突了需要合并

    # git cherry-pick FETCH_HEAD
    * branch            refs/changes/85/12385/3 -> FETCH_HEAD
    error: 'cherry-pick' is not possible because you have unmerged files.
    hint: Fix them up in the work tree,
    hint: and then use 'git add/rm <file>' as
    hint: appropriate to mark resolution and make a commit,
    hint: or use 'git commit -a'.
    fatal: cherry-pick failed
    
    

    查看当前仓库的状态

    # git status
    Not currently on any branch.
    You are currently cherry-picking commit 53e5374.
      (fix conflicts and run "git cherry-pick --continue")
      (use "git cherry-pick --abort" to cancel the cherry-pick operation)
    
    Unmerged paths:
      (use "git add <file>..." to mark resolution)
     	both modified: file1.txt
     	
    

    用提示的命令执行

    # git cherry-pick --continue
    
    U   file1.txt
    
    error: 'commit' is not possible because you have unmerged files.
    hint: Fix them up in the work tree,
    hint: and then use 'git add/rm <file>' as
    hint: appropriate to mark resolution and make a commit,
    hint: or use 'git commit -a'.
    fatal: Exiting because of an unresolved conflict.
    

    提示file1.txt有更新,确定替换为远程仓库的文件。这里用theirs

    git checkout --theirs file1.txt
    

    然后添加到本地仓库

    git add -A
    

    最后继续cherry-pick「复制」

    # git cherry-pick --continue
    [detached HEAD 8f26ce8] Summary : test git checkout --theirs
     Author: Rik
     2 files changed, 0 insertions(+), 0 deletions(-)
    

    小结

    git ckeckout 和 带参数的–ours和 --theirs还是有区别的。

  • 相关阅读:
    Flask基础教程
    htmlrunner-unittest生成多样的测试报告
    requestz-基于pycurl封装的requests库
    emailz-使发送邮件更方便
    filez-方便的数据文件加载器
    logz-易用的日志记录器
    基本语言(二)
    基本语言(一)
    编程范式(Programming paradigm)
    deque 双向队列知识点汇总
  • 原文地址:https://www.cnblogs.com/ievjai/p/14382630.html
Copyright © 2011-2022 走看看