programing

Gitignore가 작동하지 않음

magicmemo 2023. 4. 26. 23:13
반응형

Gitignore가 작동하지 않음

나의.gitignore어떤 이유로 파일이 작동하지 않고 아무리 많은 구글링으로도 수정할 수 없습니다.제가 가진 것은 다음과 같습니다.

*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log

그것은 디렉토리에 있습니다.master그것은 나의 git repo입니다.OSX 10.8.6을 실행하는 MacBook에서 Git 1.8.4.2를 실행하고 있습니다.

버전 컨트롤의 파일/폴더는 사용자가 파일/폴더에 추가했다고 해서 자체적으로 삭제되는 것은 아닙니다..gitignore이미 리포지토리에 있으므로 제거해야 합니다.을 할 수 : 기능을사다같음습다니과이면하용▁you.

이 작업을 수행하기 전에 변경한 모든 작업을 수행해야 합니다.

git rm -rf --cached .
git add .

이렇게 하면 저장소에서 모든 파일이 제거되고 다시 추가됩니다(이번에는 의 규칙에 따라)..gitignore).

하지 마십시오. 다음을 하십시오. " 초저소이추미면해려추가하제단다적파장/기화된일추중사니지즉다합을파적하시용고일삭을에스템서음않면제하려지으에일을▁to:초다니▁but▁that사▁it합.git rm --cached filename

현재사중모인추적해면제려하을에 있는 과 같이 하십시오..gitignore:

먼저 미결된 코드 변경 사항을 커밋한 다음 다음 명령을 실행합니다.

git rm -r --cached .

이렇게 하면 인덱스(준비 영역)에서 변경된 파일이 모두 제거되고 다음을 실행할 수 있습니다.

git add .

커밋:

git commit -m ".gitignore is now working"

@Ahmad의 대답은 효과가 있지만 특정 파일 하나를 무시하거나 파일 몇 개를 무시하려면 @Nicolas가 제안하는 대로 하십시오.

1단계

.gitignore 파일에 파일 이름 추가

2단계

[git 캐시에서 파일 이름(파일 경로) 제거

git rm --cached filename

3단계

git add filename

git commit -m "add filename to .gitignore"

그것은 당신의 git history를 깨끗하게 유지할 것입니다 왜냐하면 만약 당신이 그렇게 한다면git rm -r --cached .를 다시 내역이 입니다. (한 파일을 한다는 것을 보여줄 입니다.) 제 표현하고 는 잘 을 이해하기를 . 제가 제 생각을 올바르게 표현하고 있는지는 모르겠지만 요점을 이해하기를 바랍니다.

이 질문에 대한 답을 따라가기 위해 약간의 토끼굴을 내려간 후(아마도 제가 비주얼 스튜디오 프로젝트에서 이것을 해야 했기 때문일 것입니다), 저는 더 쉬운 길을 찾았습니다.

  1. 더 이상 임시 위치로 추적하지 않을 파일 잘라내기 및 붙여넣기

  2. 해당 파일의 "삭제" 커밋

  3. 의수을커다니밋합의 ..gitignore한 파일을 .

  4. 파일을 폴더로 다시 이동합니다.

저는 이 (에서, Android 다른 를 많이 에서) 꽤 퍼져있는 (는비에서오스디튜얼)로 제을 쏘지 수을 알게 . 또는 Android Studio와 같은 다른 IDE를 많이 사용하는 기반 환경에서) 실수로 제 발에 총을 쏘지 않고 진행할 수 있는 가장 간단한 방법이라는 것을 알게 되었습니다.git rm -rf --cached .제가 작업하던 비주얼 스튜디오 프로젝트가 로드되지 않았습니다.

cmd 창에서 below git 명령을 사용합니다.

git rm --cached filename

설명:

git-rm 및 제거

--cached인덱스에서 경로만 스테이징하고 제거하려면 이 옵션을 사용합니다.수정 여부에 관계없이 작업 트리 파일은 그대로 유지됩니다.

--https://git-scm.com/docs/git-rm 에서

인 공점을만위사뭔용다니습했가를해통들을 하기 위해 했습니다..gitignore저와 저는 이것에 부딪혔습니다.@Ozesh 답변을 읽은 후 VS Code에서 열었는데, 오른쪽 하단에 라인 끝의 유형을 보여주는 멋진 표시기가 있기 때문입니다.LF라서 제안대로 CRLF로 변환했지만 주사위는 없었습니다.

그다음에 줄말잇기 옆에 보니까 UTF16으로 저장되어 있어서 UTF8 encoding anvoila로 다시 저장을 해놨습니다.저는 CRLF가 중요하지 않다고 생각해서 확실히 하기 위해 다시 LF로 바꿨는데 여전히 작동했습니다.

물론 그가 이미 파일을 커밋했기 때문에 OPS 문제는 아니었지만, 다른 사람이 이 문제를 해결하지 못할 경우를 대비해 공유해야 한다고 생각했습니다.

TLDR; 파일을 아직 커밋하지 않았는데도 .gitignore가 여전히 존중되지 않는다면 파일 인코딩을 확인하고 UTF8을 확인한 다음, 작동하지 않으면 줄 끝을 잘못 입력해 보십시오.

나는 했었었소.echo node_modules >> .gitignore효과가 없었어요

어떤 이유로, 터미널에서.vscode을 파을저니다에 합니다.UCS-2 LE BOM그리고 깃은 그것을 받아들이지 않는 것 같습니다.

을 파을열고다변환습했니다로음으일다▁the로 변환했습니다.UTF-8용사를 Notepad++

메모장에서 인코딩 변경++

이제 작동합니다.

제 생각에 그들은 이것을 고쳐야 할 것 같습니다.echo "filetoignore" >> .gitignore하게 할 수 것처럼 보입니다.

제 경우, 메모장에서 파일을 열었을 때 파일의 시작 부분에 공백이 있었는데 Visual Studio Code에서는 명확하지 않았습니다.

저는 다음을 통해 문제를 해결했습니다.

우선, 저는 윈도우 사용자이지만 비슷한 문제에 직면한 적이 있습니다.그래서, 저는 여기에 저의 해결책을 게시합니다.

때때로 .gitignore가 원래대로 작동하지 않는 간단한 이유가 하나 있습니다.이는 EOL 변환 동작 때문입니다.

여기 그것에 대한 빠른 해결책이 있습니다.

편집 > EOL 변환 > Windows 포맷 > 저장

텍스트 편집기 설정을 탓할있습니다.

예:

저는 윈도우 개발자이기 때문에 Vim 사용자와 달리 보통 텍스트 편집을 위해 메모장++사용합니다.

메모장++을 사용하여 .gitignore 파일을 열면 다음과 같이 나타납니다.

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


# See https://help.github.com/ignore-files/ for more about ignoring files.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
*.dll
*.force
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

기본 메모장을 사용하여 동일한 파일을 열면 다음과 같이 표시됩니다.

## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from  https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # See https://help.github.com/ignore-files/ for more about ignoring files. # User-specific files *.suo *.user *.userosscache 

결과를 보고 이미 짐작했을 수도 있습니다..gitignore의 모든 것이 하나의 라이너가 되었고, 시작 부분에 ##가 있기 때문에 모든 것이 주석이 달린 것처럼 행동합니다.

이 문제를 해결하는 방법은 간단합니다. 메모장++로 .gitignore 파일을 열고 다음을 수행하십시오.

편집 > EOL 변환 > Windows 포맷 > 저장

다음에 Windows(윈도우) 기본 메모장에서 동일한 파일을 열 때 모든 파일이 올바르게 포맷되어 있어야 합니다.이것이 당신에게 효과가 있는지 시도해 보세요.

제 경우에는 .gitignore 줄 끝에 공백이 원인이었습니다.그러니 .gitignore에서 공백을 조심하세요!

또한, 댓글은 그들 자신의 라인에 있어야 합니다.항목 뒤에 넣을 수 없습니다.그래서 이것은 작동하지 않을 것입니다.

/node_modules  # DON'T COMMENT HERE (since nullifies entire line)

하지만 이것은 효과가 있을 것입니다.

# fine to comment here
/node_modules

있습니까?git reset --hard누구를 위해 일합니까?이것이 좋은 해결책이라고 말하는 것이 아니라, 처음 시도했을 때 효과가 있었던 것 같습니다.

이것은 인기 있는 질문이기 때문에 제 의견을 덧붙이는 것입니다.

.gitignore 안에 .history 디렉토리를 배치할 수 없었습니다. 어떤 조합을 시도해도 작동하지 않았기 때문입니다.저장할 때마다 Windows(윈도우)에서 새 파일을 계속 생성하므로 이러한 파일은 표시되지 않습니다.

여기에 이미지 설명 입력

하지만 저는 이것이 제 컴퓨터의 개인 개발 환경이라는 것을 깨달았습니다..history나 .vscode와 같은 것들은 나에게 특정한 것들이기 때문에 만약 모든 사람들이 그들이 사용하고 있는 IDE나 OS에 따라 자신의 .gitignore 항목을 포함한다면 이상할 것입니다.

그래서 이것은 저에게 효과가 있었습니다. .git/info/exclude에 ".history"를 추가하기만 하면 됩니다.

echo ".history" >> .git/info/exclude

스택 오버플로에 대한 많은 답변이 있지만, 제게 효과가 있었던 것은 특정한 것이 아닙니다. 여기서 간단한 방법으로 수행해야 하는 모든 단계를 하나씩 기록하고 있습니다.

사전 --- 만일의 경우를 대비하여 repo 백업을 작성합니다.(그렇지는 않았지만 당신을 더 안전하게 해줄 수도 있습니다)

  1. 이 파일이 첫 번째 커밋인지 아니면 이전에 추가되어 캐시된 파일인지 확인합니다.
  2. "예"인 경우 gitrm -r --cached . and git add . (점을 놓치지 마십시오)
  3. 그래도 작동하지 않으면 메모장에서 파일 열기

파일로 이동 -> 다른 이름으로 저장 인코딩을 ANSI로 변경합니다. (일부 답변은 UTF-8로 잘못 표기되어 있으나 작동하지 않고 불필요하게 시간을 낭비합니다.)

Again git rm -r --cached .
    and git add . (do not miss the dot) 

Now do Git status and verify
    what we wanted has happened

제 문제는 처음에 Mac에서 .gitignore를 만들었지만 지금은 Windows 시스템에서 작업하고 있다는 것입니다.Mac에서는 파일 경로에 "/"를 사용합니다.Windows에서는 "\"를 사용합니다.

그래서 제 .gitignore 파일이 작동하기 위해서는 어떤 기호를 사용하는지 일관성이 있었습니다.이 경우 "file\path"를 복사할 때에도 추가할 모든 파일 경로에 대해 "/"를 사용해야 했습니다.

이 바보 같은 주변에서 여러 시간을 잃었습니다(정말 짜증이 났어요).

누군가는 이것이 유용하다고 생각할지도 모릅니다.저에게 문제는 형식이었습니다.어떤 이유에서인지, 그리고 어떠한 변경도 하지 않은 상태에서 Git은 파일 내용의 형식을 좋아하지 않았습니다.의 디렉터리.gitignore이런 식이었습니다.

directory1/*
directory2/*
directory3/*

형식을 변경했을 때

directory1/
directory2/
directory3/

은 디토리커다시푸추무시며/렉밋해/시야는하것은가뿐이었습니다..gitignore.

이미 많은 답이 있는 건 알지만, 제가 이 질문을 하게 된 방법은 다음과 같습니다.

나는 했었었소.'node_modules' > .gitignore npm install새 repo에서 .gitignore('**/node_modules', '/node_modules'추가)를 변경한 후 다시 시작했습니다.git status텍스트 형식이 아닌 이진 형식으로 되어 있다는 것을 깨달았기 때문에 Git은 인식하지 못했습니다.

.gitignore 파일을 삭제하고 편집기에 다시 추가하여 문제를 해결했습니다.

나의 경우에는

나는 git-timeout을 사용했고 다음 명령을 작성했습니다.

echo [Enter_your_file_name.extension] >> .gitignore

그런 다음 push in repo를 수행하면 잘 작동합니다.

글쎄요, 제 실수는 .ginignore와 .ginignore를 혼동한 것입니다. 저는 .ginignore/.gitignore로 모든 것을 하고 있었고 git 저장소에는 변경 사항이 적용되지 않았습니다.이것이 저와 같은 실수를 하는 사람들에게 도움이 되기를 바랍니다.

저는 초보자인데 어젯밤(윈도우즈)에도 같은 문제가 있었습니다.
.txt 가 없어야 .gitignore 파일의 확장자가 .txt가 없어야 합니다.

이것이 제가 해결한 방법입니다.

  1. 디렉토리를 열고 메뉴 모음으로 이동하여 보기를 클릭한 다음 '파일 이름 확장명'을 선택합니다.
  2. 그런 다음 .txt 확장명을 삭제하여 .gitignore 파일의 이름을 편집합니다.
  3. 그 결과 .txtextext가 없는 .gitignore 텍스트 파일이 생성됩니다.

언급URL : https://stackoverflow.com/questions/25436312/gitignore-not-working

반응형