Git:在合并期间无法进行部分提交(SourceTree)

Jan*_*zen 9 git version-control git-merge atlassian-sourcetree

在将SourceTree更新为最新版本后,我正在解决这个问题.假设以下场景:

版本控制下有文件A,BC,只有一个分支.在我的工作副本中,我对文件A进行了一些更改,因此它变为A'以及文件BB'.他工作副本中的其他人对文件C - > C'进行了更改.

我准备和提交我的修改文件仅有B.所以我有一个新版本:A,B',C和工作副本A',B',C.

另一个提交他的更改,因此他创建了修订版A,B,C'并将其推送到原点.

它来了.当我执行拉动时,我得到一些合并更改(C').我想提交一个由A,B',C'组成的修订版.我现在不想用修改后的文件A做任何事情.但是,GIT,SourceTree等,失败了:

致命:在合并期间无法进行部分提交.

直到我暂停或放弃对文件A的更改.

我很确定SourceTree的某些先前版本没有暴露这种行为.

2017/05更新

它出现在最新的SourceTree版本2.0.20.1中,此问题已得到解决.但是,请确保您要更新到此版本,因为它包含许多"错误"(新功能)我真的不喜欢.

Arv*_*vin 4

致命:无法在合并期间进行部分提交。

这表明您的合并仍在进行中,可能存在一些您仍需要解决的冲突。

请从下拉框中选择冲突作为屏幕截图,您应该能够看到带有三角形图标的冲突文件列表。解决这些问题然后进行提交应该可以解决您的问题。

在此输入图像描述

这篇文章应该简要介绍如何配置和使用外部工具来解决合并冲突 -如何以交互方式(可视化)解决 SourceTree / git 中的冲突

如果你仍然无法弥补,你可以把你的改变藏起来。从原点拉出并应用隐藏来修复相同的问题。

编辑

您还可以使用“自定义操作”自动执行所有此类操作。下面复制了一个用于执行存储>>拉>>应用存储的示例脚本

git -c diff.mnemonicprefix=false -c core.quotepath=false stash save temp
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
git -c diff.mnemonicprefix=false -c core.quotepath=false pull origin <<local path goes here>>
git -c diff.mnemonicprefix=false -c core.quotepath=false submodule update --init --recursive
git -c diff.mnemonicprefix=false -c core.quotepath=false stash apply stash@{0}
Run Code Online (Sandbox Code Playgroud)