gitgitore가 정확히 무엇입니까?


212

방금 Github 리포지토리를 만들고 .gitignore파일의 용도 가 궁금 합니다. 나는 하나를 만들지 않고 시작했지만 대부분의 저장소에 하나가 있다는 사실 때문에 하나를 추가했습니다. 하나가 필요합니까? 그냥 무시해도됩니까, 아니면 사용합니까? 나는 그 주제에 대해 약간의 연구를했지만 구체적인 설명을 찾지 못했습니다.

답변:


175

.gitignoregit에게 무시해야 할 파일 (또는 패턴)을 알려줍니다. 일반적으로 컴파일 제품, 임시 파일 IDE 생성 등과 같은 다른 공동 작업자에게는 유용하지 않은 작업 디렉토리에서 임시 파일을 커밋하지 않도록하는 데 사용됩니다.

자세한 내용은 여기를 참조 하십시오 .


따라서 github.com의 새 저장소에 .gitignore를 만든 다음 git init 및 git add를 수행하십시오 . 아직 리포지토리에 연결되어 있지 않으므로 .gitignore에 아직 연결되지 않은 로컬 컴퓨터에서 어떻게 작동합니까? git commit을 수행 할 때 적용됩니까? 또는?
Xonatron

무엇을 _._gitignore위해 사용됩니까? gitignore 하위 디렉터리에 있을 때만 사용 됩니까?
Saikat Chakrabortty

따라서 로컬로 유지되지만 원점으로 푸시되지 않습니까? 따라서 일부 사용자가 github repo를 다운로드하면 해당 비밀 파일도 다운로드됩니까?
Zaveri를 만나십시오

무시 한다는 것은 무엇을 의미합니까? 누가 / 무엇을 / 언제 무시합니까? 무시 라는 단어의 의미 는 알고 있지만 Git의 맥락에서 무시의 의미에 대한 명확한 설명을 찾지 못했습니다. 분명히 그 용어는 그것을 이해하는 사람들이 완전히 이해할 수 있지만, 아직 알지 못하는 사람들을 위해 무언가를 정의하기 위해 작성된 것은 문맥에 고유 한 정의를 가진 모든 용어를 설명해야합니다.
user34660

1
@ user34660 무시는 Git이 파일에서 (패턴)으로 지정된 파일의 변경 사항을 추적하지 않음을 의미 .gitignore합니다. 그것들을 변경하더라도 git은 수정 된 것으로 표시하지 않습니다.
Mureinik

42

git이 작업 디렉토리에서 무시하려는 파일 목록입니다.

Mac을 사용 중이고 모든 디렉토리에 .DS_Store 파일이 있다고 가정하십시오. git이 그것들을 무시하기를 원하기 때문에 .DS_Store를 .gitignore의 행으로 추가하십시오. 등등.

자식 문서는 당신이 알아야 할 모든 것을 말해 줄 것입니다 : http://git-scm.com/docs/gitignore


2
귀하의 .DS_Store나는 아직 프로젝트에서 사용하기 위해 필요하지 않았기 때문에 나는이 개념에 cluing되지 않은 추측으로 시나리오는 마지막으로 나와 함께 공감. 감사합니다. 내가 사용하는 결국 내가 특별히 주목 모든 다른 운영 시스템을 사용할 때 시작 지점으로 # OS generated files #절을 참조하십시오.
phoenixlaef

2
이 스레드에 늦었다는 것을 알고 있지만 @AndyLester에게 감사합니다! 프로그래밍과 Github에 관해서는 초보자입니다. 이 유형의 질문을 해결하기 위해 작성된 많은 답변이 초보자가 이해할 수없는 용어로 채워져 있습니다 (예 : 컴파일 제품, 임시 파일 IDE가 만듭니다 .... h @ ll이 무엇인지!). 그러나 Mac 설명은 우아함이 완벽합니다!
Vesuccio

21

커밋을 수행 할 때 실수로 임시 파일을 포함하거나 특정 폴더를 작성하지 않으려 고합니다. 따라서 .gitignore커밋에서 무시하려는 항목을 나열합니다.

또한 수정 된 파일을 나열 git status하려는 가장 자주 사용되는 명령 중 하나입니다 git status.

원치 않는 파일에서 목록을 깨끗하게 보이게 git status 수 있습니다. 예를 들어, 나는 변경 a.cpp, b.cpp, c.cpp, d.cpp & e.cpp내 원하는 git status다음을 나열합니다 :

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp

git status빌드 폴더의 중간 오브젝트 파일 및 파일과 같이 변경된 파일을 나열하고 싶지 않습니다.

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
.DS_Store
/build/program.o
/build/program.cmake

따라서 git status중간 임시 파일을 나열하고 실수로 파일을 리포지토리에 커밋하지 않으려면 .gitignore모든 사람이 하는 파일 을 만들어야합니다 . .gitignore커밋에서 제외하려는 파일 및 폴더를 나열해야합니다 .

다음은 .gitignore불필요한 파일을 커밋하지 않는 것입니다.

/*.cmake
/*.DS_Store
/.user
/build

7

Git이 체크인하고 싶지 않은 파일이 있습니다. Git은 작업 복사본의 모든 파일을 다음 세 가지 중 하나로 간주합니다.

  1. 추적 됨-이전에 준비되었거나 커밋 된 파일
  2. untracked-준비 또는 커밋되지 않은 파일; 또는
  3. 무시-Git이 명시 적으로 무시하도록 지시 한 파일.

무시 된 파일은 일반적으로 리포지토리 소스에서 파생되거나 커밋되지 않아야하는 빌드 된 아티팩트 및 시스템 생성 파일입니다. 몇 가지 일반적인 예는 다음과 같습니다.

  • /node_modules또는 의 내용과 같은 종속성 캐시/packages
  • 컴파일 된 코드, 등 .o, .pyc.class파일
  • 빌드 출력 디렉토리와 같은 /bin, /out또는/target
  • 런타임에 생성 된 파일과 같은 .log, .lock또는.tmp
  • 같은 숨겨진 시스템 파일, .DS_Store또는Thumbs.db
  • 개인 IDE 구성 파일 (예 : .idea/workspace.xml

무시 된 파일은 .gitignore리포지토리의 루트에서 체크인 된 이름의 특수 파일에서 추적됩니다 . 명시적인 git ignore 명령이 없습니다. 대신, .gitignore무시하려는 새 파일이 있으면 파일을 직접 편집하고 커밋해야합니다. .gitignore파일에는 리포지토리의 파일 이름과 일치하는 패턴이 포함되어있어 무시할지 여부를 결정합니다. 다음은 샘플.gitignore 파일입니다. 자세한 내용은이 링크 를 참조하십시오


5

.gitignore의 주요 목적 – 관련없는 파일 등을 추가하지 마십시오.

특정 저장소에 많은 개인 메모 / 낙서가 있습니다. 나에게 유용하지만 다른 사람에게는 유용하지 않습니다. 나는 그것을 읽는 모든 사람들을 혼란스럽게하기 때문에 github에 업로드하고 싶지 않습니다. 좋은 점은 git에게 해당 파일을 "무시"하도록 요청할 수 있다는 것입니다. 이 방법의 유일한 비용은 내 컴퓨터가 충돌하는 경우 해당 메모를 복구 할 수 없다는 것입니다.

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