相关疑难解决方法(0)

尝试使用git filter-branch修复行结尾,但没有运气

我被git用Windows/Linux行结束问题所困扰.看来,通过GitHub,MSysGit和其他来源,最好的解决方案是让你的本地存储库设置为使用linux风格的行结尾,但设置core.autocrlf为true.不幸的是,我没有及早做到这一点,所以现在每次我进行更改时,行结尾都会被剔除.

我以为我在这里找到了答案,但我无法让它为我工作.我的Linux命令行知识充其量是有限的,所以我甚至不确定"xargs fromdos"行在他的脚本中做了什么.我不断收到关于没有这样的文件或目录的消息,当我设法将它指向现有目录时,它告诉我我没有权限.

我在Windows上通过Mac OS X终端尝试使用MSysGit.

git newline line-endings msysgit

266
推荐指数
3
解决办法
6万
查看次数

git am/format-patch:行结尾的控制格式

我用三个提交创建了一个补丁

git format-patch <revision_three_commits_ago>
Run Code Online (Sandbox Code Playgroud)

这会创建三个我从笔记本邮寄的补丁文件,并在我的桌面计算机上读取邮件(两个都是Windows框).

我什么时候做

git am --3way --ignore-space-change *.patch
Run Code Online (Sandbox Code Playgroud)

补丁适用,但我没有为提交获得相同的SHA1 ID.在修补文件中搜索了一下,我发现台式计算机上的修改后的行结束了LF,而笔记本上的修改后的行(我创建了修补程序)结束了CR LF.

所以,我的第一个念头就是打电话给git am没有--ignore-space-change,但是这给了我一个错误(补丁不适用).

我怎么能告诉git format-patch或者git am如何处理行结尾(msysgit 1.7.4)?

难道我真的拿VIM和更改文件格式UNIX来DOS之前,我可以应用补丁?


编辑:甚至没有用VIM修改补丁文件有帮助:我想,set ff=dos一个:%s/^M//g会有所帮助,但事实并非如此!

在我看来,应用补丁应该会产生完全相同的内容,也会产生相同的提交哈希值,就像我从创建补丁的其他repo中提取的那样.我错了吗?

git format-patch

12
推荐指数
2
解决办法
6411
查看次数

标签 统计

git ×2

format-patch ×1

line-endings ×1

msysgit ×1

newline ×1