4

我正在尝试将签出的 Git 存储库添加到我的 Perforce 库。不要误会我的意思:Git 和 Perforce 之间没有集成,我只想在那里放置一个外部 Git 存储库,以便我可以像 Git 存储库一样访问它,并像往常一样使用拉/推和其他 Git 操作。

在 .git 文件夹中,我提交了除了 TortoiseGit 特定文件和 hooks 文件夹之外的所有内容。

但是,当我将该 Git 存储库下载到另一台 PC 上的 Perforce 工作区时,git status告诉我'atal: Reference has invalid format: 'refs/remotes/origin/master. 所有四个名为 master 的文件看起来都不错,.git\refs\remotes\origin\master例如,该文件包含一个提交哈希,后跟一个 Windows 换行符。

我究竟做错了什么?

4

1 回答 1

4

好吧,那是相当明显的。Perforce 很愚蠢,默认情况下会自动转换行尾。见这里。可以在高级工作区选项中更改。

Git 不喜欢.git/*文件中的 Windows 样式的换行符,更糟糕的是,例如,如果所有源代码都有 LF 换行符并且 Perforce 将它们转换为 CRLF,那么您的整个 Git 工作树将被标记为已修改。耶!(当然,像 Git 这样的优秀 VCS 会为您提供“按原样签出,按原样提交”选项,这是唯一有意义的选项。)

于 2013-01-24T09:32:54.363 回答