code

git update-index --assume-unchanged on directory

codestyles 2020. 8. 28. 07:30
반응형

git update-index --assume-unchanged on directory


자식 1.7.12

주어진 디렉토리 아래의 모든 파일을 변경되지 않은 것으로 표시하고 싶습니다.

1) git update-index --assume-unchaged dir/"무시 경로"를 제공합니다.

2) git update-index --assume-unchaged dir/*추적되지 않는 파일을 만나게되므로 빠르게 실패하므로 "심각 : 파일을 표시 할 수 없음"을 표시하고 종료됩니다.

3) 표시 할 파일 목록을 생성 해보십시오. cd원하는 디렉토리로 이동 한 다음 git ls-files | tr '\n' ' ' | git update-index --assume-unchanged. 이것은 오류 메시지를 생성하지 않지만 파일을 성공적으로 표시하지는 않습니다. 명령의 첫 번째 부분 인은 git ls-files | tr '\n' ' '표시하려는 모든 파일의 공백으로 구분 된 목록을 올바르게 생성합니다. 해당 명령의 출력을 복사하여 명령 줄에 붙여 넣으면 git update-index명령이 작동합니다. 파이프로 작동하지 않는 것은 무엇입니까?

아니요, dir.gitignore 에 추가 하는 것만으로는 충분하지 않습니다 . 이 파일이 저장소에 있어야하지만 원하지 않는 변경이 로컬에서 수행되므로 사용자가 끌어 올 수 있도록 무시해야합니다.


git update-index 표준 입력이 아닌 명령 줄에서 파일 이름을 원합니다.

1 단계:

cd 변경되지 않은 것으로 가정하려는 폴더에

2 단계:

다음 중 하나를 수행 할 수 있습니다.

git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')

또는

git ls-files | tr '\n' ' ' | xargs git update-index --assume-unchanged

두 경우 모두 공백이있는 파일 이름은 문제가됩니다. 그것들이 있다면 이것을 사용할 수 있습니다.

git ls-files -z | xargs -0 git update-index --assume-unchanged

편집 : @MatthewScharley의 git ls-files -z.

Windows 명령

참고 : Windows를 사용하는 경우 Git Bash사용 하여 다음 명령을 실행하십시오.


findGNU Findutils 명령에는 구문이 약간 특별하지만 -exec을 사용하는 대부분의 번거 로움을 제거 하는 옵션이 xargs있습니다. 그러나 공백이있는 파일 이름을 완벽하게 처리합니다.

이 명령은 나열된 디렉토리의 모든 파일이 변경되지 않은 것으로 간주하도록 git을 가져옵니다.

find path/to/dir -type f -exec git update-index --assume-unchanged '{}' \;

Find는 -execuntil 이후 모든 인수를 취하고 ;(쉘이 그것을 먹지 않도록 이스케이프해야 함) 발견 된 각 파일에 대해 한 번씩 실행 {}하고 발견 된 파일의 이름으로 대체합니다 (다시 작은 따옴표로 묶여 쉘이 먹지 않음).

사용 find(경기가 파일 이름이 식을 일치하는지 여부, 파일 또는 디렉토리인지, 최대 재귀 수준)의 키워드와 일치하고 -exec당신은 강력한 것들 모든 종류의 작업을 수행 할 수 있습니다.

find명령 의 다른 구현에 대해 확실하지 않습니다 . YMMV.


에 디렉토리 이름을 추가합니다 .git/info/exclude. 추적되지 않은 파일에 대해 작동합니다.


네,

git update-index --assume-unchanged

디렉토리가 아닌 파일에서만 작동합니다. 더 빠른 방법 중 하나라고 생각합니다.

cd dir
ls | xargs -l git update-index --assume-unchanged

참고 URL : https://stackoverflow.com/questions/12288212/git-update-index-assume-unchanged-on-directory

반응형