2

当我在 Git 中处理合并冲突时,我指定的编辑器会弹出,我可以编辑 Git 合并消息。当我关闭文件时,Git 合并过程继续。

这是怎么做的?我想在 bash 脚本中做类似的事情。你会创建一个临时文件并监听这个文件的变化吗?还是有其他方法?

4

2 回答 2

3

在 bash 中,它看起来像这样:

# Launch editor. 'editor' is a fake command shown as example.
editor -f '/path/to/file'

returnCode=$?

# Ensure the process exited without error.
if [[ $returnCode == "0" ]] ; then
   # Take action...
fi

Git 创建一个打开编辑器的子进程,然后等待该子进程完成。当子进程由于用户关闭编辑器而终止时,它会检查文件中的未注释文本。例如,看一下git 的 launch_editor函数。它.git/COMMIT_EDITMSG用作要读取的文件。

于 2013-08-19T02:54:31.130 回答
0

此处提供了一个利用vimdiff提示用户解决合并冲突的优秀脚本。

在 git 合并冲突上使用 vimdiff

浏览脚本的源代码应该可以帮助您了解它是如何完成的。

于 2013-08-19T02:50:59.260 回答