2013-09-25 5 views
5

현재 많은 원격 지점이있는 팀 프로젝트에서 작업하고 있습니다. 그리고 저는 주인님의 지부에서 프로젝트를 복제했습니다. 이제는이 프로젝트를 로컬로 변경 했으므로 밀어 넣고 싶습니다. 프로젝트의 기본 원격 브랜치로 푸시하지 않으려면 로컬로 새 브랜치를 만들고이 브랜치를 원격으로 푸시하고 싶습니다. .Git의 새 분기로 조심스럽게 밀어 넣는 방법

전반적인 아이디어는 내 로컬 버전의 프로젝트를 기본 원격 프로젝트로 분해하는 것이 아닙니다. 그냥 내 지점이 분리되어 있어야합니다.

그래서, 내가 먼저

git checkout -b my_new_branch

을 할 것 같은데요 다음

git push -u origin my_new_branch

윌이 보증, 내 분기가 누구의 혼합 얻을하지 않습니다?

답변

1

예제에서 로컬 분기를 원격 저장소로 푸시합니다. 이 방법으로 지점은 master 지점에서 분리됩니다.

다른 사람이 자발적으로push이 아닌 다른 사람과 섞이지는 않습니다.

+0

그래서 로컬 리모컨을 만들고 내가 언급 한 방식으로 다른 사람에게 문제를 일으키지 않습니까? btw : 원격 원점 목록에서'git remote show origin'을 할 때 로컬 브랜치를 볼 수 있습니까? 나는 내 것을 볼 수 없기 때문에. – ANW

5

-u 옵션은 originmy_new_branch을 추적하도록 저장소의 기본값을 설정합니다. 따라서 pushpull은 기본적으로 originmy_new_branch을 사용합니다. 그 후에 당신은 그 논쟁을 제공 할 필요가 없을 것입니다. 최종 git push 적절한 기본값을 사용하는

$ mkdir foo; cd foo; git init; touch README; git add README; git commit -m 'README' 
Initialized empty Git repository in /private/tmp/foo/.git/ 
[master (root-commit) 03f3d46] README 
0 files changed 
create mode 100644 README 

$ cd ..; git clone foo bar; cd bar 
Cloning into 'bar'... 
done. 

$ git checkout -b my-br 
Switched to a new branch 'my-br' 

$ touch INSTALL; git add INSTALL; git commit -m 'INSTALL' 
[my-br 627d6db] INSTALL 
0 files changed 
create mode 100644 INSTALL 

$ git push -u origin my-br 
Counting objects: 3, done. 
Delta compression using up to 16 threads. 
Compressing objects: 100% (2/2), done. 
Writing objects: 100% (2/2), 245 bytes, done. 
Total 2 (delta 0), reused 0 (delta 0) 
Unpacking objects: 100% (2/2), done. 
To /tmp/foo 
* [new branch]  my-br -> my-br 
Branch my-br set up to track remote branch my-br from origin. 

$ touch Makefile; git add Makefile; git commit -m 'Makefile' 
[my-br f2390c1] Makefile 
0 files changed 
create mode 100644 Makefile 

$ git push 
Counting objects: 3, done. 
Delta compression using up to 16 threads. 
Compressing objects: 100% (2/2), done. 
Writing objects: 100% (2/2), 255 bytes, done. 
Total 2 (delta 0), reused 0 (delta 0) 
Unpacking objects: 100% (2/2), done. 
To /tmp/foo 
    627d6db..f2390c1 my-br -> my-br 

공지 예를 ​​들면 다음과 같습니다. 저장소에서 주요 원격 저장소가 안전합니다.

1

다른 사람들이 지적 했듯. 정말로 틀린 것입니다.


그냥 모든 세부 사항을 요약합니다.

그래서, 나는 이름 my_new_branch에 새로운 지점을 만들 에 올바른 접근 방식 즉

git checkout -b my_new_branch 

을 할 것 같은데요. master 브랜치에서 변경 한 모든 사항을이 새 브랜치에 추가합니다.

git push -u origin my_new_branch 

이 다음 분기에 이어되고있는 원산지에 당신의 새로운 지점을 만듭니다. -u--set-upstream과 동일합니다.why always git branch --set-upstream에 대한 놀라운 답변에 대한 자세한 정보. 지금 당신은 원격 저장소 로컬 저장소에서 연결하여 분기를 원하는대로 원격 저장소에 git pushgit pull을 사용할 수 있습니다부터

.

내 지사가 다른 사람과 섞이지 않을 것이라고 보장 할 수 있습니까?

. 마스터 브랜치는 푸시로부터 절대적으로 안전합니다. 다른 사람이이 지점에 푸시하지 않는 한 여러분의 지점은 혼합 된 코드로 안전합니다. 이 조건을 적용 할 수 있다면 코드는 다른 사람의 코드과 섞이지 않을 것이라고 말하는 것이 안전합니다.