GitHub의 수십억 개의 불필요한 파일

2023. 2. 8. 19:09이것저것

728x90

 

 

Billions of unnecessary files in GitHub

Lack of knowledge causes such a waste on GitHub

dev.to

 

Open Source Development Course을 위한 쉬운 과제를 찾던 중 많은 가르침과 연습을 해 볼 수 있는 기회이기도 한 매우 곤란한 것을 발견했습니다.

 

어떤 파일들은 git에 있을 필요가 없다

상식적으로 우리는 git 저장소에 생성된 파일을 포함할 필요가 거의 없습니다. 이 말은 다시 생성될 수 있으므로 버전 관리에 보관할 필요가 없다는 것입니다. (이러한 예외는 생성에 많은 시간이 걸리거나 달의 특정 주기 동안에 끝날 수 있는 것들 뿐입니다.)

 

git 저장소에 타사 라이브러리를 저장할 필요도 없습니다. 그 대신 필요한 버전과 함께 종속성 목록으로 저장하여 해당 라이브러리는 다운로드하여 설치합니다. (글쎄, 자신이 편집증 환자라고 생각하는 사람들은 그들이 사용하는 모든 타사 라이브러리의 사본을 다운로드하고 저장하여 절대 사라지지 않도록 할 수 있지만 우리는 지금 그 말을 하고 있지 않다는 것을 알 것입니다).

 

.gitignore

우리나 다른 누구의 실수로 이러한 파일을 git 저장소에 추가하지 않도록 하는 방법은 .gitignore라는 파일을 만들고 git에서 제외하려는 파일과 일치하는 패턴을 포함하고 .gitignore 파일을 우리의 저장소에 추가하는 것입니다.  git은 해당 파일을 무시 할 것입니다. 그리고,

git status를 실행해도 표시되지 않을 것입니다.

 

/gitignore 파일의 형식은 .gitignore 문서에 설명되어 있습니다.

 

간단히 말해서:

/output.txt
 

프로젝트의 루트에 있는 output.txt 파일을 무시 합니다.

output.txt
 

프로젝트의 어떤 곳에 있든 output.txt를 무시합니다. (루트 또는 어떠한 하위 디렉토리에서도)

*.txt
 

.txt 확장자를 가진 모든 파일

venv
 

프로젝트의 어떤 곳에든 존재 하는 venv 폴더.

.gitignore 문서를 확인하면 더 있습니다!

 

.gitignore에 대한 무지

분명히 git과 GitHub를 사용하는 많은 사람들이 .gitignore에 대해 모릅니다.

 

증거로서:

 

Python 개발자는 virtualenv라는 것을 사용하여 다른 프로젝트에서 서로 다른 종속성을 쉽게 사용할 수 있도록 합니다. virtualenv를 만들 때 일반적으로 venv라는 폴더에 모든 타사 라이브러리를 설치하도록 구성됩니다. 이 폴더는 git에 포함하면 안 됩니다.

그런데:

 

이 venv 검색에서 4억 5200만개가 조회 됩니다.

 

유사한 방식으로 NodeJS 개발자는 node_modules라는 폴더에 종속 항목을 설치합니다. 해당 검색으로 2억건이 조회 됩니다: node_modules

 

마지막으로 macOS에서 Finder 애플리케이션을 사용하고 폴더를 열면 .DS_Store라는 빈(!) 파일이 생성 될 것입니다. 이 파일은 실제로 어디에도 필요하지 않습니다. 그러나 저는 GitHub에서 많은 이 파일의 사본들을 보았습니다. 불행히도 지금까지 나는 그것들을 찾는 방법을 알 수 없었습니다. 내가 찾은 가장 가까운 것은 이 검색방법입니다.

 

.gitignore 오해

.gitignore가 동작 방식을 오해하는 사람들도 많습니다. 단어해석에 대한 표현이 약간 모호하기 때문에 그렇다고 할 수 있죠. 이렇게 하면 됩니다

만약 당신이 git이 __pycache__ 폴더를 무시하도록 하려면 

이 폴더를 .gitignore에 넣어야 합니다.

출처 입력

이렇게 말하는 것이 더 낫겠네요:

git이 __pycache__ 폴더를 무시하도록 하려면 

당신은 .gitignore 파일에 해당 이름을 넣어 줘야 합니다.

출처 입력

이것이 없으면 사람들은 결국 .gitignore라는 폴더를 만들고 모든 __pycache__ 폴더를 이 .gitignore 폴더로 옮길 수도 있을 것입니다. 

이 검색으로 한 번 찾아 보세요.

 

Help

git에서 무시해야 하는 불필요한 파일의 다른 일반적인 경우를 제안 해 줄 수 있을까요?

GitHub에서 .DS_store 검색어를 만드는 데 도움을 주실 수 있나요?

 

업데이트

댓글을 기반으로 업데이트 된 추가 정보:

  • .o 파일은 C 및 C++ 코드의 컴파일 결과물 임: .o
  • .class 파일은 자바 코드의 컴파일 결과물 임: .class
  • .pyc 파일은 컴파일된 Python 코드, 일반적으로 앞서 언급한 __pycache__ 폴더에 저장 됨 : .pyc

 

이상.

 

728x90