git update-index –skip-worktree 실행 취소 의해 추적 된 파일의 변경

얼마 전에 나는 git에 의해 추적 된 파일의 변경 사항을 무시하기 위해 이것을했다.

git update-index --skip-worktree <file>

이제 실제로 해당 파일의 변경 사항을 소스로 커밋하려고합니다. 효과를 취소하려면 어떻게합니까 skip-worktree?



답변

아하! 나는 단순히 원한다 :

git update-index --no-skip-worktree <file>

답변

에 따르면 http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html 사용

git ls-files -v

특수 문자로 표시된 “변경되지 않은 것으로 가정”및 “건너 뛰기 작업 트리”파일을 보려면 “skip-worktree”파일은로 표시됩니다 S.

편집 : @amacleod가 언급했듯이 모든 숨겨진 파일을 나열하기 위해 별칭을 만드는 것은 좋은 트릭이므로 기억할 필요가 없습니다. alias hidden="git ls-files -v | grep '^S'".bash_profile에서 사용 합니다. 잘 작동합니다!


답변

적용된 모든 파일을 실행 취소하려면 작업 트리 건너 뛰기를 수행하십시오. 다음 명령을 사용할 수 있습니다.

git ls-files -v | grep -i ^S | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree
  1. git ls-files -v 모든 파일을 상태로 인쇄합니다
  2. grep -i ^S 파일을 필터링하고 작업 트리 건너 뛰기 (S) 또는 작업 트리 건너 뛰기 만 선택하고 변경되지 않은 것으로 가정합니다. -i는 대소 문자 구분을 무시합니다.
  3. cut -c 3- 상태를 제거하고 경로 만 남겨두고 3 번째 문자에서 끝까지 자릅니다.
  4. tr '\012' '\000' 줄 끝 문자 (\ 012)를 0 문자 (\ 000)로 바꿉니다.
  5. xargs -0 git update-index --no-skip-worktreegit update-index --no-skip-worktree실행 취소 하기 위해 0으로 구분 된 모든 경로를 전달합니다.

답변

@ GuidC0DE 답변을 바탕으로 Powershell 버전이 있습니다 ( posh-git 사용 )

git update-index --no-skip-worktree $(git ls-files -v | sls -pattern "^S"| %{$_.Line.Substring(2)})

그리고 파일을 숨기는 반대 명령도 참조하십시오.

git update-index --skip-worktree $(git ls-files --modified)

답변

거북이 힘내를 사용하는 사람들을 위해 :

  1. 폴더 나 특정 파일을 마우스 오른쪽 버튼으로 클릭 한 다음 TortoiseGit > Check for modifications
  2. 만 확인하십시오 Show ignore local changes flagged files. 무시한 파일 (또는 폴더를 마우스 오른쪽 버튼으로 클릭 한 경우 무시한 모든 파일)이 표시됩니다.
  3. 파일을 마우스 오른쪽 버튼으로 클릭하고 Unflag as skip-worktree and assume-unchanged

답변

Bash 별칭을 좋아하는 모든 사람들을 위해 다음은 모두를 지배하는 세트입니다 (C0DEF52 기반)

alias gitskip='git update-index --skip-worktree ' #path to file(s)
alias gitlistskiped='git ls-files -v | grep ^S'
alias gitunskip='git update-index --no-skip-worktree ' #path to file(s)
alias gitunskipall='git ls-files -v | grep -i ^S | cut -c 3- | tr ''\\012'' ''\\000'' | xargs -0 git update-index --no-skip-worktree'

답변

이 답변은 Windows를 사용하는 기술이 적은 사람들을 대상으로합니다.

“skip-worktree”를 클릭 한 파일을 기억하지 못하거나 모르는 경우 다음을 사용하십시오.

git ls-files -v             //This will list all files, you are looking for the ones with an S at the beginning of the line.

git ls-files -v | grep "S " //Use this to show only the lines of interest. Those are the files that have "skip-worktree".

문제를 해결하려면

당신은 파일로 이동-> 마우스 오른쪽 버튼으로 클릭-> 이전 버전으로 복원-> 상단에 “git”탭을 클릭-> “skip-worktree”체크 박스의 선택을 해제-> 하단에있는 “적용”을 클릭

파일이 너무 많아서 직접 고치기에는 다른 답변을 참조해야합니다.