programing

.gitignore는 Git에 의해 무시됩니다.

closeapi 2023. 4. 16. 15:08
반응형

.gitignore는 Git에 의해 무시됩니다.

★★★.gitignoreGit에 것 .Git의 경우 Git이 무시되고 있을 수 ..gitignore일이이? 츠요시Git은 어떤 파일 형식, 로케일 또는 문화를 예상합니까?

★★★.gitignore:

# This is a comment
debug.log
nbproject/

git status:

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

debug.log ★★★★★★★★★★★★★★★★★」nbproject/추적되지 않은 파일 목록에 표시되지 않습니다.

이 문제를 해결하려면 어디서부터 시작해야 할까요?

은 Git에 에 대해 수 것 ..gitignore.

경고: 먼저 현재 변경사항을 커밋하거나 저장하십시오. 그렇지 않으면 변경 내용이 손실됩니다.

그런 다음 Git 저장소의 맨 위 폴더에서 다음 명령을 실행합니다.

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

이 Git의 것.gitignore하다

  • 할 수 ..gitignore을 이 있는

  • .gitignore 파일에 무언가를 추가할 때 다음을 시도해 보십시오.

      git add [uncommitted changes you want to keep] && git commit
      git rm -r --cached .
      git add .
      git commit -m "fixed untracked files"
    
  • .gitignore 파일에서 무언가를 삭제한 경우 위의 단계가 작동하지 않을 수 있습니다. 위의 단계가 작동하지 않는 경우 다음을 수행하십시오.

      git add -f [files you want to track again]
      git commit -m "Refresh removing files from .gitignore file."
    
      // For example, if you want the .java type file to be tracked again,
      // The command should be:
      //     git add -f *.java
    

수정했습니다. Windows의 메모장에 .gitignore 파일을 만들었는데 작동하지 않았습니다.Linux에서 .gitignore 파일을 보았을 때, 그것은 조직적인 횡설수설처럼 보였다.아마 메모장은 ASCII나 8비트가 아닌 유니코드를 쓰고 있었을 것이다.

그래서 Linux 박스에 파일을 다시 썼는데, Windows로 다시 가져갔을 때 정상적으로 동작했어요!만세!

한 합니다..gitignore뭇매를 맞다

git rm -r --cached debug.log nbproject

이렇게 하면 저장소에서 제거되지만 물리적으로 유지됩니다.쉬운 영어에서는 관련된 변경 이력을 삭제하고 향후 커밋에서 변경 이력을 추적하지 않습니다.여기서 더 나은 설명을 찾을 수 있을 것이다.

이 문제의 또 다른 원인은 문 앞에 공백 또는 탭입니다.

예:

# Be aware of the following:
 notWorkingIgnore.*
workingIgnore.*

또한 다음 주석에서 지적한 바와 같이 후행 공간도 문제가 될 수 있습니다.

# Be aware of the following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace

.gitignore유니코드 ASCII를 사용하다

프로세스:

  1. " " " " :PS> git status
  2. Get-FileEncoding 함수를 만듭니다.
  3. ★★.gitignore의 부호화: " " "PS> Get-FileEncoding .gitignore
  4. 부호화를 ASC로 변경하다II:PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
  5. 인::PS> git status

다른 솔루션과 마찬가지로 먼저 커밋하고 커밋되지 않은 변경은 모두 손실된다는 점에 유의하십시오.

이것으로 더 나은 결과를 얻을 수 있었습니다.

git rm -r --cached .
git reset HEAD --hard
git status

현재 상태에는 수정된 파일이 없어야 합니다.

저 같은 경우에는 파일이 이미 저장소에 존재하기 때문에 무시하려고 합니다.

이 문제를 해결하기 위해 다음과 같은 작업을 수행했습니다.

  • 임시 폴더에 파일 복사
  • 프로젝트 폴더에서 제거합니다.
  • 이러한 파일을 저장소에서 제거하는 변경을 커밋합니다.
  • 내 프로젝트 폴더에 파일 다시 추가

그때까지 그 파일들에 대한 변경은 모두 무시되었습니다.

저장소에 이미 있는 파일은 무시할 수 없다고 생각합니다.

여기 있는 모든 답은 실제로 회피책입니다.실행하기 전에 .gitignore 파일을 생성해야 합니다.git init 그 이외의 .그렇지않으면git파일은 이미 추적되어 있기 때문에 무시할 필요가 없습니다.

echo .idea/ >> .gitignore
git init

, 을 여러분의 '무시하다', '무시하다', '무시하다'에하는 것이 .~/.gitignore_global입니다.git에 '라는 의미가 보통을 이미 .

또, 유저가 보존하고 있는 디렉토리도 확인해 주세요..gitignore.

프로젝트의 루트에 있어야 합니다.

./myproject/.gitignore

없음

./myproject/.git/.gitignore

.gitignore히 windows Windows 용용발수수수수수수 。은 Git의 이름을 붙이는 ..gitignore:unity.gitignore를 참조해 주세요.

을 붙이고 .gitignore 의 는, 「Windows」,.gitignore.파일 이름 없이 이름을 바꾸려고 하는 것으로 생각되기 때문입니다.

Windows 사용자 전용:추적되지 않은 파일이 있고 캐시된 파일을 지우거나 제거할 수 없습니다.PowerShell을 열고 .gitignore 파일을 UTF-8 인코딩으로 변환해 보십시오.

$Myfile = Get-Content .\.gitignore`
$Myfile | Out-File -Encoding "UTF8" .gitignore

이 작업을 한 번만 수행하면 해당 디렉토리의 .gitignore 파일을 인코딩할 수 있습니다.이 경우 파일이 올바르게 인코딩되기 때문에 나중에 파일을 편집할 때마다 이 작업이 수행됩니다.이것은 GitHub이 .gitignore 파일의 UTF-8 이외의 인코딩을 읽을 수 없기 때문에 발생한 결함이라고 생각합니다.이 문제는 Windows에서 아직 해결되지 않은 것으로 알고 있습니다.큰 문제는 아니지만, 작동하지 않을 때 디버깅하는 것은 귀찮은 일입니다.

이 git에 하고 있는 상황이 마다 git은 git에 나열된 파일을 추적하고 ..gitignore , , , 을합니다.

git update-index --skip-worktree <file_name>

방금 이 문제에 부딪혔어요..gitignore 파일의 내용은 추적되지 않은 파일 목록에 계속 표시됩니다.

이 파일을 사용하여 ignore 파일을 만들었습니다.

echo "node_modules" > .gitignore

이중 인용문이 문제의 원인이었던 것으로 판명되었습니다.ignore 파일을 삭제하고 다시 따옴표 없이 명령어를 사용했더니 예상대로 동작했습니다.나는 파일 인코딩을 방해할 필요가 없었다.Cmder를 사용하는 Windows 10 머신에 탑재되어 있습니다.

예:

echo node_modules > .gitignore

이미 몇 가지 좋은 답변들이 있지만, 나의 상황은 지루했다.Win10에 설치된 PLM(제품 라이프 사이클 관리) 소프트웨어의 소스를 편집하고 나서, 「git repo로 할 걸 그랬나」라고 판단했습니다.

을 사용하다한 후 및 추가 .gitignore잘 안 풀리지만, 봐 것 같아요.git rm --cached널 위한 게 아니야

중요: 너무 큰 "프로젝트"에 git를 너무 늦게 추가해서 .gitignore를 무시했기 때문입니다.난 약속 없어, 절대.이거면 될 것 같아:)

먼저, 저는 다음과 같이 했습니다.

rm -rf .git
rm -rf .gitignore

그리고 나서, 나는 내 변화 사진을 가지고 있어야만 했다.다시 말씀드리지만, 이것은 제가 변경한 설치 제품입니다.순수한 마스터 브랜치의 첫 번째 커밋에는 너무 늦었습니다.저는 이 이 필요했습니다. > changed.log하다

PowerShell

# Get files modified since date.
Get-ChildItem -Path path\to\installed\software\ -Recurse -File | Where-Object -FilterScript {($_.LastWriteTime -gt '2020-02-25')} | Select-Object FullName

배쉬

# Get files modified in the last 10 days...
find ./ -type f -mtime -10

이제 지난 10일 동안 제가 변경한 사항 목록이 있습니다(여기서 베스트 프랙티스에 대해서는 "네, 제가 이 일을 했습니다"라고 말하는 것 이외에는 언급하지 않겠습니다).

지금 바로 새로운 시작을 위해:

git init .
# Create and edit .gitignore

중인 .git status무시하다

드디어 원하는 변경 목록이 나왔습니다!내 경우 보일러 플레이트 - 이 소프트웨어에 대해 개발 시스템을 실행하기 위한 특정 서버 xml 구성과 함께 몇 가지 테마가 작동합니다.다른 개발자가 입수하여 기여할 수 있도록 레포에 추가하려고 합니다.이것이 우리의 마스터 브런치이므로, 새로운 작업을 위해 커밋, 푸시, 그리고 마지막으로 브런치!

내게는 이전의 답변 중 어느 것도 효과가 없었다. .gitignoreexclude.txt에서

<Your-project-folder>\.git\info

완료되면 변경 내용을 새로 고치면 추적되지 않은 모든 파일이 사라집니다.평소와 같이 커밋합니다.

제 문제는 (OP가 제안한) 손상된 .gitignore 파일입니다.나는 다른 모든 것이 실패할 때까지 그것을 믿지 않았고 가능성을 무시했다. 파손은 나타나지 않았지만 파일 시작 부분에 2바이트가 있어 .gitignore 파일이 무시되었습니다.제 경우, 이건 제가 타이핑할 때만 나타납니다.cat .gitignore그러니까,그러다그러다,그러다,그러다.

��# Built application files
*.apk
*.ap_

# ...

이게 어떻게 거기까지 오게 됐는지는 모르겠지만 파일을 다시 작성하면 문제가 해결됩니다.파손된 파일의 16진수 분석 결과, 다음과 같은 결과가 나왔습니다.

user@dev ~/project/myproject $ xxd -b .gitignore
00000000: 11111111 11111110 00100011 00000000 00100000 00000000  ..#. .
00000006: 01000010 00000000 01110101 00000000 01101001 00000000  B.u.i.

.gitignore 파일에 다음 행이 포함되어 있어 문제가 있었습니다.

lib/ext/

사실 이 디렉토리는 다른 곳에 있는 폴더에 대한 심볼릭 링크라는 것을 방금 깨달았습니다.

ls -la lib/ext/
lrwxr-xr-x 1 roipoussiere users 47 Feb  6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib

lib/ext/Git은 실제로 폴더를 찾지만 심볼릭 링크는 파일이기 때문에lib폴더는 무시되지 않습니다.

하기 위해 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.lib/ext/타타에 lib/ext.time ignore 。

저도 같은 문제가 있었어요.CR와 CR+LF의 불일치라고 생각합니다.CMD(Windows 7)와 다음 명령을 사용하여 .gitignore에 저장했습니다.

불량:

echo "file_to_be_ignored.py" >> .gitignore<br>
echo "*~" >> .gitignore

기타.

문제는 이 명령어가 Git에서 줄바꿈을 인식하는 올바른 줄바꿈 마커를 배치하지 않는다는 것입니다(CR 또는 CR+).LF(Git이 상대방을 예상하는 경우)Vim(Vim to rescue!)의 각 새 라인을 수동으로 교체하여 문제를 해결했습니다.

메모장++ 또는 Vim에서 (이상적으로) .gitignore를 편집해 보십시오.파일의 형식이 올바른 것 같더라도 줄 바꿈을 시도해 보십시오.이상하게 들리겠지만, 내겐 효과가 있었어. :D

네, 이 경우 승인된 솔루션이 작동하지 않았습니다.또한 어떤 솔루션이 효과가 있었는지에 대해서는 다음과 같이 설명하고 있습니다.

Visual Studio 2013이 .gitignore 파일을 무시하고 있습니까?

요컨대:

  • Visual Studio를 닫습니다.
  • .git 폴더로 이동합니다.
  • ★★ms-persist.xml
  • Visual Studio 재시작

.기티뇨어.기티뇨어.echo "..." > .gitignoreWindows PowerShell Windows PowerShell windows windows windows windows windows 、 Windows PowerShell 。

저의 경우 작성된 파일의 인코딩이 문제였고, ANSI로 변경 후 문제가 해결되었습니다.

다른 가능한 이유는 동시에 실행되는 Git 클라이언트의 몇 가지 인스턴스입니다.예를 들어 "Git shell" + "Git Hub Desktop" 등입니다.


나한테도 이런 일이 있었어메인 클라이언트로 "GitHub Desktop"을 사용 중이었는데 새로운 .gitignore 설정: commit after commit:

  1. 당신은 뭔가를 저지른다.
  2. 다음으로 commit: .gitignore 설정을 무시합니다.Commit에는 .gitignore에 기재되어 있는 많은 임시 파일이 포함되어 있습니다.
  3. Git 캐시를 클리어하고, .commit ignore가 UTF-8인지 확인하고, files → commit → move files back; 1개의 커밋을 건너뛰고, 아무것도 도움이 되지 않습니다.

이유: Visual Studio Code 편집기가 열려 있는 동일한 저장소로 백그라운드에서 실행되고 있었습니다.Visual Studio Code에는 Git 컨트롤이 내장되어 있어 충돌이 발생합니다.

해결책: 여러 개의 숨겨진 Git 클라이언트를 더블 체크하고, 특히 Git 캐시를 클리어하는 동안 한 번에 하나의 Git 클라이언트만 사용합니다.

한 가지 주의할 점은 .gitignore 파일을 올바른 행으로 저장하시겠습니까?

Windows:

Windows에서 사용하는 경우 Windows 행 끝에 저장합니까?기본적으로 모든 프로그램이 이를 수행하는 것은 아닙니다. Notepad++ 및 많은 PHP 편집기가 기본적으로 Linux 행 엔딩으로 설정되므로 파일은 서버와 호환됩니다.이를 확인하는 간단한 방법 중 하나는 Windows 메모장에서 파일을 여는 것입니다.모든 항목이 한 줄에 표시되는 경우 파일은 Linux 행 끝과 함께 저장된 것입니다.

Linux:

Linux 환경에서 파일이 동작하는 데 문제가 있는 경우 Emacs 또는 nano 등의 에디터에서 파일을 엽니다.인쇄할 수 없는 문자가 표시되는 경우는, 파일은 Windows 행의 끝과 함께 보존되어 있습니다.

여기서 다른 답변에서는 다루지 않는 한 가지 까다로운 점은 다음과 같은 인라인 코멘트가 있는 경우 .gitignore 파일이 작동하지 않는다는 것입니다.

foo/bar # The bar file contains sensitive data so we don't want to make this public

이러한 코멘트가 있는 경우는, 다음과 같이 변경합니다.

# The bar file contains sensitive data so we don't want to make this public
foo/bar

나에게 그것은 또 다른 문제였다.내 .gitignore 파일은 무시하지 말라고 한 것 외에는 모두 무시하도록 설정되어 있습니다.다음과 같은 경우:

/*
!/content/

이것은 분명히 제가 Git에게 .gitignore 파일 자체를 무시하라고 말하는 것을 의미합니다..gitignore 파일을 추적하지 않는 한 문제가 되지 않았습니다.그러나 어느 시점에서 .gitignore 파일 자체를 커밋했습니다.그 결과 .gitignore 파일이 올바르게 무시되었습니다.

따라서 한 줄을 더 추가하면 다음과 같이 수정됩니다.

/*
!/content/
!.gitignore

요..gitignoresudo명령어를 입력합니다.에도 같은 했습니다.git status그래도 "무시해야 한다" 파일은 볼 수 있었습니다.

를 with with with with with 시nano .gitignoresudo nano .gitignore 모습이 잘

대해 같은 Ubuntu를 . 우분투하다.gitignore에서, 그리고 .

touch .gitignore

나는 .gitignore라는 텍스트 문서를 리터럴하게 작성했기 때문에 작동하지 않았다.

대신 텍스트 문서를 작성하여 메모장++에서 연 후 .gitignore로 저장하십시오.

저장할 때 드롭다운에서 모든 유형(*.*)을 선택하십시오.


gitbash에서는 "gitbash"를 합니다.touch .gitignore

아래 명령으로 이전에 Git에서 커밋된 폴더나 파일을 삭제하기만 하면 됩니다.그러면 gitignore 파일은 올바른 파일을 반영합니다.

    git rm -r -f "folder or files insides"

Notepad++ 사용자인 경우 다음을 수행하십시오.

메모장++를 사용하여 .gitignore 파일을 열고 다음을 수행합니다.

메뉴 편집 → EOL 변환Windows 형식 → 저장.

도 한번 써보세요.git status을 하다

비슷한 질문에 대한 답변을 여기에 올렸습니다.

언급URL : https://stackoverflow.com/questions/11451535/gitignore-is-ignored-by-git

반응형