Synchronization 如何';吉特拉力';所有的树枝都容易折断吗?

Synchronization 如何';吉特拉力';所有的树枝都容易折断吗?,synchronization,branch,git-pull,Synchronization,Branch,Git Pull,git pull——救命 将远程存储库中的更改合并到当前分支中 我拉git存储库以脱机查看代码,并希望为不同的分支更新代码。如何在不手动拉取每个分支的情况下轻松地拉取所有分支的代码 --全部--获取所有遥控器 --所有这些都没有帮助。pull将远程分支合并到您当前的本地分支中,因此,您可能不希望拖动所有远程分支 您必须单独合并每个分支。如果您合并了多个分支,并且其中多个分支存在合并冲突,那么您如何能够同时解决这些冲突呢?如果本地存储库用于只读,并且没有任何文件被修改,那么下面的脚本将执行此操作

git pull——救命

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

我拉git存储库以脱机查看代码,并希望为不同的分支更新代码。如何在不手动拉取每个分支的情况下轻松地拉取所有分支的代码

--全部--获取所有遥控器


--所有这些都没有帮助。

pull
将远程分支合并到您当前的本地分支中,因此,您可能不希望拖动所有远程分支

您必须单独合并每个分支。如果您合并了多个分支,并且其中多个分支存在合并冲突,那么您如何能够同时解决这些冲突呢?

如果本地存储库用于只读,并且没有任何文件被修改,那么下面的脚本将执行此操作

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

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

与Praveen Sripati的答案类似,但作为一个shell函数,它将您带回您开始的分支

只需将其放入~/.bash_别名文件:

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;
};

有了| | break,它做得很好,在发生冲突或类似情况时不会把事情搞砸。

灵感来源于我在Mac OS X上的
个人资料中添加的@cellofellow.profile

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
    。如果省略该参数,则默认为原点

  • 还添加了一个类似的快捷方式,将多个分支推回服务器


  • 如果您只需要离线功能,您可以简单地调用
    git fetch-all
    来获取所有当前信息。现在您的磁盘上有了所有信息,可以脱机工作了。简单合并或签出要处理的分支。Git pull是Git fetch和Git merge

    应该有助于Gareth的可能重复-正如我提到的,我只将Git用于脱机查看,不会有任何冲突。git命令或shell脚本可能满足我的要求。干得好。我喜欢更改要使用的遥控器的选项。