2014-06-23 3 views
-1

저는 리모컨으로 추가 된 모든 개발자 repos가있는 중앙 백업 서버를 설정했습니다. 모든 리모콘에서 매일 가져옵니다. 그것은 나에게 개발자의 모든 브랜치를 dev1/master, dev1/FeatureA, dev2/master, dev2/Hotfix 등으로 준다. 나는 로컬 시스템이 망가지는 경우에 대비해 사용자 repos의 백업을 가질 수 있도록이 작업을 수행한다. 모든 것이 괜찮습니다. 내가 직면git fetch에서 원격 특정 분기를 덮어 쓰는 방법은 무엇입니까?

문제는 : dev1의 환매 약정은 2 가지 Br1 각각 dev1/Br1dev1.Br2를 통해 백업을 추적 Br2을 가지고 말할 때. 이제 개발자는 분기 중 하나를 삭제합니다 (예 : Br1). 백업 서버에서 EOD를 가져옵니다. 백업 서버는 여전히 dev1Br1 브랜치가 있음을 보여줍니다.

어떻게 원격 (dev1)의 repo는 지점을 삭제하면 즉도 dev1/Br1을 삭제, 새로운 사람과 기존의 모든 지점을 대체 인출 할 수 있습니까? 수동에서

git fetch --all --prune 

:

+0

난 당신이 REPO 지점 이름 매핑을 할 수 ='라인을 가져'사용하고 가정합니다. 그냥'--prune'을'git remote update' 또는'git fetch'에 추가하십시오. 일부 오래된 자식 버전은 때때로 일부 명령으로 제거 할 수 없으므로 작동하지 않는 경우 다른 버전을 시도하거나 자식 버전을 업데이트하십시오. – torek

+0

또한 흥미로운 시도입니다. http://stackoverflow.com/questions/2129214/backup-a-local-git-repository – user3415653

+0

@ user3415653 번들은 옵션이 아닙니다. 100 명 이상의 사용자를 백업하고 번들로 묶어서 번들 해제하는 것은 비용이 너무 많이 듭니다. –

답변

2

당신은 같은 뭔가가 필요

--all 
    Fetch all remotes. 

-p, --prune 
    After fetching, remove any remote tracking branches which no longer 
    exist on the remote. 
+0

감사합니다! 매력처럼 작동합니다. 그러나 태그가 제거 될 수있는 방법이 있습니까? 이런 식으로 분기를 완벽하게 제거하지만 리모컨에서 삭제되는 태그는 여전히 유지됩니다. –

+0

@MudassirRazvi'git fetch --all --prune --tags' 간단합니다. – Zarathustra

+0

@ Zarathustra Agreed. http://stackoverflow.com/q/10491146/2157640과 http://stackoverflow.com/q/1841341/2157640 – Palec