모든 .dll을 무시하는 git 저장소


88

제목이 모든 것을 말해줍니다. NuGet 패키지를 리포지토리에 추가하려고합니다. .dll 파일을 제외한 모든 것이 감지됩니다.

gitignore 파일에는 * .dll에 대한 참조가 없습니다. .dll 파일은 전체 저장소에있는 경우 인식되지 않습니다. 정보 / 제외도 비어 있습니다.

나는 운이 좋지 않고 저장소 (원격에서 파일 시스템으로가 아닌 파일 시스템으로 파일 시스템으로)를 복제했습니다. 이 문제는 두 대의 다른 컴퓨터에서도 발생합니다.

.dll 파일을 수동으로 추가 할 수 있지만 추적해야합니다. 추적되지 않는 이유는 무엇입니까?


26
무엇합니까 git config --get core.excludesfile말은?
안토니 Hatchkins

2
또한 일반적으로 바이너리 파일을 추적하는 데 git을 사용하는 것은 좋지 않습니다. git은 개정판 간의 델타를 효율적으로 계산할 수 없으므로 공간이 있으면 모든 버전을 유지하는 것이 낭비입니다. dll이 즉석에서 생성되는 경우 git에서 무시하는 것이 좋습니다. 그렇지 않은 경우 다른 동기화 메커니즘 (예 : rsync)을 사용하는 것이 좋습니다.
안토니 Hatchkins

이들은 git에 추가하려는 NuGet 패키지입니다. NuGet의 "패키지 복원"기능을 사용하지 않기 때문에 전체 패키지 폴더를 체크인해야합니다.
Paul Knopf 2013 년

답변:


121

당신도 가지고 있습니까 ~/.gitignore_global또는 ~/.gitignore이러한 파일 패턴을 나열 할 수있는 홈 디렉토리에?

참조 https://help.github.com/articles/ignoring-files를


6
그는 dll 파일과 함께 작동하고 있음을 감안할 때, 그는 이렇게 ~ 수단 $ HOMEDRIVE $ HOMEPATH 윈도우 7에서, Windows 플랫폼에서의
안토니 Hatchkins

9
이것이 문제로 밝혀졌습니다. 그래도이 전역 무시 파일을 추가하지 않았습니다. 갑자기 갑자기 튀어 나오는 이유는 무엇입니까? 이제 생각이 났는데 최근에 (Atlassian에서) SourceTree를 설치했습니다. 범인일까요?
Paul Knopf 2013 년

6
나는 같은 문제가 있었고 그 전에 SourceTree도 설치했습니다. 그래서 나는 SourceTree가 과거에 작동했던 이후로 전역 무시 파일을 추가 한 것이 공정한 추측이라고 생각합니다.
Andreas Krebs

8
편집 : OK, 그것은 SourceTree에 의해 추가되는 링크
안드레아스 크 레브를

31
git check-ignore파일이 어디에 있는지 찾기 위해 달려야 했습니다. ~ / Documents / gitignore_global.txt에서 좋아합니다
Matt Canty 2015

98

SourceTree 및 기본 설정을 사용하는 경우 기본적으로 모든 DLL을 무시합니다 ... 도구 => 옵션 => Git then "Edit File"... .dll 앞에 "#"추가 => "# .dll".. . 저장하고 닫습니다.

그런 다음 패키지 폴더에있는 Windows 탐색기의 경우 GitBash 터미널을 열고 "git add"를 입력합니다. 작동하게 놔두고 SourceTree로 잠시 기다리면 누락 된 패키지 DLL이 모두 표시되어 커밋하고 푸시 할 수 있습니다.


13
SourceTree 사용자에 대한 정답;)
jmpcm

전역 무시 목록에 대해 알고 있었지만 GUI에서 찾을 수 없습니다. 감사합니다!
Christoph

Tools => Options => Git / Mercurial Global Ignore List ... 목록이없는 경우 생성하여 가리킬 수 있습니다.
KevinB

2
파일 위치 : ~ / Documents / gitignore_global.txt
James McCormack

이것은 소스 트리에서 작동했지만 Visual Studio에서는 무시가 내 gitignore에 없었습니다. 이 작업에 대한 모든 I 사용 소스 트리
Demodave

11

.dll 파일을 수동으로 추가 할 수 있지만 추적해야합니다. 추적되지 않는 이유는 무엇입니까?

아니요, 추가하지 않는 한 추적 해서는 안됩니다 . 이미 추가되고 커밋 된 파일 만 추적됩니다. 그것이 "추적"이 의미하는 것입니다.

수동을 통해 그들 중 하나를 추가하십시오 git add그것은 것입니다 말해 그들을 무시 왜 당신을 프롬프트 당신이 사용하는 git add -f어쨌든 파일을 추가 할 수 있습니다.


"git add '/ packages'"를 수행했지만 .dll을 감지하지 못했습니다. 그런 다음 -f를 사용하고 추가했습니다. 그래도 문제를 발견했습니다. "* .dll"은 내 전역 무시에있었습니다. 이 글로벌 무시가 어디서 왔는지 전혀 알 수 없습니다.
Paul Knopf 2013 년

2

새 파일을 추적하려면 git에게 명시 적으로 지시해야합니다.

  1. git add filename파일을 git의 색인에 추가하려면 실행하십시오 .

  2. git commit인덱스의 변경 사항을 커밋하려면 실행하십시오 .

git status 추적되지 않은 파일 및 디렉토리 목록도 표시되어야합니다.

gitignore에서 무시한 저장소의 모든 파일을 나열하려면 다음을 실행할 수 있습니다.

git ls-files . --ignored --exclude-standard --others

저장소에서 추적되지 않은 모든 파일을 나열하려면 다음을 수행하십시오.

git ls-files . --exclude-standard --others

2
실제로 무시 된 파일을 추적하려면 "git add -f"를해야했습니다. 그것은 일부 응용 프로그램이 무의식적으로 거기에 넣은 전역 무시 파일의 항목으로 밝혀졌습니다.
Paul Knopf 2013 년

2

비슷한 문제에 직면했습니다. 패키지 디렉토리의 .dll 파일을 내 자식에 추가 할 수 없습니다. 그런 다음 sourcetree가이 파일을 전역 자식 무시 설정으로 자동 추가함에 따라 gitignore_global.txt 파일을 찾았습니다. 나는 gitignore_global.txt 파일에서 * .dll을 제거했으며 그 작업은 잘 작동합니다.

아래와 같이 gitignore_global.txt 파일의 위치

C : \ Users \ XXXX \ Documents \ gitignore_global.txt 또는 sourcetree 도구 => OPTION => GIT 탭에서 찾을 수 있으며 전체 무시 목록을 찾을 수 있습니다.


1

제 경우에는 .gitignore 파일에 .dll 참조가 없었고 전역 파일도 없었습니다. 그러나 .git 하위 디렉터리에서 ms-persist.xml이라는 파일을 찾았습니다. Visual Studio의 모든 인스턴스를 닫은 다음 누락 된 .dll을 해당 파일에 수동으로 추가했습니다. Visual Studio를 다시 열었을 때 .dll이 체크인이 필요한 것으로 표시되었습니다. 체크인을했고 지금은 황금색이되었습니다.


0

프로젝트의 루트와 관련하여 전역 .gitignore어딘가에 있거나 .gitignore하위 디렉토리에 추가 파일이 있습니다.

Linux 시스템 및 MacOS에서 전역 git-ignore는 가정에있을 가능성이 높습니다. ~/

~/.gitignore_global

Windows에서는 사용자 디렉토리에있을 가능성이 높습니다. 로컬 사용자 (입력 ECHO %USERPROFILE%하거나 입력하여 확인할 수 있음)whoami 명령 줄에서

그것이 없으면 확실히 a .gitconfig가 대신 존재합니다. 여기에서 gitignore의 위치 (예 : 사용자 Documents폴더)를 찾으십시오 .

편집 : git config --list --show-origin기여하는 git-settings 및 해당 파일 위치에 대한 세부 정보를 가져 오는 데 사용 합니다.


0

이 질문이 매우 오래되었다는 것을 알고 있지만 앞으로이 질문을 방문 할 다른 사람들을 위해 추가하고 있습니다. 위에서 언급 한 답변으로 전역 무시 파일을 수정할 수 있지만 모든 git 저장소에 영향을 미칩니다. 대신 더 세분화 된 접근 방식을 원하면 개별 프로젝트 .gitignores에서 특정 DLL 또는 특정 폴더를 제외 할 수 있습니다. 이것은 모든 무시 설정을 무시하고 파일이 git에 의해 감지되고 처리되도록 강제합니다. 나는 이것이 더 나은 접근 방식이라고 생각합니다.

.gitignore (특정 프로젝트 용)

# Custom ignores
!*.dll
# or
!My.specific.dll

# rest of .gitignore
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.