在git子树拉之前是否需要git fetch?

时间:2015-05-30 19:37:18

标签: git git-subtree

我参考了以下文章: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不是多余的吗?

2 个答案:

答案 0 :(得分:3)

我认为最近修复了它,但是git subtree的旧版本需要一个具有正确名称的分支才能在远程获取它之前在本地存在,否则它将失败并且“foo不引用提交。“

所以它可能与之相容。

答案 1 :(得分:2)

git pull实际上是2个命令的别名:git fetch && git merge所以如果你正在运行git pull,你实际上也在进行拉取。

  

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

fetch做了什么?

为了理解fetch,让我先解释一下git中的场景beyhond。 Git将其内容存储在.git文件夹中。让我们将其视为git内部文件系统。

当你执行git fetch时,它实际更新了内部git文件系统(更准确的包和索引文件)。在fetch对所需分支进行更改之前,merge 不会更新您的工作目录

什么deos git pull?

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

所以回答你的问题:

  

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

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