• 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还是有区别的。

  • 相关阅读:
    如何通过经纬度获取地址信息?
    通过google地图的webservice根据城市名称获取经纬度
    PHP 使用 GeoLiteCity 库解析 IP 为地理位置
    PHPExcel对于Excel中日期和时间类型的处理
    phpexcel来做表格导出(多个工作sheet)
    PHPExcel读取excel文件
    读取上传的CSV为DataTable
    判断sqlserver对象是否存在
    async & await 的前世今生
    .NET4.5之初识async与await
  • 原文地址:https://www.cnblogs.com/ievjai/p/14382630.html
Copyright © 2020-2023  润新知