我使用脚本来管理我的开发过程。有时我需要知道合并是否正在等待。
我习惯使用“git ls-files --unmerged”,但是当解决冲突并将未合并的文件添加到索引时,它不起作用。
在这种情况下,有没有办法知道合并是否正在进行?
谢谢。
答案 0 :(得分:6)
从脚本中查看:"$(git rev-parse --git-dir)"/MERGE_HEAD
是否存在(__git_ps1
是如何做的)。
手动,我让回购状态显示在我的提示中。
__git_ps1
具有非常有用的功能。除了在命令行提示符下显示当前分支,状态,索引状态,远程跟踪分支状态之外,它还会告诉您是否正在进行合并。
您可以找到there指令。
简而言之,download git-prompt.sh,将其放在PATH
中,在~/.bashrc
中提取,在__git_ps1
PS1
中使用~/.bashrc
}。
阅读git-prompt.sh顶部的评论以获取更多功能。
一个例子:
gauthier@sobel:~/tmp/sigrt_val (master *) $
(显示当前分支master
,并且我有本地更改*
)
合并冲突的另一个例子:
gauthier@sobel:~/tmp/sigrt_val (two) $ git merge one
Auto-merging test.c
CONFLICT (content): Merge conflict in test.c
Automatic merge failed; fix conflicts and then commit the result.
gauthier@sobel:~/tmp/sigrt_val (two *+|MERGING) $
(本地更改*
,暂存文件+
,当前未完成合并|MERGING
答案 1 :(得分:3)
如果您处于存在冲突的非快进合并中,那么git status
alone可以通知您当前的状态。
来自网站:
$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
如果您已完成冲突,您可能会看到如下消息:
$ git status
On branch master
All conflicts fixed but you are still merging.
(use "git commit" to conclude merge)
__git_ps1
脚本是一种极好的视觉便利,但它仍然站在Git其他部分可以找到的标准元数据的肩膀上。