git pull --help如何“轻松”拉所有分支?
将远程存储库中的更改合并到当前分支中。
我拉着git仓库离线查看代码,并喜欢有不同分支的更新代码。如何轻松地为所有分支拉取代码而无需手动为每个分支拉动?
--all - 取回所有遥控器。
- 都没有帮助。
git pull --help如何“轻松”拉所有分支?
将远程存储库中的更改合并到当前分支中。
我拉着git仓库离线查看代码,并喜欢有不同分支的更新代码。如何轻松地为所有分支拉取代码而无需手动为每个分支拉动?
--all - 取回所有遥控器。
- 都没有帮助。
如果本地存储库仅用于只读,并且没有任何文件被修改,那么下面的脚本就可以实现。
for i in $(git branch | sed 's/^.//'); do git checkout $i; git pull; done
似乎没有相同的git等效命令。
pull
将远程分支合并到您当前的本地分支,因此拉动所有远程分支可能不是您想要的。
您必须单独合并每个分支。如果你合并成多个分支并且其中有多个合并冲突,那么你怎么可能同时解决呢?
Gareth - 正如我所提到的,我只用git进行离线查看,不会有任何冲突。 git命令或shell脚本可能满足我的要求。 –
像Praveen Sripati的回答一样,但作为一个shell函数,它将您带回到您开始的分支。
只是把这个在你的〜/ .bash_aliases文件:
function pull-all() {
START=$(git branch | grep '\*' | set 's/^.//');
for i in $(git branch | sed 's/^.//'); do
git checkout $i;
git pull || break;
done;
git checkout $START;
};
随着||如果出现冲突或类似情况,打破它并不会令人满意。
工作完美,thx队友! –
灵感来自@cellofellow我加this我.profile
在Mac OS X:
function git-pull-all() {
START=$(git symbolic-ref --short -q HEAD);
for branch in $(git branch | sed 's/^.//'); do
git checkout $branch;
git pull ${1:-origin} $branch || break;
done;
git checkout $START;
};
function git-push-all() {
git push --all ${1:-origin};
};
的主要区别是:
我得到当前分支git branch | grep '\*' | set 's/^.//'
而不是git branch | grep '\*' | set 's/^.//'
。
您可以提供遥控器作为参数,例如git-pull-all origin
。如果您省略参数,则默认为原点。
还添加了一个类似的快捷方式将多个分支推回服务器。
干得好。我喜欢改变使用哪个遥控器的选项。 – cellofellow
如果您只需要离线功能,您可以简单呼叫git fetch -all
以获取所有当前信息。现在,您可以在磁盘上获得所有信息,并可以脱机工作。简单合并或签出您想要处理的分支。 Git pull是git fetch && git merge
。
http:// stackoverflow。com/questions/4318161/can-git-pull-all-update-all-my-local-branches should help – VonC