是否有可能修改默认的
更新和细节:现在我明白了,在文件级别合并(其中合并是针对文件中的行而不是整个文件进行操作)时,不能在不使用工作树的情况下进行。(与针对整个文件进行操作的合并不同。)所以我得使用工作树。
另一个细节:如果合并可以自动完成而无需手动解决,则我可以接受该解决方案仅在这些情况下起作用。如果合并不是自动的,则只需显示错误消息即可。(当然,始终保持清洁。)
另一个细节:我不直接使用
我在谷歌上搜索了这些错误信息,但没有找到有用的内容。
有什么主意可以解决吗?
git-merge-one-file
程序,使其在不触及工作树的情况下仅使用索引完成所有操作,完全不修改它?更新和细节:现在我明白了,在文件级别合并(其中合并是针对文件中的行而不是整个文件进行操作)时,不能在不使用工作树的情况下进行。(与针对整个文件进行操作的合并不同。)所以我得使用工作树。
另一个细节:如果合并可以自动完成而无需手动解决,则我可以接受该解决方案仅在这些情况下起作用。如果合并不是自动的,则只需显示错误消息即可。(当然,始终保持清洁。)
另一个细节:我不直接使用
git-merge-one-file
,而是在此脚本中使用它:https://gist.github.com/cool-RR/6575042
我尝试遵循@torek的建议并使用临时工作树(正如您在脚本中看到的那样),因为这似乎是目前最好的方向。问题是,我会得到这些错误:git checkout-index: my_file is not in the cache
error: my_file: cannot add to the index - missing --add option?
我在谷歌上搜索了这些错误信息,但没有找到有用的内容。
有什么主意可以解决吗?
a
合并到分支b
,无需检出任何一个分支,并使用临时索引文件,以便既不触碰索引文件也不触碰工作目录。 - Ram Rachumgit notes
可以这样做。它会在一个内部、专用和临时的工作树中进行合并。 - VonCGIT_WORK_TREE
设置为指向我的临时文件夹,并在git仓库中运行该命令。 - Ram Rachum