2013-11-27 17 views
1

나중에 사용할 원격 브랜치를 새로 만들고 싶습니다.로컬 브랜치를 만들지 않고 원격 Git 브랜치를 만드는 방법은 무엇입니까?

git checkout -b newbranch origin/startingpoint 
git push origin newbranch 

을하지만이 또한 로컬 브랜치를 만들고 거기에 내 이름을 써 넣는 것 가장 일반적으로 제안 된 방법이 될 것으로 보인다. 로컬 브랜치를 생성하지 않고 원격 브랜치를 생성하는 방법이 있습니까?

답변

3

푸시는 로컬 참조를 요구합니다.하지만 이제는 나에게 다소 독단적 인 것처럼 보입니다. 그러나 원격 당신이 그렇게 직접에 밀어하고 이름을 무엇을 말할 수있는, 로컬 심판이라고하든 상관하지 않습니다

git branch junkname origin/startingpoint 
git push origin junkname:newbranch 
git branch -d junkname 
+2

이것은 완전히 사실이 아닙니다. 'git push origin : refs/heads/newbranch' ('refs/heads /'비트없이 실패한 것 같습니다)를 실행하여 로컬 브랜치를 사용하지 않고 원격 브랜치를 만들 수 있습니다. 나는 그렇게하기의 목적을 아주 천천히 확신하지 못한다 ... – twalberg

+0

Hunh. 이것은 일종의 나에게 원격 지사 조회에 대한 거부의 임의성을 시사한다. 나는 이런 용도에 대해 신경 쓰지 않는 사람이 누구인지 추측하고 있습니다. – jthill

+2

@twalberg : 나는 추측하고있다. 그러나 그것은 아마도 "매칭"브랜치를 푸는 아이디어에서 벗어날 것이다. 콜론 왼쪽에있는 부분이 브랜치 이름 일 때 git은 내부적으로'refs/heads /'부분을 추가합니다. 원시 SHA-1 자식을 사용할 때 로컬 브랜치 ('refs/heads/*')에 대해 그것을 해결할 수없고'refs/heads /'비트를 추가하지 않습니다. 어느 것이 물론 고칠 수 ... 누가 알 겠어! :-) – torek

1

내가 twalberg's comment 대답을하고 싶습니다. 당신은 그것에 refs/head/을 추가하여 원격 지점을 만들 수 있습니다 : 로컬 지점이있는 경우, git push 자동 refs/heads/을 추가

git push origin origin/startingpoint:refs/heads/newbranch 

torek explains으로. 로컬 지사가없는 경우 refs/heads/ 또는 refs/tags/으로 푸시 할 것인지 여부를 알 수 없습니다. git의 내 버전에서는 "소스 ref를 기반으로 한 접두사를 추측 할 수 없습니다"라고 말합니다. refs/heads/을 추가하면 git이 태그가 아닌 원격지에 브랜치를 생성하도록 지시합니다.

관련 문제