[英]“fetch --all” in a git bare repository doesn't synchronize local branches to the remote ones
[英]Fetching all remote branches into a bare Git repository
我设置了一个Github post-receive挂钩,每当推送到我的Github存储库时,它就会在我的web服务器上运行一个脚本。
当脚本运行时,我希望它保持存储库的本地裸克隆与我的Github存储库同步。 为此,我让它运行此命令:
git fetch origin && git reset --soft refs/remotes/origin/master
然后,如果从我的工作站我推送到Github掌握,一切正常。 但是,如果我推送到另一个远程分支,则更改不会反映在我的服务器的本地裸存储库中。
我假设有一些方法让脚本获取所有远程分支,但我不知道如何做到这一点。 我知道新版本的git有一个-all选项用于获取/拉取,但我使用的是git版本1.6.3.3,它似乎没有这个选项。
有谁知道如何让我的脚本获取所有远程分支?
谢谢!
git fetch origin '*:*'
为我工作。
也许使用shell脚本?
#!/bin/sh
for i in `git remote show`; do
git fetch $i;
done;
注意:你的问题中的小术语错误: git fetch|pull
的--all
选项获取所有“遥控器”,而不是“远程分支”。
想象一下,当我在这里时,我会提供自己的解决方案。 我接受了Ramkumar的,因为这是灵感。 区别在于我不想从所有遥控器中取出,而是在“起源”中的每个远程分支......
#!/bin/bash
REMOTE_BRANCHES=$(git branch -r | awk -F'/' '{print $2}')
for i in $REMOTE_BRANCHES; do
git fetch origin $i
done
免责声明:尚未真正实现这一点,但它应该是关闭的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.