我有一个从Windows和OS X访问的Git存储库,我知道已经包含一些带有CRLF行结尾的文件.据我所知,有两种方法可以解决这个问题:
设置core.autocrlf到false无处不在,
按照指示在这里(回荡在GitHub上的帮助页)到存储库转换为只包含LF行结束,然后设置core.autocrlf要true在Windows和input在OS X上有这样做的问题是,如果我有仓库中任何二进制文件那:
他们会被腐化.我的存储库可能包含这些文件.
那么为什么我不应该关闭Git的行结束转换呢?网上有很多模糊的警告关于core.autocrlf关闭造成问题,但很少有具体问题; 到目前为止我唯一发现的是kdiff3无法处理CRLF结尾(对我来说不是问题),而且一些文本编辑器有行结束问题(对我来说也不是问题).
存储库是我公司的内部存储库,因此我不需要担心与具有不同autocrlf设置或行结束要求的人共享它.
是否有任何其他问题只是留下我不知道的行结尾?
我想将我的文件直接推送到我的Web服务器.我添加了服务器testing并尝试了
git push testing
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误.制作裸存储库的解决方案可行但我希望自动检出文件.我找到了这个脚本,但没有改变任何东西.
我可以在第三个裸存储库上传输更改,但这只需要很长时间:
client:
git commit -m "test" -a
git push origin
<password>
server:
git pull origin/master
Run Code Online (Sandbox Code Playgroud)
更新(2)
我在服务器上创建了一个新分支git branch testing.
同样在服务器上我创建.git/hooks/post-update了一个添加的:
echo "a" >> /home/pi/log
git update-server-info
git stash
git merge testing >> /home/pi/log
Run Code Online (Sandbox Code Playgroud)
在我运行的客户端上
git push testing HEAD:testing
Run Code Online (Sandbox Code Playgroud)
现在我的/home/pi/log包含:
a
Updating ae2f44b..04753a9
Fast-forward
application/views/main/index.php | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
Run Code Online (Sandbox Code Playgroud)
但文件没有改变.还有什么可能是错的?