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.