이후에 지역 지점 팁을 다시 가리 키려면 git fetch몇 가지 추가 단계가 필요합니다.
보다 구체적으로는 github의의 REPO는 가지가 가정 D, B, C,과 master(이 홀수 지사 이름 세트에 대한 이유는 한 순간에 분명 할 것이다). 당신은 호스트에 devhost있고 origingithub 저장소가있는 저장소에 있습니다. 당신은 할 git fetch모든 것을 객체 및 업데이트를 제공하는, origin/D, origin/B, origin/C,와 origin/master. 여태까지는 그런대로 잘됐다. 그러나 지금 당신은 당신이 뭔가에, 일이하고 싶은 말은 devhost에, 지방 지사 D, B, C, 및 / 또는 master?
나는 (어쨌든 나에게) 다음과 같은 명백한 질문이 있습니다.
- 모든 지점 의 팁을 업데이트 하려는 이유 는 무엇 입니까?
- 일부 분기 (예
B:)에 원격 (github) 저장소에없는 커밋이있는 경우 어떻게됩니까? 병합, 리베이스 또는 ...?
- 일부 브랜치 (예 :)에
C있고 작업 디렉토리 및 / 또는 색인이 수정되었지만 커밋되지 않은 경우 어떻게됩니까?
- 원격 저장소에 새 분기가 추가 (
A)되거나 분기가 삭제 ( D) 되면 어떻게 됩니까?
(1)에 대한 답이 " devhost실제로 개발을위한 것이 아니기 때문 이 아니라 단순히 로컬에서 사용할 수있는 github 저장소 사본을 보관하는 로컬 미러이므로 실제 개발자가 모두 천천히 읽는 대신 빠르게 읽을 수 있습니다. github "이면"일반 "저장소가 아닌"미러 "가 필요합니다. 작업 디렉토리가 없어야하며 푸시도 허용하지 않아야합니다.이 경우 나머지 질문은 사라집니다.
다른 답이 있으면 (2-4) 문제가됩니다.
어쨌든 다음은 원격 참조를 기반으로 로컬 참조를 업데이트하는 방법 git fetch -p입니다 (예 : 실행 후 ).
for ref in $(git for-each-ref refs/remotes/origin/ --format '%(refname)'); do
local=${ref#refs/remotes/origin/}
... code here ...
done
... code here ...섹션 의 내용은 질문에 대한 답변에 따라 다릅니다 (2-4).
git fetch당신이 원하는 것을해야합니다.