
/home/user/reponame
(Repo 1) 에 하나의 저장소가 있습니다 . 그런 다음 이 저장소를 /tmp/reponame
(Repo 2) 에 복제했습니다 . Repo 1의 업스트림 repo를 Repo 2로 변경할 수 있나요?
내가 본 다른 질문에서는 분기를 제안했지만 여기서는 내가 찾고 있는 것이 아닙니다. 그렇게 하면 git checkout -b test --track /tmp/reponame/master
오류가 발생합니다 /tmp/reponame/master is outside repository
.
답변1
Git은 저장소 전체 설정에 '업스트림'이라는 용어를 사용하지 않습니다. 개별 브랜치만 Git 용어로 업스트림을 가지며 다른 브랜치로만 설정할 수 있습니다. 그 목적은 git merge <otherbranch>
. (귀하의 git checkout
명령은 전적으로 브랜치 작업을 중심으로 구축되었습니다.)
대신에 아마도 당신은 다음을 찾고 있을 것입니다.'리모컨', 저장소 URL을 저장합니다. 모든 새로운 복제본은 소스 URL을 이름이 지정된 원격에 저장합니다 origin
. 따라서 repo 1이 repo 2에 푸시할 수 있도록 하려면 git remote add
또는 git remote set-url
(해당 이름의 원격이 이미 존재하는지 여부에 따라) 다음을 사용할 수 있습니다.
git remote add origin /tmp/reponame
git fetch origin
또는:
git config remote.origin.url /tmp/reponame
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
그 다음에는 종종 분기별 업스트림을 업데이트하여 git pull
작동하게 만듭니다.
git branch --set-upstream-to="origin/master" master