새로 생성 된 특정 폴더를 Git의 .gitignore에 추가합니다.


90

나는 깨끗한 작업 디렉토리를 가지고 있으며 어젯밤 Git 저장소에서 클론을 가져 왔습니다. 하지만 이제 내 로컬 서버는 무시하고 싶은 통계 폴더를 생성하고 포함합니다.

git 상태를 실행할 때 Git이이 폴더를 무시하도록 할 수없는 것 같습니다.

On branch master
Your branch is ahead of 'origin/master' by 1 commit.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file: app_public/views/pages/privacy.php
    new file: app_public/views/pages/terms.php
    new file: public_html/stats/ctry_usage_200908.png
    new file: public_html/stats/daily_usage_200908.png
    new file: public_html/stats/dns_cache.db
    new file: public_html/stats/hourly_usage_200908.png
    new file: public_html/stats/index.html
    new file: public_html/stats/usage.png
    new file: public_html/stats/usage_200908.html
    new file: public_html/stats/webalizer.current
    new file: public_html/stats/webalizer.hist

Changed but not updated:
    modified: .gitignore

.gitignore에 몇 가지 다른 줄을 추가했지만 여전히 추가하려고합니다.

public_html/stats
public_html/stats/**
public_html/stats/**/*
public_html/stats/*

답변:


99

시도 /public_html/stats/*하시겠습니까?

그러나의 파일 이 커밋git status것으로보고 되었으므로 이미 수동으로 추가했음을 의미합니다. 물론 어떤 경우에는 무시하기에는 너무 늦었습니다. 할 수 있습니다 (IIRC).git rm --cache


16
기다림! "커밋 할 파일"이 git add있습니다. 이는 이미 파일을 작성했음을 의미 합니다.
Michael Krelin-해커 2009-08-26

93

이를 위해 두 가지 경우가 있습니다.

사례 1 : 파일이 이미 git repo에 추가되었습니다.

사례 2 : 새로 생성 된 파일과 사용시 여전히 추적되지 않은 파일로 표시되는 파일

git status

사례 1이있는 경우 :

1 단계 : 실행

git rm --cached filename 

git repo 캐시에서 제거하려면

디렉토리이면 다음을 사용하십시오.

git rm -r --cached  directory_name

2 단계 : 경우 사례 1 인 이상 다음라는 이름의 새로운 파일을 생성 .gitignore하여 자식의 repo에를

3 단계 : 다음을 사용하여 git에게 파일이 변경되지 않은 것으로 간주 / 무시하도록 지시하십시오 .

git update-index --assume-unchanged path/to/file.txt

4 단계 : 이제 .gitignore편집기 nano, vim, geany 등에서 git status open 을 사용하여 상태를 확인 하고 무시할 파일 / 폴더의 경로를 추가합니다. 폴더 인 경우 사용자 folder_name/*는 모든 파일을 무시합니다.

그래도 이해가 안된다면 git ignore file link 문서를 읽어 보세요.


3
내가 할 fatal: Unable to mark file .idea/jsLibraryMappings.xml때 얻는다update-index
OlehZiniak 2017-08-02

@OlehZiniak 당신은 사람이 얻을 때해야 할 일을 알아 냈습니다. fatal: Unable to mark file 오류 발생 . 도와주세요.
chanchal pardeshi

표시 할 수없는 파일의 권한 및 소유권. 어떤 단계에서 오류가 표시됩니까?
Kshitiz

16

"git help ignore"에서 다음을 배웁니다.

패턴이 슬래시로 끝나면 다음 설명을 위해 제거되지만 디렉토리와 일치하는 항목 만 찾습니다. 즉, foo /는 디렉토리 foo 및 그 아래의 경로와 일치하지만 일반 파일 또는 기호 링크 foo와 일치하지 않습니다 (이것은 일반적으로 git에서 pathspec이 작동하는 방식과 일치합니다).

따라서 필요한 것은

public_html / stats /


1
즉, "public_html / stats /"는 디렉토리에만 일치하고 파일은 일치하지 않지만 "public_html / stats"는 디렉토리와 해당 이름의 파일 모두 일치하므로 문제가되지 않습니다. 그래도 좋은 생각입니다.
jmanning2k

1
맨 페이지에는 foo /가 디렉토리 foo 및 그 아래의 경로와 일치한다고 말합니다. OP는 폴더와 그 내용을 무시하려고합니다. git add와 관련된 다른 문제를 제외하고 이것이 수행되는 방법입니다.
kajaco 2009-08-26

6

그것은이다 /public_html/stats/*.

$ ~/myrepo> ls public_html/stats/
bar baz foo
$ ~/myrepo> cat .gitignore 
public_html/stats/*
$ ~/myrepo> git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)
$ ~/myrepo>

2

나는 엄청나게 게으르다. 이 문제에 대한 지름길을 찾기 위해 검색을했지만 답을 얻지 못해서이 문제를 해결했습니다.

~ / bin / IGNORE_ALL

#!/bin/bash
# Usage: IGNORE_ALL <commit message>                                                                                                                             
git status --porcelain | grep '^??' | cut -f2 -d' ' >> .gitignore              
git commit -m "$*" .gitignore 

EG : IGNORE_ALL 추가 된 통계 무시

이것은 모든 무시 파일을 .gitignore에 추가하고 커밋합니다. 나중에 파일에 주석을 추가 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.