programing

업데이트 색인 실행 취소 --assume-unchanged

megabox 2023. 5. 4. 19:48
반응형

업데이트 색인 실행 취소 --assume-unchanged

다음 명령을 실행하여 특정 디렉터리/파일의 감시/추적을 무시했습니다.

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

어떻게 되돌릴 수 있죠?<file>다시 감시/녹화됩니까?

변경되지 않음으로 설정된 실행 취소/표시 dir/파일을 가져오려면 다음을 실행합니다.

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

유닉스 셸에서 실행되는 dir/파일 목록을 가져오려면:

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

또는 PowerShell에서:

git ls-files -v | Select-String -CaseSensitive '^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

Git 문서는 매우 유용했습니다.

설명에 따르면 이 별칭은 현재 어떤 파일이 숨겨져 있는지 확인하는 데도 유용합니다.

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

@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

바로 가기

일반적인 작업을 쉽게 실행하려면 다음 별칭 섹션을 에 추가/업데이트하십시오..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 unhide --
    hidden = ! git ls-files -v | grep '^[a-z]' | cut -c3-

git update-index 함수에는 아래와 같이 입력할 수 있는 몇 가지 옵션이 있습니다.

git update-index --help

여기에서는 다양한 옵션, 즉 기능 업데이트 인덱스로 처리하는 방법을 찾을 수 있습니다.

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

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.

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

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-.
  4. tr '\012' '\000' 문자를 0 000)로 바꿉니다. 0 문자(\012)는 0 문자(\)입니다.
  5. xargs -0 git update-index --no-assume-unchanged0 문자로 구분된 모든 경로를 에 전달합니다.git update-index --no-assume-unchanged되돌리기 위해

에 추가@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에서 출력되는 두 문자만 제거됩니다. "h "으로 파일 이름에 공백이 있을 수 .|| true루프의 일부 파일에 오류가 있을 경우 명령이 조기에 종료되는 것을 방지합니다.

Git Extensions를 사용하는 경우 다음 단계를 수행합니다.

  1. 커밋 창으로 이동합니다.
  2. Working directory changes라는 이름의 드롭다운을 클릭합니다.
  3. 가정된 변경되지 않은 파일 표시 옵션을 선택합니다.
  4. 요약을 해제할 파일을 마우스 오른쪽 단추로 클릭합니다.
  5. 변경되지 않은 것으로 가정 안 함을 선택합니다.

끝났습니다.

여기에 포함되지 않은 것은 없습니다.하지만 제 2센트를 추가하고 싶습니다.빌드를 실행하면 많은 파일이 변경되고 작업이 필요하기 때문에 이 명령을 실행하면 많은 도움이 됩니다.

git update-index --assume-unchanged `git status | grep modified | sed 's|modified:||g'| xargs`

다른 사람도 유용하게 사용할 수 있기를 바랍니다.

. 에서는 대문자를 하는 것 . 자본을 사용하는 것 같습니다.Hh및 추가 합니다. " " " " grep " 용 " 파 " 일 " 합 " 이 " 필 다 " 니 " 요 " 면 " 캐 " 려 " 추 " 럿 " 가 " 하 " 태 " 상 " 명 " 사 " 및 " 령 " 을 "^또한 줄의 시작 부분과 다음 문자의 시작 부분을 나타냅니다.

윈도 솔루션

  1. Git Bash를 열고 관련 최상위 디렉터리로 변경합니다.
  2. git ls-files -v | grep '^^H' 않은 모든 합니다.
  3. git ls-files -v | grep '^^H' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree다음을 통해 수행된 모든 파일을 건너뛰는 파일을 실행 취소합니다.update-index --skip-worktree
  4. git ls-files -v | grep '^^H]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged다음을 통해 수행된 모든 파일을 건너뛰는 파일을 실행 취소합니다.update-index --assume-unchanged
  5. git ls-files -v | grep '^^H' 않은 합니다. 것도 . 이제 아무것도 반환하지 않습니다.

그래서 이런 일이 일어났습니다!실수로 "변경되지 않은 가정"을 클릭했습니다!저는 인터넷에서 검색을 해봤지만, 작동하는 해결책을 찾을 수 없었습니다!그래서, 저는 여기저기서 몇 가지를 시도했고 마침내 변하지 않는 가정을 되돌릴 수 있는 해결책(가장 쉬운 해결책)을 찾았습니다!

"당신의 프로젝트"를 마우스 오른쪽 단추로 클릭합니다.Team > Advanced > No assume Unchanged.

이미지는 방법을 보여줍니다.

언급URL : https://stackoverflow.com/questions/17195861/undo-git-update-index-assume-unchanged-file

반응형