2014-02-10 4 views
0

git을 사용하여 PHP 프로젝트를 관리하고 마스터, 스테이징, 개발 3 가지 지점을 보유하고 있습니다.은 추적 할 수없는 파일 때문에 분기를 계산할 수 없습니다.

그래서 새 기능을 master 분기로 병합했지만 문제는 git가 개발 분기로 다시 전환하는 것을 거부한다는 것입니다.

nothing to commit, working directory clean 

지금까지 확인 될 것으로 보인다 :

내 .gitignore 내용 : 나는 자식의 상태를 입력 할 때

config_enviroment.php 
.htaccess 
.idea 
a013/app/tmp/* 
smarty/smarty_templates_c/* 
config_enviroment.php 

그래서 지금은 master 에입니다. 하지만 지금은 개발 분기에 작업을 다시 얻으려고

git checkout development 
error: The following untracked working tree giles would be overwritten by checkout: 
    a013/app/Model/admin.php 
    a013/app/Model/articles.php 
    .... 
Please move or remove them before you can swich branches. 
Aborting 

질문 : 왜 자식이 그 파일을 추적하고 내 작업 디렉토리가 깨끗한 경우에도 지점을 전환하기를 거부 하는가?

답변

0

작업 디렉토리는 파일을 커밋 할 필요가 없다는 점에서 만 깨끗합니다. 모든 것은 커밋되거나 무시됩니다. 그러나 Git은 여전히 ​​.gitignore 상태에 관계없이 추적되지 않은 파일을 덮어 쓰는 체크 아웃을 거부하여 데이터 손실을 방지합니다.

+0

로 변경 사항을 취소 변경 사항 커밋 약 gitignore가 없어도 나열됩니다.이 파일이 이미 올바르게 추적되어야 함을 이해합니다. – insanebits

+0

@insanebits'git status '는 모든 파일을 표시하지는 않지만 그 파일이있는 디렉토리를 표시해야합니다. –

0

a013/app/Model/admin.phpa013/app/Model/articles.php에 변경 사항을 적용 했으므로 (개발)로 이동하려는 분기의 변경 사항을 덮어 씁니다.

당신은 옵션이 있습니다 git stash

  • 숨겨 놓은 변경 및 git stash pop를 사용하여 나중에 변경 사항을 얻는다. 너는 내 갈등이 있음을 주목하라.
  • 내가 자식 status`이 자식 불평 모든 비 추적 파일 만 파일 없음을 보여 주어야한다 '것을 의미 제거 gitignore 파일을 제거하려고했습니다
  • git reset HEAD --hard 또는 git checkout a013/app/Model/admin.php a013/app/Model/articles.php
+0

왜 자식 상태가 수정 된 파일을 표시합니까? – insanebits

관련 문제