为了知道何时需要运行git pull --all
我运行git rev-parse origin/<branch name>
和git ls-remote | grep <branch name>
如果我从rev-parse获得的分支的SHA与我获得的SHA不同来自ls-remote我知道我需要运行git pull --all
。
今天,在我将新分支添加到git存储库并运行git rev-parse origin/<new branch name>
后,我看到了这个想法的问题,我得到了unknown revision or path not in the working tree
。知道如何知道何时需要运行git pull --all
并在添加新分支时支持这种情况?简而言之,如何知道是否将新分支添加到git存储库?
答案 0 :(得分:2)
通常,您根本不需要运行git pull --all
。使用Git,您总是在一个分支上工作,因此在任何时候,当前分支将是您需要关注的唯一分支。通常,甚至鼓励让本地分支过时,这样您就可以继续工作而不必担心可能引入更改功能的上游更改(这会影响您当前的工作),甚至会导致合并冲突。
通常情况下,如果您确实想要更新当前分支,则只能为当前分支运行git pull
。
另一件事是取材。使用git fetch
获取将更新所有远程分支,从远程存储库接收所有更改并将其存储在origin/branch
分支(由于它们属于远程分支而称为远程分支)。这样,您就可以更新远程存储库的本地表示形式,使其可以进行所有更改。但是,这将不将这些更改合并到您的本地分支中,因此您仍然可以完全控制合并的时间和内容。
因此,如果您想获得有关远程存储库上发生的事情的一些信息,您可以定期调用git fetch
来更新远程分支。这将始终工作并更新遥控器提供的任何东西 - 最糟糕的是,它只会告诉你没有什么新东西。它还会告诉您哪些远程分支已更新,以及何时添加新分支,这也是活动的良好指标。
当您确定要将远程更改引入本地分支时,您可以运行git pull
(在内部再次为当前分支提取然后执行合并),或者只是执行git merge origin/branchname
将先前提取的更改手动合并到本地分支。