如何在推送时自动设置上游故障电流



我曾经用git fetch -p加一些git管道命令的指示自动删除我的分支,并匹配[gone]模式,然后删除匹配的分支。

与我合作的一些存储库强制压缩拉请求,因此合并的提交永远不会在本地进行,而且我无法链接新提交的内容和本地分支的内容。

前几次我切换到push.default current,它的特性确实比push.default upstreamsimple更好。

几天后,我注意到我所有的分支都没有被删除;这源于当推动时;猜测";但从不设置

如果我手动设置分支的上游(通过--set upstream到(,那么我可以看到我的修剪脚本再次工作;但这违背了使用push.default设置为电流的目的。

$ git switch -c my-branch
Switched to a new branch 'my-branch'
$ git push 
Total 0 (delta 0), reused 0 (delta 0)
remote: ...
$ git branch -vv
main      3b3a404 [origin/main] Merge branch 'test-push' into 'main'
* my-branch 3b3a404 Merge branch 'test-push' into 'main'
$ git push -u origin my-branch 
Branch 'my-branch' set up to track remote branch 'my-branch' from 'origin'.
Everything up-to-date
$ git branch -vv
main      3b3a404 [origin/main] Merge branch 'test-push' into 'main'
* my-branch 3b3a404 [origin/my-branch] Merge branch 'test-push' into 'main'
$ git push -d origin my-branch # this is done automatically after merging
$ git fetch -p
...
- [deleted]         (none)     -> origin/my-branch
$ git branch -vv
main      3b3a404 [origin/main] Merge branch 'test-push' into 'main'
* my-branch 3b3a404 [origin/my-branch: gone] Merge branch 'test-push' into 'main'
^... this is what helps me automatically trimming merged branches

有没有一种方法可以让自动的上游设置推送到分支,而无需实际键入?

我实际上测试了插入一个预推钩子,但如果分支不存在,则设置上游无法工作;推后挂钩不存在

事实上,我的最终目标是删除合并的压缩分支,但我看不到比检查远程是否已消失更好的候选者来验证这一点;因为我没有历史重写的保证

1:git for-each-ref --format '%(upstream:track) %(refname)' refs/heads | awk ' $1 == "[gone]" { sub("refs/heads/", "", $2) ; print $2 }'

如果您的push.default设置为current,则仅git push -u(不包括... origin my-branch(将创建远程分支设置本地分支以跟踪该远程分支。


附加说明:%(refname:short)(在git for-each-ref --format中(将显示您用于的分支名称

相关内容

  • 没有找到相关文章

最新更新