我正在尝试编写一个基于git的工具,但做了一些相当不寻常的东西,我需要知道:一次运行多个git merge --ff-only [remote-branch]
实例以获得其中任何一个可用的最新提交是否安全?所有的远程将在同一行提交。我想能够有我的工具只是产卵,让git整理出来,但我需要知道这是否会导致问题。有没有人对git的内部结构有足够的了解,能说出这样或那样的话?
如果你正在做- off -only合并,为什么你不只是检查引用与git branch --contains
或其他方式,看看是否旧的提交是可访问的,然后做重置或update-ref?
这应该非常快,并且可能避免更新工作目录。
Git使用锁来防止并发访问,在最坏的情况下,您的合并尝试将失败,如lock file exists
错误。
顺便说一下,合并允许多次合并,有一个章鱼合并策略。
在这种情况下,为什么不依次合并每个远程分支,而不是同时生成它们呢?
#!/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.