2013-03-21 2 views
3

github에는 저장소가 없습니다. 나는 복제하여 github 계정에 사본을 가지고 있으며 내 컴퓨터에 해당 사본을 가지고 있습니다. 나는 그 디렉토리에 커밋 된 많은 파일들과 자체 디렉토리가있는 가지를 만들었습니다. 그걸 apple이라고 부릅니다. 마스터 브랜치로 다시 전환했을 때 나는 그 상태에서 애플에 위탁 한 디렉토리와 그 안에있는 모든 파일들이 그 상태에 있음을 알았다. 이제 마스터로 전환 할 때마다 수백 개의 파일이 표시됩니다.하나의 브랜치에서는 자식을 무시하지만 다른 브랜치에서는 무시합니다.

내 질문은 어떻게 내가 사과 분기에있는 그 파일을 마스터로 다시 전환 할 때 무시할 수 있도록 만들 수 있습니까? 마스터에서 .gitignore를 수정할 수는 있지만 프로젝트의 .gitignore가 변경 될 것이라고 확신합니다.

감사


편집 : 메모 작성자는 파일이 다른 지점에 최선을 다하고 있다면 내가 가지를 전환 할 때 그들은 표시되지해야한다는 지적이 올바른 것입니다. 내가 여기서 발견 한 것을 도와 준 모든 사람들과 일한 후에, 애플 지점에서 만든 디렉토리의 하위 디렉토리 중 하나가 많은 파일을 무시한 자체 .gitignore를 가지고있었습니다. 그 .gitignore는 사과 지점에서 커밋되었고 분기점을 (예 : 마스터 지점으로) 전환했을 때 특정 디렉토리의 .gitignore가 사라지고 Apple 지점에서 원래 무시 된 모든 파일이 git-gui의 다른 지점에 나타났습니다. untracked 인 것으로서. 그래서 저는 애플 지점에서 커밋되었다고 생각되는 많은 파일들을 가지고있었습니다 만 실제로 그렇지 못했습니다. 혼란을 드려 죄송합니다! Ryan Stewart의 대답을 정확하다고 표시합니다.

+1

Google 및 스택이 작업을 수행 할 수 있습니다. http://stackoverflow.com/questions/1836742/using-git-how-do-i-ignore-a-file-in-one-branch-but-have-it- committed-in-another – Casabian

+0

참조 된 링크는 .gitignore를 수정합니다.이 질문은 "프로젝트의 .gitignore가 변경 될 것이므로"규칙이 적용되지 않습니다. – GoZoner

+0

파일이 다른 분기에서 커밋 된 경우 해당 분기가없는 분기로 전환 할 때 나타나지 않습니다. – qqx

답변

3

새로운 파일을 추가하고 분기 사과에 커밋 한 다음 기록에 사과가 포함되지 않은 마스터로 다시 전환하면 새 파일이 표시되지 않습니다. 문제에 대한 당신의 설명에 대한 어떤 의미가 이해가되지 않습니다.

어쩌면 당신은 보다 먼저 git add 개의 파일을 사용해야한다는 것을 알지 못합니다 (특별히 git commit <files>을 사용하지 않는 한)?

git add banana 
git commit -m "added the banana feature" 
git checkout master 

을 그리고 당신은 마스터 지점에있을 것, 그리고 더 바나나가 없을 것입니다 : 당신이 지점 사과 디렉토리 바나나를 추가 한 경우 특히, 당신은 다음을 수행 할 수있다. git checkout apple 이후, 바나나는 해당 지점에 있기 때문에 다시 나타납니다.

+0

다시 master로 전환하면 apple에서 커밋 한 디렉토리가 추적되지 않은 디렉토리로 표시됩니다. – loop

+0

그러면 해당 디렉토리의 내용이 커밋되지 않습니다. –

+0

'git status -u'는 추적 할 수없는 최상위 디렉토리가 아닌 모든 커밋되지 않은 파일의 전체 목록을 보여줍니다. –

4

당신과 같은 자신의 '글로벌 무시'파일을 설정할 수 있습니다

git config --global core.excludesfile ~/.gitignore_global 

당신은 다음과 같은 ~/.gitignore_global주세요 웁니다. 또한 당신은 .gitignore 같은

.git/info/exclude 

을 편집 할 수 있지만 해당 .git 저장소에 적용됩니다.

+0

내가 찾고있는 것은 그것이 관련성이있는 지점 외부의 어떤 지점에서도 해당 디렉토리를 무시할 수있는 방법이라고 생각합니다. 그렇게 할 수있는 방법이 있습니까? – loop

+0

'사과'물건이 마스터 지점에 보이면 안됩니다. 위의 Ryan Stewart의 답변을 참조하십시오. – GoZoner

+1

.git/info/exclude에 파일을 추가하면 완벽합니다. – Leo

관련 문제