开发人员之间不同版本的git

时间:2014-11-12 09:57:37

标签: git compatibility versions

如果我安装了GIT 1.9.4版本且服务器上的存储库使用1.8.2会有问题吗?使用不同版本的GIT是否有任何问题?团队中的每个人都应该拥有相同的版本,还是无关紧要?

可以在文档中找到有关该信息的任何信息,我将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

1.9.4和1.8.2非常接近,但可能在不同的git版本之间存在一些问题,主要是不同的行为。

如果您想知道更改了什么,可以查看git repository(https://github.com/git/git) 在本地克隆,并搜索"兼容性"在Documentation/RelNotes目录中(您可以定位1.8和1.9版本):

git clone git@github.com:git/git.git
grep "compatibility" Documentation/RelNotes/1.[89]* -n
  

Documentation / RelNotes / 1.8.0.txt:4:向后兼容性说明
  Documentation / RelNotes / 1.8.1.txt:4:向后兼容性说明
  Documentation / RelNotes / 1.8.2.txt:4:向后兼容性说明(此版本)
  Documentation / RelNotes / 1.8.2.txt:25:向后兼容性说明(适用于Git 2.0)
  Documentation / RelNotes / 1.8.3.txt:4:向后兼容性说明(适用于Git 2.0)
  Documentation / RelNotes / 1.8.4.txt:4:向后兼容性说明(适用于Git 2.0)
  Documentation / RelNotes / 1.8.5.txt:4:向后兼容性说明(适用于Git 2.0)
  Documentation / RelNotes / 1.9.0.txt:4:向后兼容性说明
  Documentation / RelNotes / 1.9.0.txt:30:向后兼容性说明(适用于Git 2.0.0)

您只关注1.8.3+版本,您可以看到大多数兼容性问题都与Git 2.0有关。唯一有趣的是这一行:

  

Documentation / RelNotes / 1.9.0.txt:4:向后兼容性说明

你看一下1.9.0.txt,你会看到:

  • git submodules foreach $cmd $args行为已得到增强
  • 松散对象格式已被删除
  • git fetch --tags行为已更改
  • git push $there $what已得到增强
  • repo-configtar-treelost-foundpeek-remote已被删除

没有什么令人担忧但git fetch --tags更改,您不应该有任何兼容性问题。无论如何,请仔细阅读全文:

  

向后兼容性说明

     

" git submodule foreach $ cmd $ args"用于治疗" $ cmd $ args"相同   方式" ssh"做了,将它们连接成一个字符串并让它们   shell unquote。忘了充分引用$ args的粗心用户   得到他们的论点在shell的$ IFS空格中拆分了   由于这个意外的结果。从这个版本开始,   命令行直接传递给shell,如果它有一个参数。

     

对实验性松散对象格式的只读支持,其中包含用户   可以选择短时间写下他们的松散物体   在v1.4.3和v1.5.3时代之间,已被删除。

     

" - 标签"的含义选项" git fetch"已经改变;该   命令除之外还提取标记   没有选项的命令行。

     

方式" git push $ there $ what"解释$给出的部分   命令行,当它没有明确告诉我们的冒号时   $ there存储库中的ref将被更新,已得到增强。

     

一些长期以来被弃用的古老命令是   终于走了(repo-config,tar-tree,lost-found和peek-remote)。