Git의 디렉터리에 있는 파일을 어떻게 무시합니까?
에 대한 올바른 구문은 무엇입니까?.gitignore
디렉토리에 있는 파일을 무시하시겠습니까?
그럴까요?
config/databases.yml
cache/*
log/*
data/sql/*
lib/filter/base/*
lib/form/base/*
lib/model/map/*
lib/model/om/*
또는
/config/databases.yml
/cache/*
/log/*
/data/sql/*
/lib/filter/base/*
/lib/form/base/*
/lib/model/map/*
/lib/model/om/*
?
패턴 형식
빈 줄은 파일과 일치하지 않으므로 읽기 쉽게 구분할 수 있습니다.
로 하는 줄
#
댓글 역할을 합니다.접두사 " 두적접사"
!
패턴을 무효화합니다. 이전 패턴에서 제외된 일치 파일이 다시 포함됩니다.음수 패턴이 일치하는 경우 우선 순위가 낮은 패턴 소스를 재정의합니다.패턴이 슬래시로 끝나는 경우 다음 설명을 위해 제거되지만 디렉토리와 일치하는 내용만 찾습니다. 다른말하면로,하면,
foo/
" "와 합니다.foo
링크와 .foo
(이것은 일반적으로 git에서 pathspec이 작동하는 방식과 일치합니다.)되지 않은 에는 슬래시가 포함됩니다.
/
git는 그것을 셸 글로브 패턴으로 취급하고, 그것의 위치와 관련된 경로 이름에 대한 일치를 확인합니다..gitignore
작업 ).gitignore
그렇지 않으면, git은 패턴을 소비에 적합한 쉘 글로브로 취급합니다.
fnmatch(3)
FNM_PATHNAME
가 "" " " " " "와 ./
경로 이름으로예를들면,Documentation/*.html
항목 냥Documentation/git.html
하지만 아닙니다.Documentation/ppc/ppc.html
또는tools/perf/Documentation/perf.html
.선행 슬래시는 경로 이름의 시작 부분과 일치합니다.를 들면, 들면를예,
/*.c
항목 냥cat-file.c
하지만 아닙니다.mozilla-sha1/sha1.c
.
자세한 내용은 여기에서 확인할 수 있습니다.
git help gitignore
또는
man gitignore
그것은 전자일 것입니다.폴더 구조 대신 내선 번호로 이동합니다.
예: 내 예제 C# 개발 무시 파일:
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
갱신하다
저는 아래 댓글에서 업데이트를 제공할 것으로 생각했습니다. OP의 더 예를 하세요..gitignore
통사론
커뮤니티 위키(지속적으로 업데이트됨):
.gitignore for Visual Studio 프로젝트 및 솔루션
특정 언어를 사용하는 더 많은 예는 여기에서 찾을 수 있습니다(Chris McKnight의 의견 덕분).
https://github.com/github/gitignore
슬래시가 포함된 경로는 .gitignore 파일(일반적으로 저장소의 최상위 수준)이 포함된 디렉터리에 상대적인 것으로 간주되지만 하위 디렉터리에 배치할 수도 있습니다.
제시한 모든 예에서 경로에는 슬래시가 포함되어 있으므로 두 버전은 동일합니다.선행 슬래시를 배치해야 하는 유일한 경우는 경로에 슬래시가 아직 슬래시가 없습니다.예를 들어 저장소의 최상위 수준에서만 foo를 무시하려면 다음을 사용합니다./foo
간단하게 쓰기foo
저장소의 아무 곳에서나 foo라고 불리는 모든 것을 무시할 것입니다.
와일드카드도 중복됩니다.전체 디렉토리를 무시하려면 디렉토리 이름을 지정합니다.
lib/model/om
와일드카드를 사용하는 유일한 이유는 나중에 디렉터리에서 무언가를 무시하지 않으려면 다음과(와)
lib/model/om/* # ignore everything in the directory
!lib/model/om/foo # except foo
슬래시가 선행되면 .gitignore 파일이 있는 디렉터리에 대해서만 무시 항목이 유효하다는 것을 나타냅니다. 지정*.o
의 모든 o에 .o 파일은 .o 파일을 무시합니다./*.o
dir에서는 할 수도 그을무수있지만도만시말할, 다하지시들,만▁would,▁just지▁them,말▁that하▁dir▁in▁ignore▁while▁again,다시./foo/*.o
foo/*.o는 /foo/*o 파일에서만 합니다.
시키려면 .gitignore 파일을 합니다./**/
.
모두 하기: 모무시하기두*.map
에 있는 /src/main/
폴더 및 하위 폴더의 용도:
/src/main/**/*.map
질문의 두 예는 실제로 데이터 손실로 이어질 수 있는 매우 나쁜 예입니다!
로 덧붙이지 마세요./*
.파일의합니다. 한gitignore 파일의 디렉터리로 이동합니다. 이유가 없는 한!
예를 들어, "만약 당신이 나중에 디렉토리의 무언가를 무시하지 않을 의도가 있다면" 제프롬이 쓴 것이 좋은 이유일 것입니다.
그렇지 않으면 안 되는 이유는 첨부하기 때문입니다./*
디렉토리에 대한 작업은 디렉토리의 모든 내용을 적절하게 무시하는 방식으로 수행되지만, 다른 한편으로는 위험한 부작용이 있습니다.
을 하면,git stash -u
된 파일과 되지 않은 파일을 으로 저장하는 ) 또는 (추적되지 않은 파일을 저장하는 경우)git clean -df
파일을 하려면) 모든 가 추가되어 됩니다./*
되돌릴 수 없이 삭제됩니다!
약간의 배경
저는 이것을 힘든 방법으로 배워야만 했습니다.우리 팀의 누군가가 나타나서,/*
몇몇 로.gitignore의 일부 디렉토리로 이동합니다.시간이 지남에 따라 저는 특정 디렉토리가 갑자기 사라지는 경우가 있었습니다.애플리케이션에 필요한 기가바이트의 로컬 데이터가 포함된 디렉토리입니다.아무도 그것을 설명할 수 없었고 저는 항상 모든 데이터를 다시 다운로드하는 것을 싫어합니다.잠시 후, 저는 그게 아마도 그의 가족들과git stash
어느 날 (무시된 파일을 보관하면서) 로컬 레포를 정리하고 싶었고 사용하고 있었습니다.git clean -df
제 데이터가 사라졌습니다.이번에는 충분히 참고 그 문제를 조사했습니다.나는 마침내 그 이유가 첨부된 것이라는 것을 알았습니다./*
.
저는 그것이 어떻게든 설명될 수 있다고 생각합니다.directory/*
디렉토리의 모든 내용을 무시하지만 디렉토리 자체는 무시하지 않습니다.따라서 삭제될 때 추적된 것으로 간주되거나 무시되지 않습니다.그럼에도 불구하고.git status
그리고.git status --ignored
약간 다른 그림을 보여줍니다.
재생산 방법
다음은 행동을 재현하는 방법입니다.현재 Git 2.8.4를 사용하고 있습니다.
다디렉입다니라는 입니다.localdata/
더미 파일이 들어 있는 경우(important.dat
되며, put)을 됩니다./localdata/*
.gitignore
파일. 언급된 두 git 명령 중 하나가 지금 실행되면 디렉터리가 (예상치 않게) 손실됩니다.
mkdir test
cd test
git init
echo "/localdata/*" >.gitignore
git add .gitignore
git commit -m "Add .gitignore."
mkdir localdata
echo "Important data" >localdata/important.dat
touch untracked-file
만약 당신이git status --ignored
여기서 다음을 얻을 수 있습니다.
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
untracked-file
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
localdata/
이제 둘 중 하나.
git stash -u
git stash pop
또는
git clean -df
모두 된 것으로 디렉토리 " 경모우무된것로알디진리렉토려두"localdata
사라질 것입니다!
이것이 버그로 여겨질 수 있을지는 모르겠지만, 적어도 아무도 필요로 하지 않는 기능이라고 생각합니다.
저는 그것을 git 개발 리스트에 보고하고 그들이 그것에 대해 어떻게 생각하는지 볼 것입니다.
다음과 같습니다.
config/databases.yml
cache
log
data/sql
lib/filter/base
lib/form/base
lib/model/map
lib/model/om
또는 심지어 다음과 같은 경우도 있습니다.
config/databases.yml
cache
log
data/sql
lib/*/base
lib/model/map
lib/model/om
만일의 경우에는filter
그리고.form
중 /b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b.base
무시해야 하는 하위 디렉터리입니다(별표로 수행할 수 있는 작업의 예로 참조).
첫 번째.이러한 파일 경로는 .gitignore 파일이 있는 위치에서 상대적입니다.
나는 당신이 생성할 수 있는 GUI 및 CLI 기반 서비스를 유지하고 있습니다..gitignore
템플릿은 https://www.gitignore.io 에서 매우 쉽게 찾을 수 있습니다.
검색 필드에 원하는 템플릿을 입력하거나 명령줄 별칭을 설치하고 실행할 수 있습니다.
$ gi swift,osx
Android Studio 프로젝트의 .gitignore 파일 샘플은 아래와 같습니다.
# built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# generated files
bin/
gen/
# Local configuration file (sdk path, etc)
local.properties
#Eclipse
*.pydevproject
.project
.metadata
bin/**
tmp/**
tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
YourProjetcName/.gradle/
YourProjetcName/app/build/
*/YourProjetcName/.gradle/
*/YourProjetcName/app/build/
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
# Proguard folder generated by Eclipse
proguard/
# Intellij project files
*.iml
*.ipr
*.iws
.idea/
/build
build/
*/build/
*/*/build/
*/*/*/build/
*.bin
*.lock
YourProjetcName/app/build/
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
.gradle/
app/build/
*app/build/
# Local configuration file (sdk path, etc)
local.properties
/YourProjetcName/build/intermediates/lint-cache/api-versions-6-23.1.bin
appcompat_v7_23_1_1.xml
projectFilesBackup
build.gradle
YourProjetcName.iml
YourProjetcName.iml
gradlew
gradlew.bat
local.properties
settings.gradle
.gradle
.idea
android
build
gradle
언급URL : https://stackoverflow.com/questions/8527597/how-do-i-ignore-files-in-a-directory-in-git
'code' 카테고리의 다른 글
Mongo ObjectId를 직렬화하는 동안 JSON.NET 캐스트 오류가 발생했습니다. (0) | 2023.05.23 |
---|---|
몽구스 프로미스 사용법 - 몽고 (0) | 2023.05.23 |
응용 프로그램이 실행되는 실행 파일 디렉터리? (0) | 2023.05.18 |
VB.NET 및 C#의 값에 대해 null을 확인하는 데 차이가 있는 이유는 무엇입니까? (0) | 2023.05.18 |
Excel 시트를 데이터 테이블로 읽는 가장 좋은/가장 빠른 방법은 무엇입니까? (0) | 2023.05.18 |