`git pull`和`git fetch`不能一致地解释参数:(设计)bug或(设计)特性? [英] `git pull` and `git fetch` do not interpret arguments consistently: (design) bug or (design) feature?

查看:115
本文介绍了`git pull`和`git fetch`不能一致地解释参数:(设计)bug或(设计)特性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题比典型的SO问题更理论化,所以我觉得有一定的理由是为了。我对 git 所遇到的困难之一是我发现自己经常做的事情对我来说似乎是应该工作,但不是。即使在过去10个月左右几乎每天都使用 git ,这仍然是正确的,并且比我用于工作的任何其他软件工具更加深入地研究它。这意味着,在内部, git 对我来说根本没有意义。因此,这个问题的目的只有 有意义 git ,并希望能够减少我认为应该工作,以及实际上做了什么。 (顺便说一下,阅读文档不是解决方案;某些细节可能会被记录下来,但仍然没有意义。) 这个问题是后续更早的一个我问:如何分解git拉<远程> < BRANCH>到一个获取+合并?。特别是,我建议运行该问题中给出的示例脚本,并检查其输出。



git pull 命令应该是 git fetch 和a git merge 的组合。



因此,如果< BRANCHNAME> 是当前分支,然后运行

  git pull --no-edit< REMOTENAME> < BRANCHNAME> 

会更新追踪分行< REMOTENAME> /< BRANCHNAME> code> 1 ,而

  git fetch< REMOTENAME> < BRANCHNAME> 

离开< REMOTENAME> /< BRANCHNAME> 不变,因此尝试将它与< BRANCHNAME> 合并通常是不可操作的。



有什么办法可以理解这种明显的不一致吗?或者,为什么不 git fetch< REMOTENAME> < BRANCHNAME> 完全失败,或者至少发出警告?是否它是一个值得保留的常见用例?



总之,这种明显的不一致性在 code> git 界面,或者它是一个功能,如果是后者,情况如何?



编辑:只是澄清:这个问题是不可知的 / 漠不关心与上述行为如何与其文档一致的问题。这个问题试图弄清楚的是,在解释它们时,在 git pull git fetch 参数是 一个(设计)错误或一个(设计)功能。

1 Plus会执行< BRANCHNAME> 与此更新的< REMOTENAME> /< BRANCHNAME> ,或者至少它开始了这个合并。

这里是我的看法。 / p>

refspecs



首先,让我们揭开refspec这个名字,因为这是需要的这条路。

refspec代表参考规范。引用是指向提交或其他引用的东西。分支是引用,标签是引用; HEAD 是一种特殊的(所谓的符号)引用。让我们忽略当前各种引用之间的区别。



通常简称为refs。

一个refspec的形式如下:

  [+] source [:destination] 



查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆