2010-02-07 2 views
6

git를 제 1 차 버전 제어 시스템으로 사용하고 있으며 최근에 제 CakePHP 프로젝트에서 git을 사용하기 시작했습니다. 이것은 나의 현재 .gitignore 파일입니다CakePHP 프로젝트에서 Git 사용하기

app/tmp 
vendors/ 

CakePHP의의 자식의 repo에서 사용하지만, 서버에 프로젝트를 배포 할 때 내가 가서 만들 필요가 있기 때문에 이것은 나를 위해 조금 더 많은 작업이 발생하는 모든 app/tmp/sub-directories를 수동으로 실행해야 제대로 작동합니다. 이 폴더의 내용을 무시하도록 설정하는 방법이 있나요?하지만 핫키 된 디렉토리에 저장소를 복제 할 때 표시되도록 자식 제어를 계속 사용 하시겠습니까?

필자가 작업 중일 때 git 인덱스를 재설정하는 데 문제가있어서, 필자는 필 요한 것보다 많은 커밋을해야하기 때문에 어떤 아이디어가 필요합니까?

+0

git 색인의 문제점에 대해 더 자세히 설명 할 수 있습니까? 어떤 단계를 통해 문제가 재현됩니까? –

+0

디렉토리를 추가하는 방법에 대해서는 http://stackoverflow.com/questions/115983/how-do-i-add-an-empty-directory-to-a-git-repository의 답변을 원하지만 내용은 무시하십시오. . –

+0

문제를 일으키는 활동이 확실하지 않지만 임의로 인덱스의 모든 파일이 삭제 된 것으로 표시되면 모든 파일을 인덱스에 다시 추가해야합니다. – trobrock

답변

11

Git은 디렉토리가 아닌 파일 만 저장하므로 예를 들어 숨겨진 파일을 해당 디렉토리에 추가하고 커밋 할 수 있습니다.

  1. 제거 응용 프로그램/tmp를/.gitignore
  2. 터치 응용 프로그램에서/tmp를/.keep
  3. 자식은/.keep
  4. 자식 응용 프로그램/tmp에
  5. 앱/tmp를 /가 추가 커밋 추가 할 수 있습니다. gitignore
+0

좋아, 네가 그랬던 것처럼, 나는 그걸하는 법을 기억하지 못했다. – trobrock

4

git는 파일이 아닌 디렉토리 만 저장합니다. 기본적으로 cake의 .gitignore 파일은 저장소에 tmp 파일이 추가되지 않도록 tmp 폴더의 모든 내용을 무시합니다.

할 수 있습니다 (그리고해야한다) 프로젝트 생성 후 그러나이 작업을 수행 :

cd /my/app 
git add -f tmp 

이 작업을 수행 할 것입니다 : 당신의 TMP 폴더 구조 커밋 할 준비가 이와 같이

$ git status 
# On branch master 
# 
# Changes to be committed: 
# (use "git rm --cached <file>..." to unstage) 
# 
# new file: tmp/cache/models/empty 
# new file: tmp/cache/persistent/empty 
# new file: tmp/cache/views/empty 
# new file: tmp/logs/empty 
# new file: tmp/sessions/empty 
# new file: tmp/tests/empty 

을, tmp 디렉토리에있는 다른 모든 파일은 무시됩니다 (계속).

1

내 .gitignore 파일.

tmp/* 
[Cc]onfig/core.php 
[Cc]onfig/database.php 

webroot/files/ 
webroot/img/photos/ 

!empty 
.DS_Store 

만약 내가 비어 있습니다. 비어있는 .keep 파일은 SVN 전에 작성되어 있습니다. 마지막으로 [cc]에서 언급 한 cakePHP 1.x 및 2.x 프로젝트에이 구성을 사용한다는 것도 알 수 있습니다. 필자는 사용자 파일을 저장하는 일부 폴더 설정을 사용하므로 항상 무시합니다. 마지막으로 .DS_Store는 내 프로젝트 용 내 MAC 작성 썸네일보기를 무시합니다.

+0

무엇을 의미합니까? 빈 뜻입니까? – dynamic