2010-01-20 2 views
7

그래서 어떤 출처에서 복제 한 로컬 저장소가 있다고 상상해보십시오. 초기 복제 당시 원산지에는 featureA, featureB, featureC의 네 가지가있었습니다. 나는 featureA 분기를 삭제 원점 변경을 누르면 내가 다음 번에 삭제되는 그것에 대해 뭔가를보고 기대 나는 발행 :Git에게 원격 지점 삭제에 대해 경고하라고 알려줄 수 있습니까?

$ git pull origin

그러나, 무슨 일하는 난 아무것도 볼 수 없다는 것입니다 나는

$ git pull origin featureA

와 특정 지점을 아래로 끌어하려고 할 때 다음과 같은 오류 얻을 :이 완전히 번째로, 의미가

fatal: Couldn't find remote ref featureA
fatal: The remote end hung up unexpectedly

을 전자 지점은 실제로 리모컨에서 삭제되었습니다. 그렇기 때문에 심판은 더 이상 존재하지 않지만, 왜 내가이 사실에 대해 통보를받지 않았는지 궁금합니다. 내가 -r에 자식 지점의 출력과 함께 자식 LS-원격을 사용하는 작은 쉘 스크립트를 작성했습니다

[remote "origin"]
fetch = +refs/heads/:refs/remotes/origin/
url = [email protected]:/data/git/perecep.git

: 원격에 대한 나의 .git/config에은 다음과 같습니다 서버에 더 이상 브랜치가없는 원격 참조를 감지하고 삭제할 것인지 묻는 메시지를 표시하지만 내가 본질적으로 여기에 뭔가 잘못하고 있는지 궁금해하고 있습니까?

답변

2

나는 당신이 잘못하고 있다고 생각하지 않습니다. 로컬 브랜치는 원격 브랜치의 존재 여부에 의존하지 않으며 로컬 브랜치 (동일한 이름 및 표면 상 동일한 히스토리)가 존재하는 동안 원격 브랜치가 삭제되는 것은 완전히 유효한 상태입니다. 그것은 당신이 묘사하고있는 "중앙 집중화 된"접근 방법입니다. 그게 힘내에서 비 ​​정통적이라고 여겨지는 경우입니다.

편집 : 접선, 당신은 자식 분기에 --track--no-track 옵션 및 branch.autosetupmerge 설정 변수에 관심이있을 수 있습니다.

+0

B 나는 기업 환경에서 오전이 방법 개발자는 C/랩톱 컴퓨터는 코드를 공유하는 것을 선호합니다 (중앙 서버에 공개 주제 분기를 만들어 공동 작업을위한 변경 사항을 푸시하는 방식). 우리가 SVN에서 새롭게 바뀌었기 때문에 이것은 더 편한 것입니다. 내 관심사는 기능/주제가 통합 된 후에 삭제되는 이러한 성질의 여러 임시 분기를 만든 후 모든 개발자가 로컬 토폴로지에서 부실 원격 지점 조회수가 많다는 것입니다. – NewGitUser

3

좋아, 특수 스크립트가 필요하지 않습니다. 나는 그 사람 페이지에서이 명령

$ git remote prune origin

을 간과 생각 : 나는 힘내와 더 "중앙 서버"워크 플로우 다음입니다

 
    prune 
      Deletes all stale tracking branches under . These stale branches 
      have already been removed from the remote repository referenced by 
      , but are still locally available in "remotes/". 

      With --dry-run option, report what branches will be pruned, but do 
      no(sic) actually prune them. 
+0

리모컨을 업데이트 할 때이 설정이 자동으로 수행되는 설정이 있습니까? – xenoterracide

관련 문제