2010-08-11 3 views
2

내 동료는 커밋이 변경된 파일 대신 저장소의 모든 단일 파일을 계속 포함하는 문제가 있습니다. 파일 내용은 문자 그대로 동일하지만 개인 Github 저장소의 변경 세트는 이전 버전의 행을 모두 제거하고 사실상 전혀 변경 사항이 없더라도 모든 "새로운"버전의 행이 추가되었음을 보여줍니다. 바이너리 파일에서도 마찬가지입니다. 실제 파일은 첫 번째 버전에서 다음 버전으로 동일합니다.변경되지 않은 파일을 커밋하지 않으려면 어떻게해야합니까?

이 문제의 원인은 무엇이며 어떻게 예방할 수 있습니까?

+0

실행중인 OS는 무엇입니까? – kubi

+0

나는이 문제를 너무 가지고있다 ... 나는 Win7에있다 – Redth

+0

그래, 창문은 훌륭하게 당신의 라인 엔딩을 망칠 수있게 해준다. – Cascabel

답변

6

, 정말 동일한 파일을 두 번 저장되지 않습니다.

보고있는 내용은 리포지토리 간의 줄 끝 차이점의 증상 일 수 있습니다. 설정에 대해 더 알지 못해도 정확한 조언을하는 것은 어렵지만, Git의 설정 옵션 인 core.autocrlfcore.safecrlf을 읽는 것이 도움이 될 수 있습니다.

+4

사실, 필자는 autocrlf를 전혀 사용하지 않고 모든 기고자에게 라인 엔딩을 엉망으로 만들지는 않을 정상적인 텍스트 편집기를 사용하도록 설득 했어야 만 이러한 종류의 문제에 대한 _real_ 해결책이 될 것입니다. – scy

+0

새로운 파일의 줄 끝에 대한 규칙과 함께 동의합니다. 그리고 실제로, 제가 아는 한, 대부분의 프로그래머 편집자는 이미 제정신입니다 - 단지 vim, emacs, eclipse에 대해서 확실히 알고 있습니다. – Cascabel

+1

일부 사람들은 samba 나 다른 네트워크 파일 공유를 통해 창에서 파일을 편집합니다. 몇몇은 창 편집자 및 창 git 클라이언트를 사용한다; 다른 이들은 유닉스 편집자와 유닉스 클라이언트를 사용합니다. 누군가가 법을 제정하지 않고 "여기에 우리의 코딩 표준이 있습니다 : UNIX LINE ENDINGS ONLY 만 아니면 그렇지 않습니다!"라고 말하지 않으면 라인 엔딩이 동기화되지 않는 것은 꽤 쉽습니다. – Ether

0

나는 추측하고있다.하지만 작업 디렉토리와 커밋 사이에 줄 끝이 다르다. 이 답변을 통해 문제를 해결해야합니다. 망할 놈의 내용을 해싱하여 파일을 식별하기 때문에

Trying to fix line-endings with git filter-branch, but having no luck

+0

git에 카운트 라인의 종료점 차이가 없도록하는 방법이 반드시 있어야합니다. –

+0

@ Nathan Ridley : 이것은 autocrlf가 해결하고자하는 문제입니다. – Cascabel

+0

@ Jefromi - autocrlf를 true로 설정하면 내 문제를 해결할 수 있습니까? –

관련 문제