[英]Pull all unfetched changes from git repository
我需要从几个不同的,不同的存储库(所有远程分支以及对这些分支的所有更改)中获取所有内容。 我试过git pull --all
但是出于某种原因,我收到以下消息:
There are no candidates for merging among the refs that you just fetched.
Generally this means that you provided a wildcard refspec which had no
matches on the remote end.
那么我将如何确保从存储库中获取所有更改(如果可能的话,不知道另一端的分支是什么)?
所有帮助表示赞赏,并提前致谢!
一般来说 - 这是一个非常非常糟糕的主意。 不要那样做。 “所有远程分支”通常包括正在进行中的代码,废弃的代码,相同功能的冲突实现等。尝试将它们全部合并到本地树中是一种灾难。
现在,如果你真的想做你建议的非常愚蠢的事情,你可以这样做:
git fetch remote_source
git merge $(git branch -r | grep remote_source)
现在,如果您真正想做的就是拥有所有远程更改的本地副本 ,而不尝试将它们合并到您的树中,那么您根本不需要进行拉取或合并; git fetch remote_source
为你做的一切。 当然,它不会创建映射到遥控器的本地分支 - 但它会拉下远程分支,您可以根据需要随时创建本地分支,而无需与远程源进行进一步通信。
考虑到评论中的进一步问题描述,听起来你真正想要的是将所有分支从旧遥控器推送到新的遥控器, 而不是将它们合并到一个树中。 要做到这一点,您可能需要以下内容:
args=()
for remote_branch in $(git branch -r | grep OLD_REMOTE/); do
branch_name=${remote_branch#*/}
args+=( "${remote_branch}:${branch_name}" )
done
git push NEW_REMOTE "${args[@]}"
这似乎是一个非常糟糕的主意。 但我猜你知道你在做什么。
我使用下面的bash one liner虽然要推送到所有的遥控器,我已经修改过来做拉动。
for i in $(git remote); do git pull $i master; done;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.