如何轻松"git pull"所有分支?

Pra*_*ati 8 synchronization branch git-pull

git pull --help

将来自远程存储库的更改合并到当前分支中.

我拉git存储库以获取代码的离线视图,并希望获得不同分支的更新代码.如何在不手动拉动每个分支的情况下轻松拉动所有分支的代码?

--all - 获取所有遥控器.

- 所有人都没有帮助.

Pra*_*ati 8

如果本地存储库用于只读且没有任何文件被修改,那么下面的脚本就可以了.

for i in $(git branch | sed 's/^.//'); do git checkout $i; git pull; done
Run Code Online (Sandbox Code Playgroud)

似乎没有相同的git等效命令.


cel*_*low 7

就像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;
};
Run Code Online (Sandbox Code Playgroud)

随着|| 如果发生冲突之类的话,打破它会做出令人满意的工作.


Mar*_*sen 5

pull 将远程分支合并到当前本地分支中,因此拉动所有远程分支可能不是您想要的.