programing

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

starjava 2023. 10. 4. 20:28
반응형

"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"

하지만 이제 제 작업 복사본에는 여전히 마차가 돌아옵니다!보관하고 싶은 미추적 파일이 있습니다.정규화된 파일로 마스터 브랜치를 다시 체크아웃하려면 어떻게 해야 합니까?

Repo를 복제하면 캐리지 리턴 없이 모든 파일이 저장되어 있기 때문에 파일이 저장소에 정규화되어 있다는 것을 알고 있습니다.

아! 이전 커밋을 확인하고 마스터를 확인합니다.

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가 각 항목 출력의 끝에 null 문자를 추가합니다.ls-files, 그리고.-0말한다xargs수신 중인 출력을 해당 null 문자로 구분합니다.

변경 내용을 저장합니다.

git stash

현재 분기에 대해 원격에서 마지막 커밋까지 업데이트된 변경 사항을 적용합니다(추적되지 않거나 수정되지 않은 파일로 치료 시작).만일의 경우를 대비하여

git checkout .

이제 마스터 분기로 전환합니다.

git checkout master

언급URL : https://stackoverflow.com/questions/17223527/how-do-i-force-git-to-checkout-the-master-branch-and-remove-carriage-returns-aft

반응형