“text”속성을 사용하여 파일을 정규화 한 후 git이 마스터 브랜치를 체크 아웃하고 캐리지 리턴을 제거하도록하려면 어떻게해야합니까? #

좋아요, 그래서 다음 .gitattributes과 같은 줄로 파일 을 추가 했습니다

*.css text
*.js text
etc...

그런 다음 http://git-scm.com/docs/gitattributes#_checking-out_and_checking-in 의 지침을 따랐습니다.

$ rm .git/index     # Remove the index to force Git to
$ git reset         # re-scan the working directory
$ git status        # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"

그러나 이제 내 작업 사본에는 여전히 캐리지 리턴이 있습니다! 보관하고 싶은 추적되지 않은 파일이 있습니다. 정규화 된 파일로 마스터 브랜치를 다시 체크 아웃하려면 어떻게해야합니까?

리포지토리를 복제하면 캐리지 리턴이없는 모든 파일이 있기 때문에 파일이 리포지토리에서 정규화된다는 것을 알고 있습니다.



답변

아 아! 이전 커밋을 체크 아웃 한 다음 마스터를 체크 아웃합니다.

git checkout HEAD^
git checkout -f master


답변

다른 사람들이 지적했듯이 리포지토리의 모든 파일을 삭제 한 다음 체크 아웃 할 수 있습니다. 이 방법을 선호하며 아래 코드로 수행 할 수 있습니다.

git ls-files -z | xargs -0 rm
git checkout -- .

또는 한 줄

git ls-files -z | xargs -0 rm ; git checkout -- .

나는 항상 그것을 사용하고 아직 어떤 단점도 찾지 못했습니다!

약간의 추가 설명은은 -z으로 각 항목 출력의 끝에 위에 널 문자를 추가 ls-files하고,이 -0이야기 xargs는 그 널 (null) 문자로 수신 된 출력을 구분합니다.


답변