And*_*Vit 7 git conflict rebase
当git rebase发现冲突时,这意味着什么,但文件中没有明显的问题?有问题的文件没有冲突标记,并git mergetool说"无需合并".
我有的选项是重置或添加:
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: filename.js
Run Code Online (Sandbox Code Playgroud)
我如何找出这是什么以及采取哪条路径?
git ls-files -s filename.js 给出3行:
100644 d2c915b1d632b8ef8fbcf056824fb7fac7824ab9 1 filename.js
100644 9010798f1d19ac712196b1fc9b0870fd332b1275 2 filename.js
100644 b3ab7ec50812c73a3ec97bf0985f3226ec13cbc8 3 filename.js
Run Code Online (Sandbox Code Playgroud)
根据精细手册,该命令告诉我们模式位,对象名称和阶段编号.模式位是相同的.那么1,2和3是什么,为什么它们"被修改",但没有显示冲突标记?
在指数的版本标记1,2以及3具有以下含义:
HEAD,即您进行合并时的当前提交.HEAD.我获取此信息的来源是git手册中有关解决冲突的有用部分.
该both modified输出git status指示,当然,该文件已通过,因为他们的共同祖先,你合并这两个提交不同的方式改变.
对我来说,为什么你没有在文件中看到冲突标记是相当神秘的 - 然而 - blob在输出中有不同的对象名称(哈希)git ls-files -s表明它们确实具有不同的内容.如果你很高兴与文件,因为它是在你的工作副本,你可以做git add filename.js,然后git rebase --continue.但是,无论如何,您可能想知道这些差异是什么.为此,我会尝试以下方法:
git diff :2:filename.js filename.js
Run Code Online (Sandbox Code Playgroud)
...将显示版本HEAD和当前工作副本之间的差异.同样,您可以尝试:
git diff :3:filename.js filename.js
Run Code Online (Sandbox Code Playgroud)
...查看正在合并的版本与您的工作副本之间的区别.