这几个文件内容不一样吗? GitHub 客户端 diff 一片绿

2016-03-13 01:34:47 +08:00
 MOxFIVE

  我把 Win 下 clone 仓库得到的文件覆盖 Mac 下 GitHub 客户端同步的仓库后,出现这些差异。我试着用 Sublime 和 Notepad 把编码都改成 UTF-8 ,还是没通过检测,到底是哪里导致的差异呢?

  最后附上文件: http://moxfive.xyz/resources/github-diff.zip

9934 次点击
所在节点    程序员
15 条回复
lianz
2016-03-13 01:45:16 +08:00
换行问题
lianz
2016-03-13 01:49:31 +08:00
换行问题,已确认。

$ xxd Mac/GithubRepoWidget.js |head
0000000: 2f2a 210a 0947 6974 4875 622d 5265 706f /*!..GitHub-Repo
0000010: 2d57 6964 6765 742e 6a73 202d 204e 6f74 -Widget.js - Not
0000020: 2064 6570 656e 6420 6f6e 206a 5175 6572 depend on jQuer
0000030: 7920 6f72 204f 7468 6572 2046 7261 6d65 y or Other Frame
0000040: 776f 726b 2e0a 094c 6963 656e 7365 3a20 work...License:
0000050: 204d 4954 0a2a 2f0a 2866 756e 6374 696f MIT.*/.(functio
0000060: 6e28 2920 7b0a 0976 6172 2072 656e 6465 n() {..var rende
0000070: 7265 6420 3d20 2767 6974 6875 622d 7769 red = 'github-wi
0000080: 6467 6574 2d72 656e 6465 7265 6427 2c0a dget-rendered',.
0000090: 0909 6373 7353 7472 203d 2027 2e70 6174 ..cssStr = '.pat

$ xxd Win/GithubRepoWidget.js |head
0000000: 2f2a 210d 0a09 4769 7448 7562 2d52 6570 /*!...GitHub-Rep
0000010: 6f2d 5769 6467 6574 2e6a 7320 2d20 4e6f o-Widget.js - No
0000020: 7420 6465 7065 6e64 206f 6e20 6a51 7565 t depend on jQue
0000030: 7279 206f 7220 4f74 6865 7220 4672 616d ry or Other Fram
0000040: 6577 6f72 6b2e 0d0a 094c 6963 656e 7365 ework....License
0000050: 3a20 204d 4954 0d0a 2a2f 0d0a 2866 756e : MIT..*/..(fun
0000060: 6374 696f 6e28 2920 7b0d 0a09 7661 7220 ction() {...var
0000070: 7265 6e64 6572 6564 203d 2027 6769 7468 rendered = 'gith
0000080: 7562 2d77 6964 6765 742d 7265 6e64 6572 ub-widget-render
0000090: 6564 272c 0d0a 0909 6373 7353 7472 203d ed',....cssStr =
Strikeactor
2016-03-13 01:52:15 +08:00




Beyond Compare 的比较结果反正是一毛一样
7654
2016-03-13 03:43:40 +08:00
档案格式问题, MAC 下是 UNIX 格式, Win 下是 Dos\Windows
也就是换行符差异,用 notepad++的档案格式转换转成同一种格式
yyfearth
2016-03-13 03:54:05 +08:00
很明显换行符的问题
全部统一成 \n 就可以了
因为 Win 下 默认 \r\n
jsfaint
2016-03-13 07:47:50 +08:00
windows 版的 git 在安装时有一个选项,问你怎么处理换行符,估计楼主选的默认……其实应该选第三个 commit as chechout as 啥的那个
caixiexin
2016-03-13 08:18:26 +08:00
Windows git 的第一大坑。就是每次 commit 的时候偷偷把\r
\n 换成\n
pull 的时候把
caixiexin
2016-03-13 08:25:54 +08:00
Windows git 的第一大坑。
就是每次 commit 的时候偷偷把\r\n 换成\n
pull 的时候把\n 变成\r\n
这些在 win 下会自动完成,这个配置最好改回来,不然后患无穷
http://blog.jobbole.com/46200/
ynyounuo
2016-03-13 08:44:13 +08:00
CRLF / LF
MOxFIVE
2016-03-13 11:55:52 +08:00
@lianz 谢谢。直接 16 进制对比真不错, 0d0a
MOxFIVE
2016-03-13 11:59:20 +08:00
@7654 @ynyounuo @yyfearth 都是长者,一语中的
MOxFIVE
2016-03-13 12:00:15 +08:00
@jsfaint 当时不懂就一路默认,没想到默认是个坑哈
MOxFIVE
2016-03-13 12:01:58 +08:00
@caixiexin 感谢!很详细的指南,研究填坑中
GhostFlying
2016-03-13 12:46:19 +08:00
其实默认坑到人概率也不高,关键在于不要跨系统复制 repo 。。要走 push pull
SpicyCat
2016-03-14 11:54:53 +08:00
@GhostFlying 这是正解。如果一直走 git 流程的话,也不会坑,就是怕直接跨平台复制粘贴。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/263109

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX