在文档中找不到相关信息,感谢您的帮助。
1.9.4和1.8.2非常接近,但是不同的git版本之间可能存在一些问题,主要是行为不同。
如果您想知道发生了什么变化,可以检查git存储库(https://github.com/git/git)。
将其克隆到本地,并在Documentation/RelNotes
目录中搜索“compatibility”(您可以针对1.8和1.9版本):
git clone git@github.com:git/git.git
grep "compatibility" Documentation/RelNotes/1.[89]* -n
文档/RelNotes/1.8.0.txt:4:向后兼容性说明
文档/RelNotes/1.8.1.txt:4:向后兼容性说明
文档/RelNotes/1.8.2.txt:4:向后兼容性说明(此版本)
文档/RelNotes/1.8.2.txt:25:向后兼容性说明(Git 2.0)
文档/RelNotes/1.8.3.txt:4:向后兼容性说明(Git 2.0)
文档/RelNotes/1.8.4.txt:4:向后兼容性说明(Git 2.0)
文档/RelNotes/1.8.5.txt:4:向后兼容性说明(Git 2.0)
文档/RelNotes/1.9.0.txt:4:向后兼容性说明
文档/RelNotes/1.9.0.txt:30:向后兼容性说明(Git 2.0.0)
您只需要关注1.8.3及以上版本,可以看到大多数兼容性问题都涉及Git 2.0。唯一有趣的一行是这一行:
文档/发行说明/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" 以前的处理方式与 "ssh" 相同,将 "$cmd $args" 连接成单个字符串,并让 shell 取消引用。不小心忘记足够引用 $args 的用户会因此在 $IFS 空格处分割参数,并因此得到意外结果。从这个版本开始,如果命令有参数,则直接传递给 shell。
对于实验性松散对象格式的只读支持已经被删除,在 v1.4.3 和 v1.5.3 时代之间,用户可以选择为短时间编写它们的松散对象。
"git fetch" 的 "--tags" 选项的含义已经改变;该命令获取标签 除了 不带该选项的同一命令行所获取的内容。
当 "git push $there $what" 在命令行上没有明确告诉我们要更新哪个 $there 存储库中的引用时,它解释给定的 $what 部分的方式已经得到增强。
一些长期被废弃的古老命令(repo-config、tar-tree、lost-found 和 peek-remote)最终被删除。