如果可能,以下一线式快进所有具有上游分支的分支,否则显示错误:
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。别名是“快速跟踪(分支)”的简写。