리포지토리를 게시하기 위해 Bare Repo를 만들었지 만 기본 리포지토리의 현재 상태로 Bare Repo를 업데이트하는 방법을 알 수 없습니다.
답변
기본 리포지토리의 모든 개체를 복제하려면 기본 리포지토리에서이 작업을 수행하십시오.
git push --all <url-of-bare-repo>
또는 Bare Repo 내부에서 가져 오기를 수행하십시오.
git fetch <url-of-main-repo>
풀은와 병합을 원하기 때문에 풀을 수행 할 수 없으며 HEAD
베어 리포지토리에는 없습니다.
나중에 리모컨을 추가하여 나중에 입력 할 수 있습니다.
git remote add <whatever-name> <url-of-other-repo>
그러면 간단하게 할 수 있습니다
git push --all <whatever-name>
또는
git fetch <whatever-name>
당신이있어. 만약이 REPO 내용에 따라 <whatever-name>
입니다 origin
, 당신도 전부를 생략 할 수 있습니다.
면책 조항 : 나는 자식 전문가가 아닙니다. 내가 잘못 말하면 깨달음을 원합니다!
업데이트 : 의견을 읽으십시오!
답변
다음 명령을 사용하여 리포지토리를 만들었습니다.
git clone --bare <remote_repo>
그런 다음 Thomas의 답변을 사용하여 베어 클론을 업데이트하려고 시도했지만 작동하지 않았습니다. 베어 리포지토리를 업데이트하려면 (Let_Me_Be가 요청한 것으로 생각) 미러 리포지토리를 만들어야했습니다.
git clone --mirror <remote_repo>
그런 다음 미러 리포지토리에서 다음 명령을 실행하여 기본 리포지토리의 업데이트를 가져올 수 있습니다.
git fetch --all
답변
로 다시 이외의 유일한 해결책은 git clone --mirror
있다 그레고르에서 :
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
그러면 git fetch
업데이트를 볼 수 있습니다. 이상한 점은 전에는 remote
구성된 것이 있지만에 나열된 분기가 없다는 것입니다 git branch -a
.
답변
가정 :
$ git clone --bare https://github.com/.../foo.git
다음으로 가져 오기 :
$ git --git-dir=foo.git fetch origin +refs/heads/*:refs/heads/* --prune
참고 : 먼저 디렉토리에있는 --git-dir=foo.git
경우 필요하지 않습니다 cd
.
답변
주위를 많이 어지럽 힌 후 이것이 저에게 효과적이라는 것을 알았습니다.
한번:
git clone --mirror ssh://git@source.address:2000/repo
git remote add remote_site ssh://git@remote_site.address/repo
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
매번 동기화하고 싶습니다 :
cd /home/myhome/repo.git
git --bare fetch ssh://git@source.address:2000/repo
git fetch ssh://git@source.address:2000/repo
git push --mirror remote_site
답변
Bare 저장소를 원격 저장소로 추가 한 다음을 사용하십시오 git push
.
답변
나 에게이 조합은 효과가 있었다.
git remote add remote_site https://github.com/project/repo.git
git fetch -u remote_site +refs/heads/:refs/heads/*
git push --mirror
가져 오기에 대한 -u 매개 변수가 필요했습니다. 그렇지 않으면 “비 베어 리포지토리의 현재 분기 참조 / 헤드 / 마스터로 가져 오기 거부”( https://stackoverflow.com/a/19205680/4807875 참조 ) 오류 메시지가 나타납니다.