如果我安装了GIT 1.9.4版本且服务器上的存储库使用1.8.2会有问题吗?使用不同版本的GIT是否有任何问题?团队中的每个人都应该拥有相同的版本,还是无关紧要?
可以在文档中找到有关该信息的任何信息,我将非常感谢您的帮助。
答案 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-config
,tar-tree
,lost-found
和peek-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)。