我有一个有git repo的网站.我克隆了repo,这样我就可以在一个目录中开发,然后推送到repo,然后拉入live/prod目录(如果有的话,会有更好的方法来提供建议,但这是在这个问题的范围).
我在实时目录中执行了以下操作来推送所有最新更改:
git add .
git commit -a // added a message
git push
Run Code Online (Sandbox Code Playgroud)
然后我在dev目录中执行了以下操作:
git clone git@bitbucket.org:user/repo.git
Run Code Online (Sandbox Code Playgroud)
然后我打开了两个文件,prod/root/test.php和dev/root/test.php,它们看起来完全相同.但是,当我执行以下diff命令时,它输出了整个文件:
diff prod/root/test.php dev/root/test.php
Run Code Online (Sandbox Code Playgroud)
我很困惑,为什么差异会输出整个文件,如果它们是相同的...我也尝试谷歌搜索这个,但找不到其他人有这个问题.也许这是一个行结尾问题或字符编码问题,它们看起来相同,但它们实际上是不同的,当你推送到它们的回购时git/bitbucket转换它?这是我唯一能想到的......无论是那还是我都错过了一些非常明显的东西.
这是输出:
1,3c1,3
< <?
< echo '<p>Hello world!</p>';
< ?>
---
> <?
> echo '<p>Hello world!</p>';
> ?>
Run Code Online (Sandbox Code Playgroud)
Sim*_*ias 36
这似乎是一个空白问题,为了将来避免它们,你可以设置Git来规范化它们.
Windows和UNIX系统不使用相同的行结尾,为了防止基于这些发生冲突,您应该以这种方式设置git config:
git config --global core.autocrlf truegit config --global core.autocrlf input接下来,为了确保我们只提交理想的空格规则,您可以设置此配置选项:
git config --global core.whitespace trailing-space,space-before-tab,indent-with-non-tab
Run Code Online (Sandbox Code Playgroud)