【问题标题】:Is a git fetch necessary before git subtree pull?在 git subtree pull 之前是否需要 git fetch?
【发布时间】:2015-05-30 19:37:18
【问题描述】:

我指的是以下文章:git subtree blog entry

其中列出了以下命令:

git remote add -f tpope-vim-surround https://bitbucket.org/vim-plugins-mirror/vim-surround.git
git subtree add --prefix .vim/bundle/tpope-vim-surround tpope-vim-surround master --squash
git fetch tpope-vim-surround master
git subtree pull --prefix .vim/bundle/tpope-vim-surround tpope-vim-surround master --squash

我的问题是:

git fetch tpope-vim-surround master 需要什么?
下一行列出的 git pull 是不是多余?

【问题讨论】:

    标签: git git-subtree


    【解决方案1】:

    我相信它最近已修复,但旧版本的 git subtree 需要在本地存在具有正确名称的分支,然后才能远程获取它,否则它会因“foo 不引用提交”而失败。

    所以可能是为了兼容。

    【讨论】:

      【解决方案2】:

      git pull 实际上是 2 个命令的别名:git fetch && git merge 因此,如果您正在运行 git pull,您实际上也在执行拉取操作。

      下面的下一行列出的 git pull 是不是多余的?

      抓取有什么作用?

      为了理解 fetch,让我解释一下 git 中的场景之外发生了什么。
      Git 将其内容存储在.git 文件夹中。让我们把它看成是 git 内部文件系统。

      当您执行git fetch 时,它实际上会更新内部 git 文件系统(更准确地说是打包和索引文件)。 fetch 不会更新您的工作目录,直到您 merge 更改所需的分支

      deos git pull 是做什么的?

      正如关于fetch 的解释,git pull 实际上是 2 个命令的别名:git fetch && git merge,因此每次执行 git pull 时,您都在更新 git 内部文件系统 + 将这些更改合并到所需的分支中(在大多数情况下是您当前的分支)


      所以回答你的问题:

      下面的下一行列出的 git pull 是不是多余的?

      答案是第一次提取是多余的,而不是第二次提取。

      【讨论】:

        猜你喜欢
        • 2015-04-20
        • 1970-01-01
        • 1970-01-01
        • 2017-12-31
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 2017-02-23
        • 2014-12-01
        相关资源
        最近更新 更多