2012-03-29 8 views
2
수은

추진되고에서 디렉토리 : 내 초기가 커밋 밀어 원하는방지 나는 내 로컬 컴퓨터에 새 저장소를 생성 된 파일을 추가하고 내 작업 복사본 나에게 다음과 같은 구조를 제공 커밋 된

-/a  
-/b 

Bitbucket의 원격 저장소. 그러나 나는 밀어 넣기되지 않도록 디렉토리 b을 무시하려고합니다. 나는

을 내 .hgignore 파일에 추가했습니다. 디렉토리 b이 어쨌든 푸시됩니다.

어떻게 방지 할 수 있습니까? .hgignore 추가에

답변

1

:

^b/.* 

또는 b/* 당신이 열등 glob 구문을 (정규식 당신에게 훨씬 더 제어 할 수 있습니다)를 사용하는 경우.

구문은 첫 번째 줄에 정의되고 모든 규칙은 다음과 같은 별도의 줄로 정의됩니다.

globbing하려는 경우 첫 번째 줄은 syntax: glob이고 regex이면 첫 줄은 syntax: regexp (기본적으로 묵시적)입니다. documentation을 참조하십시오. 당신은 단지 초기 밀어 수 없습니다 수은이 실제로 빈 디렉토리를 밀어하지 않기 때문에 유일한 방법은 당신이이 의욕에 할 수없는 b/

+0

hgignore는 파일이 추적되는 것을 방지 할뿐만 아니라 밀어 넣기를 방지합니다. 그게 맞습니까? – kayfun

+0

@kayfun'.hgignore'는 untracked 파일을 거부하기위한 필터 역할을합니다 (예 : 인자없이 일반 hg add를 할 때). 이미'b /'에있는 파일들을 추적하고 있다면, 자동적으로 이러한 파일들을 untrack *하지 않을 것입니다. '/ b' 파일이 이미 추적되어 있다면 ('hg st --all'을 통해) 확인하고 수동으로 ('hg forget'을 통해) 제거하십시오. hgignore를 만들기 전에 이미 추적되었을 수 있습니다. –

+0

@kayfun : 간단히 말해서, 아니요. –

5

에있는 파일이있는 경우 그것이 테스트 할 수있을 것으로

주 버전의 파일을 삭제 한 다음 나중에 수정을 무시하십시오. 변경 집합의 일부를 푸시 할 수도 없습니다. 변경 집합 전체를 푸시 할 수도 있고 푸시하지 않을 수도 있습니다. 이렇게 Mercurial을 사용하면 모든 복제본에서 일관된 프로젝트 스냅 샷을 얻을 수 있습니다.

프리셋은 .hgignore 파일이 비 추적 파일의 필터라고 씁니다. .hgignore 파일은 hg status과 같은 명령의 출력을 필터링하고 추가 인수없이 hg add을 실행하여 추가 된 파일을 필터링하는 데 사용됩니다.

+0

답변 해 주셔서 감사합니다. 나는 너를 이해하고 있는지 확인하고 싶다. 내 질문에 언급 된 b 디렉토리는 실제로 매우 큰 젠드 (Zend) 라이브러리이므로 푸시하지 않으려는 이유입니다. 그래서 내가 처음에해야 할 일은 저의 저장소를 만들고, .hgignore 파일을 만들어 zend 라이브러리 디렉토리를 무시하고, 파일을 저장소에 추가 한 다음 커밋하는 것입니다. 그런 식으로, zend 디렉토리 does not는 그것이 수은에 의해 추적되기 위해 결코 추가되지 않았던 것에 따라 밀어 넣게된다. 그 맞습니까? – kayfun

+0

@kayfun : 맞습니다. 밀고 싶지 않은 것을 추적하지 마십시오. –

+0

좋아, 방금 추적하거나 밀어 넣지 않으려는 추가 파일을 잊어 버렸습니다. 이미 changeset이 존재 함을 의미하는 작업 카피에 변경을가했는데, 나는 단지 changeset에 추가 될 잊혀진 오퍼레이션을 완성했다.내 첫 번째 커밋은 'Initial Commit'이라고 레이블을 붙였습니다. 현재 변경 집합을 커밋하고 '변경'이라고 레이블을 지정하고 빈 원격 저장소로 푸시하기로 결정한 경우, '초기 커밋'이 Zend를 포함하는 첫 번째로 푸시됩니다. 디렉토리에서 '변경'을 누르면 다음에 원격 저장소가 zend 디렉토리를 잊어 버리게됩니다. 그 맞습니까? – kayfun