git update-index 실행 취소-변경되지 않은 <파일> 당신은 이것을 실행합니다 : git update-index –assume-unchanged <file> 이제

Git은 특정 디렉토리 / 파일을 보거나 추적하는 것을 무시합니다. 당신은 이것을 실행합니다 :

git update-index --assume-unchanged <file>

이제 어떻게 다시 실행 취소 할 수있게 되나요? (가정이라고 가정합시다.)



답변

변경되지 않은 것으로 설정된 undo / show 디렉토리 / 파일을 얻으려면 다음을 실행하십시오 .

git update-index --no-assume-unchanged <file>

이것을 assume-unchanged실행 하는 디렉토리 / 파일 목록을 얻으려면 :

git ls-files -v|grep '^h'


답변

이것이 자주 사용하는 명령 인 경우 별명을 갖는 것도 고려할 수 있습니다. 전 세계에 추가 .gitconfig:

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged

별칭을 설정하는 방법 (아직 모르는 경우) :

git config --configLocation alias.aliasName 'command --options'

예:

git config --global alias.hide 'update-index --assume-unchanged'
git config... etc

이 파일을에 저장 한 후 .gitconfig청소기 명령을 실행할 수 있습니다.

git hide myfile.ext

또는

git unhide myfile.ext

자식 문서 는 매우 도움이되었습니다.

주석에 따르면 현재 숨겨진 파일 을 찾는 데 도움이되는 별칭입니다 .

[alias]
    hidden = ! git ls-files -v | grep '^h' | cut -c3-

답변

git update-index 기능에는 다음과 같이 입력 할 수있는 몇 가지 옵션이 있습니다.

git update-index --help

여기서는 update-index 함수로 처리하는 방법에 대한 다양한 옵션을 찾을 수 있습니다.

[파일 이름을 모르는 경우]

git update-index --really-refresh

[파일 이름을 알고있는 경우]

git update-index --no-assume-unchanged <file>

무시 목록에 추가 된 모든 파일을 되돌립니다.

git update-index --assume-unchanged <file>

답변

나는 옵션 --assume-unchanged이 보이지 않기 때문에 당신이 의미한다고 가정 합니다 --assume-changed. 의 반대는 --assume-unchanged입니다 --no-assume-unchanged.


답변

@adardesign, @adswebwork 및 @AnkitVishwakarma의 탁월한 원본 답변과 @Bdoserror, @Retsam, @seanf 및 @torek의 주석을 추가 문서 링크 및 간결한 별칭으로 합성하려면 …

기본 명령

변경되지 않은 것으로 가정 된 파일 을 다시 정상으로 재설정 하려면 :

git update-index --no-assume-unchanged <file>

변경되지 않은 모든 파일 을 나열 하려면 다음 을 수행 하십시오 .

git ls-files -v | grep '^[a-z]' | cut -c3-

변경되지 않은 모든 가정 파일을 다시 정상으로 재설정 하려면 :

git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git update-index --no-assume-unchanged --

참고 : 다른 곳에서 나열된이 명령은 변경되지 않은 모든 가정 파일을 더 이상 재설정하지 않는 것으로 보입니다 (이전에는 솔루션으로 사용했으며 이전에 솔루션으로 나열했습니다).

git update-index --really-refresh

바로 가기

git에서 이러한 일반적인 작업을 쉽게 수행하려면 사용자 를 위해 다음 별칭 섹션을 추가 / 업데이트하십시오 .gitconfig(예 : ~/.gitconfig* nix 또는 macOS 시스템).

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged
    unhide-all = ! git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git update-index --no-assume-unchanged --
    hidden = ! git ls-files -v | grep '^[a-z]' | cut -c3-

답변

적용된 모든 파일을 실행 취소하려는 경우 캐시 된 상태뿐만 아니라 소문자로 문자로 표시하는 상태뿐만 아니라 상태가 변경되지 않은 것으로 가정하면 다음 명령을 사용할 수 있습니다.

git ls-files -v | grep '^[a-z]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged
  1. git ls-files -v 모든 파일을 상태로 인쇄합니다
  2. grep '^[a-z]' 파일을 필터링하고 변경되지 않은 것으로 가정합니다.
  3. cut -c 3- 상태를 제거하고 경로 만 남겨두고 3 번째 문자에서 끝까지 자릅니다.
  4. tr '\012' '\000' 줄 끝 문자 (\ 012)를 0 문자 (\ 000)로 바꿉니다.
  5. xargs -0 git update-index --no-assume-unchangedgit update-index --no-assume-unchanged실행 취소 하기 위해 0으로 구분 된 모든 경로를 전달합니다.

답변

에 추가 @adardesign하면 추가 된 모든 파일을 재설정하려는 경우, 응답의 assume-unchanged목록으로 no-assume-unchanged한 번에 다음을 수행 할 수 있습니다 :

git ls-files -v | grep '^h' | sed 's/^..//' | sed 's/\ /\\ /g' | xargs -I FILE git update-index --no-assume-unchanged FILE || true

이것은 grep ie에서 출력 된 두 문자를 "h "제거한 다음 파일 이름에있을 수있는 공백을 피하고 || true루프의 일부 파일에 오류가있는 경우 명령이 조기에 종료되지 않도록합니다.