Git으로 디렉토리를 추적하고 파일을 추적하는 방법은 무엇입니까?
최근에 Git을 사용하기 시작했는데 한 가지 문제가 있습니다. 콘텐츠를 추적하지 않고 디렉터리를 추적하려면 어떻게해야합니까?
예를 들어 내가 작업중인 사이트는 업로드를 허용합니다. 나는 분기 등을 할 때 생성되도록 업로드 디렉토리를 추적하고 싶지만 분명히 그 안의 파일은 아닙니다 (개발하는 동안 테스트 파일 또는 마스터의 실제 파일).
내 .gitignore에는 다음이 있습니다.
업로드 /*.*
또한 시도했습니다 (전체 디렉토리 무시).
업로드 /
이 디렉토리에는 하위 디렉토리 (uploads / thumbs / uploads / videos /)도 포함될 수 있습니다. 파일이 아닌 이들을 추적하고 싶습니다.
Git으로 가능합니까? 나는 답을 찾지 않고 모든 곳을 검색했습니다.
Git은 디렉토리를 추적하지 않고 파일을 추적하므로이를 달성하려면 적어도 하나의 파일을 추적해야합니다. 따라서 .gitignore
파일이 다음과 같다고 가정합니다 .
upload/*
다음과 같이 할 수 있습니다.
$ touch upload/.placeholder
$ git add -f upload/.placeholder
잊어 버린 경우 -f
다음이 표시됩니다.
$ git add upload / .placeholder 다음 경로는 .gitignore 파일 중 하나에서 무시됩니다. 업로드 정말로 추가하려면 -f를 사용하십시오. 치명적 : 추가 된 파일 없음
그러면 다음 git status
이 표시됩니다.
# 브랜치 마스터에서 # # 초기 커밋 # # 커밋 할 변경 사항 : # ( "git rm --cached ..."를 사용하여 언 스테이징) # # 새 파일 : upload / .placeholder #
분명히 다음을 수행 할 수 있습니다.
$ touch upload/images/.placeholder
$ git add -f upload/images/.placeholder
여기 에 대해 썼습니다 .
디렉토리 내에 .gitignore를 추가하십시오.
내가 찾은 가장 좋은 대답은이 콘텐츠와 함께 업로드 폴더에 .gitignore 파일을 포함하는 것입니다.
# Ignore everything in this directory
*
# Except this file
!.gitignore
여기 에 Git 저장소에 빈 디렉토리를 어떻게 추가 할 수 있습니까?
지금까지 최고의 솔루션 :
1) .gitignore 파일 생성
2) 내부에 작성 :
*
*/
!.gitignore
3) 원하는 폴더에 .gitignore 파일을 추가하십시오.
출처 : https://stackoverflow.com/a/5581995/2958543
디렉토리 만 추적하고 파일은 추적하지 않기 위해 다음을 수행했습니다. git 추적 전용 파일에 대한 @PeterFarmer의 의견 덕분에 아래에 설명 된 파일을 제외한 모든 디렉토리를 유지할 수있었습니다.
# exclude everything in every folder
/data/**/*.*
# include only .gitkeep files
!/data/**/*.gitkeep
이것을 .gitignore 파일에 추가하면 작업이 수행됩니다. 다음은 내 폴더 구조입니다.
data/
├── processed
│ ├── dataset1.csv
│ └── dataset2.csv
├── raw
│ ├── raw_dataset1.json
└── test
├── subfolder
│ └── dataset2.csv
└── reviews.csv
내가 할 때 git add . && git status
git은 파일이 아닌 폴더 만 인식합니다.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: .gitignore
new file: data/processed/.gitkeep
new file: data/raw/.gitkeep
new file: data/test/.gitkeep
new file: data/test/subfolder/.gitkeep
.gitignore 파일에 대해 다음 사항에 유의하십시오.
앞에 슬래시는 루트 디렉토리 만 찾습니다.
/ dir
Double asterisk looks for zero or more directories.
/**/
참고URL : https://stackoverflow.com/questions/5091017/how-to-track-directories-but-not-their-files-with-git
'programing' 카테고리의 다른 글
우선 순위 반전이란 무엇입니까? (0) | 2020.11.10 |
---|---|
Jquery에서 show () 및 hide ()와 함께 delay ()를 어떻게 사용할 수 있습니까? (0) | 2020.11.10 |
Javascript에서 Regex 캡처 그룹을 대문자로 바꾸기 (0) | 2020.11.10 |
첫 번째 명령 후 배치 파일 실행이 중지됨 (0) | 2020.11.10 |
# {variable}을 사용하여 Ruby에서 float로 문자열을 포맷하는 방법은 무엇입니까? (0) | 2020.11.10 |