2010-05-05 3 views
12

git commit을 수행 할 때 내 편집기에서 추적 할 수없는 파일을 표시하지 않을 방법이 있습니까 ($EDITOR에 정의되어 있음)? 나는 쉘 (git status -uno)에서 그렇게하는 법을 알고 있지만 편집기에서도 그렇게하고 싶다.추적되지 않은 파일을 표시하지 않도록하십시오

나는이 파일들을 영원히 무시하고 싶지는 않습니다. 나는 단지 어떤 경우에 그들을보고 싶지 않다.

+0

가능한 복제 ([I가 '자식 상태'가 .gitignore를 사용하지 않고 비 추적 파일을 표시하지 않도록를? 어떻게해야합니까] http://stackoverflow.com/questions/594757/how-do- i-do-a-git-status-so-itnt-display-untracked-files-without-use) –

답변

12

:

 
     -u[], --untracked-files[=] 
      Show untracked files (Default: all). 

      The mode parameter is optional, and is used to specify the handling of untracked 
      files. The possible options are: 

      · no - Show no untracked files 

      · normal - Shows untracked files and directories 

      · all - Also shows individual files in untracked directories. 

       See git-config(1) for configuration variable used to change the default for 
       when the option is not specified. 
+0

감사합니다. – chiggsy

+0

git에 대한 좋은 점은 비슷한 기능을 가진 명령간에 명령 줄 옵션을 일관되게 유지하려고한다는 것입니다. –

+0

영구적으로 설정을 변경하는 방법이 있지만'status' 및'commit' 명령에 대해 독립적으로 알고 있습니까? 나는 그것들을'status'로보기를 원하지만'commit'을보고 싶지는 않지만'git-config (1)'은 두 명령 모두에 영향을주는'status.showUntrackedFiles' 옵션만을 보여줍니다. –

28

을 저장소에 저장하려는 경우 .gitignore 파일을 사용하여 무시하십시오. 자세한 내용은 gitignore man page에서 확인할 수 있습니다. 그들은 $EDITOR에 커밋 메시지를 입력 할 때 추적되지 않은 파일로 나타나지 않습니다.

당신은 단순히 커밋 할 때 here 언급 한 바와 같이, status.showUntrackedFilesno에 망할 놈의 구성 변수를 설정 그들을보고 싶지 않은 경우 : 임시 사용하여 자식이 비 추적 파일을 마스크 옵션 -uno을 커밋 할 수

$ git config --global status.showUntrackedFiles no 
+0

흠, 이것은 흥미로운 사실입니다. 감사 번호 – chiggsy

+4

은 현재의 repo에서만 추적 할 수없는 파일을 무시하기를 원한다면 다음 명령을 사용하십시오 :'git config --local status.showUntrackedFiles no' – yaitloutou

+0

@yaitloutou, 당신의 확장을 답안에 추가해야합니다. – oliversm

5

을 (git help commit).

영구 솔루션을 원할 경우 .gitignore 파일을 사용하십시오. 예를 들어

, 당신은 파일 bar.foo.bak 확장자를 가진 모든 파일을 무시하려는 경우, 당신은 juste가 포함 된 프로젝트의 루트 디렉토리에 .gitignore 파일을 만들 수 있습니다

bar.foo 
*.bak 

일부 파일이 있습니다 글로벌 gitignore 파일에 의해 무시됩니다 (예 : 도트 파일 및 디렉토리는 무시 됨). 파일 이름 또는 템플릿 (와일드 카드) - -

3

파일 이름을 추가 .gitignore 파일 및 저장소에 그 추가 : 예를 들어

git add .gitignore 
git commit -m 'Added .gitignore file' 

, 내 이동 저장소에, 내가 가지고 포함 .gitignore 파일 :

*.o 
*.a 
*.so 
*.pl 
*.6 
*.out 
_obj/ 
_cgo_defun.c 
_cgo_export.c 
_cgo_export.h 
_cgo_gotypes.go 
*.cgo1.go 
*.cgo2.c 
example/example 
ifix1/esqlc-cmds.c 
아마 와일드 카드로 ' _cgo_의 이름을 압축해야

; 다른 '.c'파일은 '.ec'파일에서 생성되므로 추적 할 필요가 없습니다. git-commit 사람 페이지에서

1

알림 변경된 REPO 파일 또는 환매 특약을 추가 할 필요가 새 파일 중 하나에 대해 싶어하지 않는 시간이있다. 그러나 파일 이름을 .gitignore에 추가하는 것도 좋지 않을 수 있습니다. 예를 들어 다른 사용자가 생성하지 않을 가능성이있는 로컬에서 생성 된 파일 (예 : 편집기로 만든 파일) 또는 실험용 테스트 코드 파일은 .gitignore 파일에 표시하기에 적합하지 않을 수 있습니다.이러한 경우에

, 이러한 솔루션 중 하나를 사용

git update-index --assume-unchanged "$FILE"

취소하려면 다음 파일이 변경된 REPO 파일

사용을 명령 인 경우

  1. 을 이 명령을 사용하십시오 :

    git update-index --no-assume-unchanged "$FILE"

    update-index 명령은 아직 repo에 추가되지 않은 새 파일에는 사용할 수 없습니다.

  2. 파일이 REPO의 exclude 파일의 파일 이름을 추가 새와의 repo

    에 추가하지 않은 경우

    :이 또한 변경된의 repo 파일에 사용

    echo "$FILE" >> .git/info/exclude

    하지만,이 그것을위한 특정 실행 취소 명령이 아닙니다. exclude 파일을 편집하고 파일 이름을 삭제해야합니다. 또는 다른 명령을 대략 수 :이 기존 exclude 파일을 덮어 쓰고 지정된 파일 이름이 정규 표현식에 영향을 미칠 수있는 특수 문자가 포함 된 경우, 그 결과는 예측할 수

    ex -s -c"g/^${FILE}\$/d" -cwq .git/info/exclude

    하는 것으로.

    exclude 파일의 용도는 "Ignoring files" on GitHub Help 페이지에서 권장됩니다.

관련 문제