2011-04-20 8 views
11

3 개의 로컬 브랜치와 3 개의 원격 브랜치가 있으며 둘 다 동일한 브랜치에 있어야합니다. 리모컨의git에서 다른 원격 브랜치로 전환하는 방법

git branch 
    A 
* B 
    master 

git branch -r 
    origin/A 
    origin/B 
    origin/master 

:

지역에 내가 푸시를 저지하고 B를 당길 수 있어요

git branch 
    A 
    B 
* master 

하지만 내 업데이트 후크 대신 B의 마스터를 배포, 나는 가정 원격 브랜치가 여전히 마스터로 설정되어 있기 때문입니다.

git branch B 
git checkout B 
git push origin B 

답변

4

는 지금까지 내가 아는 한, git push와 원격의 현재 지점을 변경할 수있는 방법이 없다 : 내가 사용하는 지점 B를 만들었습니다. 푸시하면 로컬 변경 사항이 해당 저장소로 복사됩니다. 일반적으로 푸시 할 리모컨은 작업 디렉토리 (따라서 "현재 분기"없음)없이 --bare이어야합니다.

+0

나는 당신이 옳다고 생각하는데, 이것은 어쨌든 제 문제가 아니 었습니다. 문제는 내가 업데이트 훅을 사용하고있어서 그 내부에있는 자식 아카이브가 마지막 커밋 또는 뭔가를 얻지 못한다는 것입니다. 내가 아는 전부는 내 배포 된 지점은 로컬 푸시 뒤에 하나의 커밋입니다 – sanon

+0

후크 스크립트의 관련 부분을 게시 할 수 있습니까? – dahlbyk

+0

내 업데이트 훅'git archive $ 1 | tar -x -C/local/B/rsync -arq \ - ".git"\ -delete --delete-excluded \/local/B/me @ dev :/remotedev/html/B /' – sanon

13

다음은 git 저장소의 원격 지점을 전환하고 작업하는 나의 방법입니다.

git branch --all 

을 그리고 당신은 로컬 및 원격에있는 모든 지점이 표시됩니다

터미널에서 다음 명령을 먼저 모든 지점에 대한보고, 단지 입력 되세요. 이런 식으로 뭔가 :

*master 
remotes/origin/develop 
remotes/origin/master 
remotes/origin/web 
remotes/origin/app 

하는의 당신이 remotes/origin/develop 지점으로 전환하려는 척하자. 단지 할 다음

*(detached from remotes/origin/develop) 
master 
remotes/origin/develop 
remotes/origin/master 
remotes/origin/web 
remotes/origin/app 

을 그리고 :

git checkout remotes/origin/develop 

그런 다음이를 찾기 위해 다시 git branch --all를 입력 : 다음을 입력

git checkout -b develop 

를 지금부터, 당신은 정확히 remotes/origin/develop 지점에 노력하고 있습니다.

관련 문제