완전히 이상한 이유로 저는 git 저장소에 혼합 라인 엔딩 파일이 있습니다. 때문에 그 라인 엔딩에 내가하려고하면 실패 커밋 체리 - 선택 (. 적어도 그 git diff
주장이 모든 커밋은 true
로 설정 core.autocrlf
옵션을 수행 하는데도 불구하고 무엇인가) : 당신이 할 수git cherry-pick을 선택하고 eol 유형을 무시하십시오.
$ git status
# On branch master
nothing to commit, working directory clean
$ git cherry-pick 77fe281
error: could not apply 77fe281... TFS changeset 9148
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
$ git status
# On branch master
# You are currently cherry-picking.
# (fix conflicts and run "git commit")
#
# Changes to be committed:
#
# modified: some/other/file.txt
#
# Unmerged paths:
# (use "git add <file>..." to mark resolution)
#
# both modified: Builds/rakefile.rb
#
$ cat Builds/rakefile.rb |grep "<<<"
<<<<<<< HEAD
$ git cherry-pick --abort
Builds/rakefile.rb 파일에 충돌이 있습니다. BTW, 자식은 그 두 파일에있는 모든 라인은 아마 그 다른 라인 엔딩으로 인해 주장하고있다. 하지만 적어도 여기에는 일관성이 있습니다.
그러나 무시-모든 공간을 옵션으로 같은 시도 할 수 있습니다 : 여기$ git status
# On branch master
nothing to commit, working directory clean
$ git cherry-pick 77fe281 --strategy recursive -Xignore-all-space
error: addinfo_cache failed for path 'Builds/rakefile.rb'
U Builds/rakefile.rb
error: 'commit' is not possible because you have unmerged files.
hint: Fix them up in the work tree,
hint: and then use 'git add/rm <file>' as
hint: appropriate to mark resolution and make a commit,
hint: or use 'git commit -a'.
fatal: Exiting because of an unresolved conflict.
$ git status
# On branch master
# You are currently cherry-picking.
# (fix conflicts and run "git commit")
#
# Changes to be committed:
#
# modified: some/other/file.txt
#
# Unmerged paths:
# (use "git add <file>..." to mark resolution)
#
# both modified: Builds/rakefile.rb
#
$ cat Builds/rakefile.rb |grep "<<<"
$
자식은 파일을 병합 할 수 있다고 주장하지만, 파일이 실제로 병합 (정확하게!). 내가 도대체 뭘 잘못하고있는 겁니까?
는:하지만 단지 다른 사람을 위해, 그것은 충돌이라고 생각하는 이유가 응답하지 않습니다
비슷한 문제가 발생했지만'ignore-all-space'가 제대로 작동하지 않았습니다. 나는'renormalize '를 지정해야했고, 그것은 트릭을했다. – Timothy