我正在尝试编写一个基于git的工具,但做了一些相当不寻常的事情,我需要知道:一次运行多个git merge --ff-only [remote-branch]
实例以获得最新提交是否安全他们中的任何一个?所有遥控器都将在同一行提交。我希望能够让我的工具只生成它们并让git对其进行排序,但我需要知道这是否会导致问题。有没有人对git internals有足够的了解呢?
答案 0 :(得分:1)
Git使用锁来防止并发访问,在最坏的情况下,您的合并尝试将因lock file exists
错误而失败。
答案 1 :(得分:1)
如果您正在进行-ff-only merges,为什么不用git branch --contains
或其他方式检查引用以查看旧提交是否可访问,然后执行重置或更新 - REF?
这应该非常快,并且可能会避免更新工作目录。
答案 2 :(得分:0)
在这种情况下,为什么不依次合并每个远程分支,而不是同时产生它们?
#!/bin/sh
set -e
for rtb in origin/master github/master gitorious/master
do
git merge --ff-only $rtb
done
如果HEAD
已包含其中一个远程跟踪分支,则合并仍会成功返回,说Already up-to-date.