programing

Git의 .classpath 및 .project 무시

bestprogram 2023. 4. 27. 22:53

Git의 .classpath 및 .project 무시

저는 저와 다른 사람들에게 .classpath와 .project 파일을 커밋하지 말고 Maven을 사용하라고 말하고 있습니다.

어떻게든 주니어 개발자들은 항상 특정 규칙을 무시하고 해당 파일을 커밋하며, 코드를 사용할 수 있는 초보자들을 위해 이러한 파일을 보유하는 것이 훨씬 좋습니다.

이제 제 입장에서 뭔가를 해보고 싶습니다.repo를 복제하면 .classpath 및 .project 파일이 생성되고 시스템에서 수정됩니다.

하지만 저는 그들이 커밋되지 않기를 원하며 Git과 동기화하는 동안 항상 무시되어야 합니다.로컬 시스템의 변경 사항이 해당 파일의 Git 및 Git 변경 사항과 함께 사용되지 않도록 로컬 파일이 손상되지 않습니다.

어떻게 이를 달성할 수 있습니까?그런 식으로 파일을 무시하도록 표시하려면 어떻게 해야 합니까?

만약에.project그리고..classpath이미 커밋된 경우 인덱스에서 제거해야 합니다(디스크는 제외).

git rm --cached .project
git rm --cached .classpath

그러면 그..gitignore(클론을 통해 파일을 추가하고 공유할 수 있습니다.)
예를 들어, 이 파일은 다음을 포함하여 작동합니다.

# Eclipse Core      
.project

# JDT-specific (Eclipse Java Development Tools)     
.classpath

복제 시 "템플릿 디렉토리"를 사용할 수 있습니다(사용자에게 환경 변수가 있는지 확인).$GIT_TEMPLATE_DIR모든 사용자가 액세스할 수 있는 공유 폴더로 설정).
이 템플릿 폴더에는 모든 사용자가 사용하는 새 리포지토리()git init를 포함하여 모든 리포지토리에 적용무시 규칙포함된 파일이 포함될 수 있습니다.


압돌라논평대로.

인덱스를 변경할 때 변경 내용을 커밋하고 푸시해야 합니다.
그런 다음 파일이 리포지토리에서 제거됩니다.그래서 신입들은 파일을 확인할 수 없습니다..classpath그리고..project레포에서

.gitignore에서 아래 행을 추가하고 프로젝트 폴더 안에 파일을 넣습니다.

/target/
/.classpath
/*.project
/.settings
/*.springBeans

이러한 시나리오에 대한 Git 솔루션은 SKIP-WORKTREE BIT를 설정하는 것입니다.다음 명령만 실행합니다.

git update-index --skip-worktree .classpath .gitignore

git에 의해 이미 관리되고 인덱스에 존재하는 파일의 변경 사항을 무시하도록 git을 원할 때 사용됩니다.는 구성 파일의 일반적인 사용 사례입니다.

입니다.git rm --cached질문에 언급된 시나리오에서는 작동하지 않습니다.질문을 단순화하면 다음과 같습니다.

가지는 방법.classpath그리고..project각 사람이 로컬로 변경할 수 있고 Git이 이 변경을 무시하는 동안 레포에서?

인정된 답변 했듯이, 제가수답아변언래급이듯, 은점단했의 은 락된▁as입니다.git rm --cached즉, 인덱스가 변경되므로 변경 내용을 커밋한 다음 원격 저장소로 푸시해야 합니다. 적으로결과로..classpath그리고..projectPO가 레포를 처음 복제하는 사람이라면 누구나 사용할 수 있도록 그들이 그곳에 있기를 원하는 동안 레포에서 사용할 수 없습니다.

SKIP-WORKTREE BIT란 무엇입니까?

Git 문서를 기반으로 함:

작업 트리 건너뛰기 비트는 하나의 (긴) 문장으로 정의할 수 있습니다.항목을 읽을 때 작업 건너뛰기 트리로 표시된 경우 Git는 작업 디렉터리 버전이 최신인 것처럼 가장하고 대신 인덱스 버전을 읽습니다.이 비트는 변경되지 않은 가정 비트와 유사하지만 목표는 변경되지 않은 가정 비트와 다릅니다.또한 작업 건너뛰기 트리는 둘 다 설정된 경우 변경되지 않은 비트를 가정하는 것보다 우선합니다.

자세한 내용은 여기에서 확인할 수 있습니다.

.gitignore 파일을 사용합니다.이렇게 하면 특정 파일을 무시할 수 있습니다.http://git-scm.com/docs/gitignore

다음은 클래스 경로 및 프로젝트 파일을 처리하는 Eclipse의 예입니다. https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore

언급URL : https://stackoverflow.com/questions/18955149/ignore-classpath-and-project-from-git