【问题标题】:Do you need a 'remote update' before doing a 'pull' in Git在 Git 中进行“拉动”之前是否需要“远程更新”
【发布时间】:2011-08-15 13:18:50
【问题描述】:

假设我已经从 c:\ 完成了以下操作,那么从远程源获取最新代码的正确方法是什么?

# Create repo...
mkdir Test
cd Test
git init
...create files
git add .
git commit -a -m "Init Commit"

# Clone repo...
cd ..
git clone Test TestClone

# Edit original
cd Test
...edit files
git commit -a -m "Init Edit"

# Go back to Clone
cd ..\TestClone

# Get latest code
# Now what??? pull or update then pull

【问题讨论】:

    标签: git git-pull git-remote


    【解决方案1】:

    Git 将自动在您克隆的存储库中设置远程 origin,并配置您的分支以在您拉取时从 origin 上的等效分支合并。

    在这种情况下,您只需git pull

    【讨论】:

    • @sehe: 是的,需要 ECC 内存 :)
    • “从它们的等价物合并”...我认为(而且我是 Git 新手)总是合并到当前分支中(无论名称如何)。 git pull 是我的理解。所以无论我在本地的哪个分支, git pull origin master 都会从远程原点拉出 master 分支?
    • @Terry 我的意思是 git 在您克隆时会将您的本地分支设置为与“等效”远程分支合并。稍后,当您拉取时,git 会将您当前的分支与它设置跟踪的任何远程分支合并。这不一定是同名的远程分支(即“等效”);例如,本地分支“my_feature”可以设置为跟踪远程分支“some-remote/some-other-feature”。很抱歉造成混乱。
    • 最后一个问题...当您在 any 命令中引用源(远程)时,它是否总是命中真正的远程而不是远程的某些本地副本?即 git diff --name-status master..origin/master - 是否命中了真正的原始代码或本地目录 /remotes/origin/master 中的“repo”,这是link,这让我感到困惑。
    • @Terry Git 将始终使用本地数据。您必须fetch/update remote 从远程检索最新数据; pull,相当于 fetch 后跟 merge,为您执行此操作。
    【解决方案2】:

    其他人告诉过你简短的版本:只是pull。但是既然您实际上询问了`远程更新...

    remote update 是“更新我们从远程知道的一切”的高级命令。它获取新的分支,它可以修剪旧的分支,它可以为任意组的遥控器或所有遥控器执行此操作。它只更新远程跟踪分支(名称如origin/master);它不会触及你的树枝。如果这种更新是您想要做的,这就是您的命令。想要检查远程中的内容是很常见的,但实际上并没有将其中的任何内容合并到您的任何分支中,而且修剪陈旧分支的能力也非常好。

    如果您只想将适当的远程分支合并到当前分支,git pull 是正确的命令。它会在这个过程中更新一些远程分支,是的,但这不是它的主要目的。

    【讨论】:

      【解决方案3】:

      通过阅读git help,我认为remote update 就像fetch

      git pull 结合了git fetchgit merge。因此,执行git pull 将同时从远程获取更改并将它们合并到您的工作树中。

      当您想从远程获取更新但不希望它们与您的本地更改混合时,您可以使用git fetch。这对于离线、签出新的本地分支(与您当前的分支无关)以及仅检查其他人正在处理的内容很有用。

      您只需要执行git remote update 即可进行花哨的远程操作。 More discussion in this question.

      所以要获得最新信息,请使用git pull

      【讨论】:

        猜你喜欢
        • 2015-08-02
        • 1970-01-01
        • 2015-12-11
        • 1970-01-01
        • 2011-03-16
        • 2014-01-16
        • 1970-01-01
        • 1970-01-01
        • 2011-05-02
        相关资源
        最近更新 更多