如果可能,以下一线式快进所有具有上游分支的分支,否则显示错误:
git branch \
--format "%(if)%(upstream:short)%(then)git push . %(upstream:short):%(refname:short)%(end)" |
sh
它是如何工作的?
它与git branch
命令一起使用自定义格式。对于具有上游分支的每个分支,它将打印具有以下模式的行:
git push . <remote-ref>:<branch>
这可以直接通过管道传递到sh
(假设分支名称格式正确)。忽略| sh
可以看到它在做什么。
注意事项
单线不会与您的遥控器联系。在运行前发出a git fetch
或git fetch --all
。
当前已签出的分支将不会更新,例如
! [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' -
另请参阅我的.gitconfig
。别名是“快速跟踪(分支)”的简写。