【问题标题】:Why "git pull" is updated files when implemented immediately after checking out a remote branch?为什么在签出远程分支后立即实施“git pull”会更新文件?
【发布时间】:2020-03-15 10:47:36
【问题描述】:

我使用 IntellijIDEA,

  1. 在分支视图(右下角)中,我从以前从未检查过的远程分支中选择了一个早午餐(在我的 Jira 任务中阅读之前我什至不知道它的名称)
  2. 点击了
  3. 结帐为...
  4. 保留原名(与远程名称相同)
  5. 好的

我希望我有一个最新的分支(这不是很合理吗?)但是当我立即选择 Git -> pull 时,我在这个分支上得到了 588 个文件在 627 次提交中更新

请解释一下逻辑是什么?在结帐时期望得到一个最新的分支并期望拉会说“一切都是最新的”难道不是合理的吗?

【问题讨论】:

    标签: git intellij-idea git-branch git-pull git-checkout


    【解决方案1】:

    问题在于这些分支最后一次更新是在您上次git pull -all 时。

    例如,如果您克隆一个项目,这些分支会附带最新的提交(最新的)。但是,如果您有一段时间不git pull --all,那么这些分支将不会更新。在这种情况下,您的分支不包含最新更新,因此您必须 git pull -all 才能更新它们。

    总而言之,从你克隆项目或者你最后一次git pull -all开始,分支最后一次更新,但它们不会自动更新。

    如果有新分支添加到远程,那么您必须先使用git fetch --all 获取它们。

    【讨论】:

    • 好的,如果我上次执行“git pull origin master”时特定的远程分支甚至都不存在怎么办?我什至不应该在列表中看到它吗?那怎么查呢?
    • 你不应该。如果一个分支是在你最后一次从 origin master 拉出之后被推送的,你不应该也可以检出它们。您必须先提取更改,然后检查新添加的分支。
    • 将更改准确地拉到 master 上而不是其他任何分支上? master 分支是不是很特别,它不仅会更新自身,还会更新其他分支的所有元信息?
    • 您只需发送fetchpull 进行提取和合并。也许你不想合并。 git fetch --all
    • git fetch 将获得所有分支的更新参考。 --all 选项表示所有遥控器上的所有分支。
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 2016-05-03
    • 2015-07-12
    • 1970-01-01
    • 2017-12-31
    • 2015-09-26
    • 1970-01-01
    • 2012-12-26
    相关资源
    最近更新 更多