如果可能,以下单行代码将所有具有上游分支的分支快进,否则打印错误:
git branch \
--format "%(if)%(upstream:short)%(then)git push . %(upstream:short):%(refname:short)%(end)" |
sh
它是如何工作的?
它使用git branch
命令的自定义格式。对于每个具有上游分支的分支,它会打印一行具有以下模式的行:
git push . <remote-ref>:<branch>
这可以直接通过管道输入sh
(假设分支名称格式正确)。省略| sh
以查看它在做什么。
警告
当前签出的分支将不会使用类似的消息进行更新
! [remote rejected] origin/master -> master (branch is currently checked out)
为此,您可以求助于常规git pull --ff-only
.
别名
将以下内容添加到您的.gitconfig
以便git fft
执行此命令:
[alias]
fft = !sh -c 'git branch --format \"%(if)%(upstream:short)%(then)git push . %(upstream:short):%(refname:short)%(end)\" | sh' -
别名是“快进跟踪(分支)”的简写。