2011-02-23 1 views
54

최근에 Git을 사용하기 시작했는데 한 가지 문제 만 있습니다. 어떻게 내용을 추적하지 않고 디렉토리를 추적 할 수 있습니까?Git으로 디렉토리를 추적하는 방법은 없지만 파일을 추적하는 방법은 무엇입니까?

예를 들어 내가 작업하고있는 사이트는 업로드를 허용합니다. 나는 브랜치 등을 만들 때 uploads 디렉토리를 추적하기를 원하지만, 브랜치를 개발할 때 테스트 파일이나 마스터에있는 실제 파일을 테스트 할 때 분명히 파일이 아니다. (전체 디렉토리를 무시하는)

uploads/*.*

도 시도 해 봤나 : 내 .gitignore에서

나는 다음과 같은 한

uploads/

이 디렉토리 않을 수도 포함 하위 디렉토리 (업로드/엄지/업로드/동영상 /) 나는이 파일을 추적 할 수 있기를 원합니다.

힘내에서 가능합니까? 나는 대답을 찾지 않고 도처에서 수색했다.

+0

힘내 파일 만 추적합니다.당신이 할 수있는 일은 git 훅으로 놀고 디렉토리 목록을 포함 할 파일을 추적하는 것입니다 (훅을 사용하여 자동 생성됨). 가능할 지 확실하지 않지만. –

+0

더 구체적 : _content_를 추적하고 (자식의 경우) 빈 디렉토리가 내용이 아닙니다. 너는 동의한다, 그렇지 않겠지 만, 다른 "해결 방법"으로 빌드/설치/필요할 때 디렉토리를 생성하는 것에 대해 생각할 수도있다. 그러나 : ".placeholder'-file"-solution도 사용합니다.) – KingCrunch

+0

.placeholder를 사용하는 대신 .gitignore 파일을 사용합니다. 이것은 디렉토리 내의 예외를 처리 할뿐만 아니라 자리 표시 자 역할을합니다. – Abizern

답변

72

힘내는 디렉토리를 추적하지 않으므로 파일을 추적하므로이를 달성하려면 적어도 하나의 파일을 추적해야합니다.

upload/* 

당신이 수행 할 수 있습니다 : 그래서 .gitignore 파일을 가정하는 것은이 같은 보이는 당신이 -f를 잊어 버린 경우

$ touch upload/.placeholder 
$ git add -f upload/.placeholder 

를 다음과 같이 표시됩니다 :

 
$ git add upload/.placeholder 
The following paths are ignored by one of your .gitignore files: 
upload 
Use -f if you really want to add them. 
fatal: no files added 

을 그리고 당신이 할 때 git status을 보면 다음과 같이 표시됩니다 :

 
# On branch master 
# 
# Initial commit 
# 
# Changes to be committed: 
# (use "git rm --cached ..." to unstage) 
# 
# new file: upload/.placeholder 
# 

은 확실히 당신은 할 수 있습니다 :

$ touch upload/images/.placeholder 
$ git add -f upload/images/.placeholder 
+0

감사합니다. 이것은 내가 필요한 것입니다. – Ben

+8

자리 표시 자에 대한 일반적인 규칙은 gitignore 파일입니다. – Cascabel

+2

@ Jefromi 실제로 Abizern에 대한 저의 의견은'.gitignore' 파일을 자리 표시 자로 사용하는 것을 결코 고려한 적이 없었습니다. –

31

나는이 here에 대해 썼다.

디렉토리 내에 .gitignore를 추가하십시오.

+1

멋진 작은 글과 댓글! 자리 표시 자 파일로 .gitignore를 사용하는 것을 고려한 적이 없었습니다 .... –

+0

고마워요. 나는 글을 쓰고 논평을함으로써 뭔가를 배웠다. – Abizern

+0

'.gitkeep'을 사용하는 유명한 명명 규칙이있는 것 같습니다. – tarabyte

10
내가 찾은

최저 answerd이 콘텐츠 여기

# Ignore everything in this directory 
* 
# Except this file 
!.gitignore 

당신이 당신의 업로드 폴더에 .gitignore 파일을 포함하는 것입니다 How can I add an empty directory to a Git repository?

+2

그것은 중첩 된 폴더 구조와 작동하지 않습니다. – shashwat