Jan*_*zen 9 git version-control git-merge atlassian-sourcetree
在将SourceTree更新为最新版本后,我正在解决这个问题.假设以下场景:
版本控制下有文件A,B和C,只有一个分支.在我的工作副本中,我对文件A进行了一些更改,因此它变为A'以及文件B到B'.他工作副本中的其他人对文件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中,此问题已得到解决.但是,请确保您要更新到此版本,因为它包含许多"错误"(新功能)我真的不喜欢.
致命:无法在合并期间进行部分提交。
这表明您的合并仍在进行中,可能存在一些您仍需要解决的冲突。
请从下拉框中选择冲突作为屏幕截图,您应该能够看到带有三角形图标的冲突文件列表。解决这些问题然后进行提交应该可以解决您的问题。
这篇文章应该简要介绍如何配置和使用外部工具来解决合并冲突 -如何以交互方式(可视化)解决 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)