我有一個repository在guthub上,它是fluentmigrator的分支。這是我第一次進入git,我已經陷入了無法清理fork和上游存儲庫之間的空白衝突的情況。無法修復git中的eol空白問題
我在Windows 7上運行,並使用msysgit客戶端。這裏有鏈接的存儲
$ git remote -v
origin https://github.com/lscharen/fluentmigrator (fetch)
origin https://github.com/lscharen/fluentmigrator (push)
upstream http://www.github.com/schambers/fluentmigrator (fetch)
upstream http://www.github.com/schambers/fluentmigrator (push)
我的本地回購是我的github回購電流,並具有對上游回購
[email protected] /c/checkout/fluentmigrator (master)
$ git diff --stat origin/master
[email protected] /c/checkout/fluentmigrator (master)
$ git diff --stat upstream/master
src/FluentMigrator.Console/MigratorConsole.cs | 563 ++++++++++----------
.../Initialization/IRunnerContext.cs | 1 +
.../Initialization/RunnerContext.cs | 1 +
src/FluentMigrator.Runner/MigrationLoader.cs | 193 ++++----
src/FluentMigrator.Runner/MigrationRunner.cs | 4 +-
src/FluentMigrator.Runner/VersionLoader.cs | 343 +++++++------
.../Versioning/VersionMigration.cs | 221 +++++----
.../Unit/TestVersionTableMetaData.cs | 105 ++--
.../Unit/VersionLoaderTests.cs | 272 +++++-----
.../Infrastructure/DefaultMigrationConventions.cs | 252 +++++-----
.../Infrastructure/MigrationMetadata.cs | 91 ++--
src/FluentMigrator/MigrationAttribute.cs | 70 ++--
.../DefaultVersionTableMetaData.cs | 84 ++--
.../VersionTableInfo/IVersionTableMetaData.cs | 57 ++-
14 files changed, 1182 insertions(+), 1075 deletions(-)
在某些文件的變化是純EOL問題的一些變化。如果我查看src/FluentMigrator.Console/MigratorConsole.cs
的diff並忽略空格。
$ git diff --stat -w upstream/master src/FluentMigrator.Console/MigratorConsole.cs
src/FluentMigrator.Console/MigratorConsole.cs | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
我試圖通過以下對各種SO答案設置core.autocrlf
的建議來解決這個問題,但似乎沒有把我在我的文件被更新的狀態,並顯示一個diff對我origin
,但匹配upstream
。
這是我試過的。
從this答案設置core.autocrlf input
$ git rm --cached src/FluentMigrator.Console/MigratorConsole.cs
rm 'src/FluentMigrator.Console/MigratorConsole.cs'
$ git config core.autocrlf input
$ git add src/FluentMigrator.Console/MigratorConsole.cs
$ git diff --stat upstream/master src/FluentMigrator.Console/MigratorConsole.cs
src/FluentMigrator.Console/MigratorConsole.cs | 563 +++++++++++++------------
1 files changed, 287 insertions(+), 276 deletions(-)
設置core.autocrlf false
和手動DOS2UNIX的
$ git config core.autocrlf false
$ dos2unix src/FluentMigrator.Console/MigratorConsole.cs
$ git diff --stat upstream/master src/FluentMigrator.Console/MigratorConsole.cs
src/FluentMigrator.Console/MigratorConsole.cs | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
關閉轉換!但是在diff中的每個插入行的末尾處掛着^M
個字符,例如,
+ public string Group;^M
設置git config core.whitespace cr-at-eol
作出diff
看起來是正確的,但我怕如果我提交這個文件,我還是會被放在不兼容的空白字符到回購。
我試圖修復我的叉拉請求,所以任何意見一般處理這個問題表示讚賞。