2016-06-01 9 views
0

나는 매주 repo의 모든 지점에 대한 데이터를 집계하는 프로그램을 작성 중이다.내 로컬 git repo를 원격 repo의 내용으로 새로 고침

프로그램은 15-20 리포지토리를 통해 확인합니다. 기본적으로 내 로컬 자식 repo 같은 원격 것과 똑같은 다시 설정해야합니다. 나는 어떤 현지 변화도 가지지 않을 것이다. 그러나 변경 사항이있는 경우 각 분기의 커밋을 전환하여 보고서를 생성합니다. 따라서 지점은 항상 오래된 커밋에 있습니다. 이후에 git pull 호출이 실패 할 지 확신 할 수 없습니까?

코드는 현재이 같은 작업을 수행합니다

git clone <repo> 
git pull --progress --verbose 

는 새로운 각 지점은 그 주에 저지른 그들에 대한 보고서를 집계 지점과 검사의 목록을 가져옵니다. 그런데, 한 번에 모든 가지를 끌어 당기는 방법이 있습니까?

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

나는 인터넷 검색을 시작하고, 클린 자식, 자식 가져, 자식 풀 (자식 병합/가져 오기) 등 많은 것들을 발견

여기에 풀 작업을 이눔 것인가? 또는 모든 파일을 삭제하고 다시 복제하는 것이 가장 좋습니다. git pull이 단순히 최신 커밋을 잡는다면 같은 일을 여러 번 복제하여 불필요한 오버 헤드를 피할 것입니다.

감사합니다.

답변

0

fetch는 .git 디렉토리이 귀하의 경우에는

에 정의 된 모든 개체를 얻을 것이다 가져 오기 당신이 원하는 것이 아니다

pull 모두 얻을 것이다 리모컨에서 변경된 내용을 로컬 Repo에 저장합니다. 충돌이 있으면 텍스트 편집기에서 덮어 쓰기에 대해 경고합니다.

큰 리포지토리를 사용하는 경우 큰 리포지토리를 사용하면 너무 시간이 오래 걸릴 수 있으므로 (프로그램이 완전히 자율적 인 경우 충돌을 해결하기 위해 다시 호출해야 할 수 있음) 질문에 대답하려면 pull을 수행해야합니다.

+0

로컬 변경을하지 않은 경우 왜 충돌이 발생합니까? – Nick

+0

나는'pull '대신에'clone'을 사용할 예제를 제공하고 있습니다. –