질문 : .gitignore에서 무시되는 특정 파일을 표시하는 Git 명령
힘내에 발이 젖어 있고 다음과 같은 문제가 있습니다.
내 프로젝트 소스 트리 :
/
|
+--src/
+----refs/
+----...
|
+--vendor/
+----...
벤더 브랜치에 코드 (현재 MEF)가 있는데 여기에서 컴파일 한 다음 참조를 프로젝트가 가져 오는 /src/refs
내 문제는 .gitignore
*.dll
및 *.pdb
무시하도록 설정되어 있다는 것입니다. git add -f bar.dll
을 수행하여 무시 된 파일을 강제로 추가 할 수 있습니다. 문제는 무시되는 파일이 무엇인지 나열 할 수 없다는 것입니다.
무시 된 파일을 나열하여 추가하는 것을 잊지 않도록하고 싶습니다.
git ls-files
의 man 페이지를 읽었으며 작동시킬 수 없습니다. git ls-files --exclude-standard -i
가 내가 원하는 것을해야한다고 생각합니다. 내가 무엇을 놓치고 있습니까?
답변
메모:
- xiaobai 의 대답은 : 간단 (git1.7.6 +)는
git status --ignored
.gitignore
파일의 효과를 무시하도록 git-status에 지시하는 방법이 있습니까? "에 자세히 설명되어 있습니다. ) - MattDiPasquale 의 답변 (upvoted)
git clean -ndX
는 이전 gits에서 작동하여 무시 된 파일을 제거 할 수 있는 미리보기를 표시합니다 (아무것도 제거하지 않음)
또한 흥미 롭습니다 ( qwertymk 의 답변에 언급), 적어도 Unix에서 git check-ignore -v
명령을 사용할 수도 있습니다 (CMD Windows 세션 에서는 작동하지 않음)
git check-ignore *
git check-ignore -v *
두 번째는 git repo에서 파일을 무시하도록 만드는 .gitignore
의 실제 규칙을 표시합니다.
Unix에서 " What expands to all files in current directory recursively? "및 bash4 +를 사용합니다.
git check-ignore **/*
(또는 find -exec
명령)
참고 : https://stackoverflow.com/users/351947/Rafi B. 는 (위험한) globstar 를 피하기 위해 의견에서 제안합니다.
git check-ignore -v $(find . -type f -print)
.git/
하위 폴더에서 파일을 제외해야합니다.
원래 답변 42009)
git ls-files -i
소스 코드 가 다음을 나타내는 것을 제외하고는 작동해야합니다.
if (show_ignored && !exc_given) {
fprintf(stderr, "%s: --ignored needs some exclude pattern\n",
argv[0]);
exc_given
?
실제로 무엇이든 나열 -i
뒤에 매개 변수가 하나 더 필요합니다.
시험:
git ls-files -i --exclude-from=[Path_To_Your_Global].gitignore
(하지만 필터와 함께 캐시 된 (무시되지 않은) 개체 만 나열하므로 원하는 것이 아닙니다)
예:
$ cat .git/ignore
# ignore objects and archives, anywhere in the tree.
*.[oa]
$ cat Documentation/.gitignore
# ignore generated html files,
*.html
# except foo.html which is maintained by hand
!foo.html
$ git ls-files --ignored \
--exclude='Documentation/*.[0-9]' \
--exclude-from=.git/ignore \
--exclude-per-directory=.gitignore
실제로 내 'gitignore'파일 ( 'exclude'라고 함)에서 도움이 될 수있는 명령 줄을 찾습니다.
F:\prog\git\test\.git\info>type exclude
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
그래서....
git ls-files --ignored --exclude-from=.git/info/exclude
git ls-files -i --exclude-from=.git/info/exclude
git ls-files --others --ignored --exclude-standard
git ls-files -o -i --exclude-standard
트릭을해야합니다.
(덕분에 honzajde는 지적 코멘트에 그 git ls-files -o -i --exclude-from...
캐시 파일에 포함되지 않습니다 만 git ls-files -i --exclude-from...
(없이 -o
) 않습니다.)
ls-files 매뉴얼 페이지 에서 언급했듯이 --others
는 캐시되지 않고 커밋되지 않고 일반적으로 무시되는 파일을 보여주기 위해 중요한 부분입니다.
--exclude_standard
는 단순한 단축키가 아니라 모든 표준 "무시 된 패턴"설정을 포함하는 방법입니다.
exclude-standard
표준 git 제외 : .git/info/exclude
, 각 디렉토리의 .gitignore
user's global exclusion file
.
출처 : https://stackoverflow.com/questions/466764/git-command-to-show-which-specific-files-are-ignored-by-gitignore
'개발관련 > Git' 카테고리의 다른 글
git 스테이징 영역에서 파일을 제거하는 방법 (0) | 2021.11.26 |
---|---|
병합 된 모든 Git 브랜치를 삭제하는 방법 (0) | 2021.11.26 |
git이 항상 특정 지점에서 가져 오도록 하는 방법 (0) | 2021.11.26 |
기존 소스 코드를 GitHub로 가져 오기 (0) | 2021.11.26 |
git config --global의 사용 방법 (0) | 2021.11.24 |