programing

ignored 파일을 git 상태 밖으로 유지

lovejava 2023. 6. 28. 21:14

ignored 파일을 git 상태 밖으로 유지

Git에서 ignored 파일을 표시하는 것을 중지하고 싶습니다.git status변경되었지만 업데이트되지 않은 파일 목록에 수많은 문서 및 구성 파일이 있으면 목록이 절반만 쓸모없게 됩니다.

Git가 이 파일들을 보여주는 것이 정상입니까?

무시 정보를 입력했습니다..gitignoreGit 저장소의 루트 디렉터리에 있는 파일이며 사용 시 추가되지 않습니다.git add .그러나 그들이 앞서 언급한 목록에 나타나고 인쇄된 목록에 나타나지 않기 때문에 완전히 무시되지는 않는 것으로 보입니다.git ls-files --others -i --exclude-standard의 패턴과 일치하는 파일만~/.gitignore거기에 나타나세요.

초기 단계에서 제가 그들을 무시하지 않았고 그들이 적어도 한 번은 그렇게 저질러졌기 때문일까요?

게시물에서 찾은 것처럼,.gitignore추적되지 않은 파일에 대해서만 작동합니다.저장소에 파일을 추가한 경우 다음 작업을 수행할 수 있습니다.

git update-index --assume-unchanged <file>

또는 저장소에서 제거합니다.

git rm --cached <file>

편집

기사는 또한 그것을 설명합니다.

이 문제도 발생했습니다. 초기 커밋 흐름에서 GIT에 의해 "추적 대상"으로 표시된 후 무시된 디렉토리/파일을 .gitignore에 추가했기 때문일 것입니다.

따라서 다음과 같이 Git 추적 캐시를 삭제해야 합니다.

git rm --cached -r [folder/file name]

자세한 설명은 http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html 에서 확인할 수 있습니다.

또한 위 명령은 원격 GIT 오리진에서 폴더/파일의 나머지 부분을 제거합니다.따라서 GIT 저장소가 깨끗해집니다.

문제는 이 파일이 여전히 Git 캐시에 있다는 것입니다.이 문제를 해결하려면 깃 캐시를 재설정해야 합니다.

단일 파일의 경우

git rm --cached <file>

전체 프로젝트에 대해

깃 캐시를 재설정합니다..gitignore 파일이 추가되지 않았을 때 프로젝트를 커밋했다면 좋은 명령입니다.

git rm -r --cached . 

변경사항 커밋

git add . 
git commit -m ".gitignore was fixed." 

이것은 확실히 효과가 있습니다.

git rm --cached -r [folder/file name]

당신은 tmp 디렉토리(Visual Studio Platform)를 추가하고 싶지 않다고 생각합니다.

1- 아래 행을 로컬 .gitignore 파일에 추가합니다.

## ignore tmp
/tmp/
./tmp/

3 - 로컬로 tmp 폴더를 백업하고 삭제합니다. (다른 곳에 백업하십시오.)(예: 데스크톱?)

4 - 변경 사항을 로컬로 커밋하고 동기화를 원격으로 커밋합니다(예: github).

이러한 단계가 끝나면 tmp 디렉토리가 다시 업로드되지 않습니다.

mangit-ls 파일에서:

-i, --ignored
Show ignored files in the output. Note that this also reverses any exclude list present.

개인적으로 저는 소스 트리에 doxygen 파일을 보관하는 경향이 있기 때문에 단순히 이것을 소스 트리의 맨 위 디렉터리에 있는 .gitignore에 추가했습니다.

docs/*

도움이 되길 바랍니다.

다음 단계는 추적되지 않은 파일에만 적용됩니다.이 정보는 다음 구성에 적용됩니다.

Platform: linux

Git version: git version 1.8.3.1

무시할 파일 목록을 다음 위치에 있는 "제외" 파일에 넣습니다.

<path till .git directory>/.git/info/exclude

제외 파일의 초기 내용

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

제외 파일의 최종 내용

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~


*.tar
*.gch

승인된 답변에 따라 로컬 컴퓨터에서 수행하는 작업이 원격 분기에 커밋되지 않도록 파일이 변경되지 않은 것으로 가정할 수 있습니다.

같은 거.git update-index --assume-unchanged src/main/resources/config.properties 여기서 src/main.sys/config.properties는 프로젝트 내에서 해당 파일을 찾기 위한 경로의 샘플입니다.

이제 저장소에서 파일을 완전히 제거하려면 다음을 사용할 수 있습니다.remove cached --gitrm --gitrm'

이 시나리오는 다음과 같은 경우에 적용할 수 있습니다.

암호를 저장하는 파일이 있다고 가정해 보겠습니다.저는 처음에 그 파일을 잘못된 세부사항으로 커밋했습니다. 단지 제 동료들이 그들의 컴퓨터에 같은 파일을 가지고 있기 때문입니다.하지만, 이제 나는 나의 로컬 컴퓨터에 나의 정확한 세부사항을 추가했습니다.올바른 암호 세부 정보를 사용하여 해당 파일이 실수로 다시 커밋되지 않도록 하려면 어떻게 해야 합니까?

.gitignore 파일을 변경한 후.다음과 같은 간단한 단계를 따릅니다.

git rm -r --cached .

Run git add .

git commit -m "Commit message"

확인하기

git status

이것처럼.

git --ignored myfolder

그리고 내 폴더에 대해서만 상태를 표시합니다.

언급URL : https://stackoverflow.com/questions/1818895/keep-ignored-files-out-of-git-status