Git可以轻松地执行以下操作吗?
当本地开发发生时,我希望推送将更改推送到GitHub,并同时将这些更改推送到其他存储库。
我尝试使用--mirror进行此操作,但是在同一个项目上有一个7人团队,在镜像更新时似乎很容易删除功能分支。
思考?有没有办法在不手动编辑.gitconfig文件的情况下手动定义指向多个repo URL的原点?这可以用钩子完成吗?
答案 0 :(得分:4)
您只需定义一个别名即可:
git config alias.pusheverywhere \
"!git push github && git push bitbucket && git push production"
命令中的&&
是逻辑AND,因此只有左侧的命令成功且没有错误才会执行右侧的命令。
答案 1 :(得分:3)
镜像获得的回购可能会非常棘手,特别是如果您没有使用git clone --mirror
创建下游回购。
在您的情况下,您不会以这种方式创建本地(“下游”)仓库,因为您有三个要维护的上游镜像仓库。
博客文章“How to properly mirror a git repository”提到,对于镜像推送的本地仓库,您需要:
git fetch --prune upstream_repo
(务必清除跟踪remote tracking branches已删除分支的upstream repo)
git push --prune upstream_repo +refs/remotes/origin/*:refs/heads/* +refs/tags/*:refs/tags/*
(顺便说一下,这不包括git笔记)
推送三个回购是一种方式,但我更愿意:
如果在prod仓库中检测到问题(例如缺少对提交的评论或其他未遵守的政策),您将有机会: