2011-10-14 2 views
4

앨리스와 밥이 같은 프로젝트에서 작업하려고합니다. 지금까지 우리가 한 일이 여기에 있습니다.워크 플로우 푸시 및 분산

밥 :

mkdir myproject 
cd myproject 
echo "Hello" > readme.txt 
git init 
git add readme.txt 
git commit -m "Initial Commit" 

앨리스 : 우리가 붙어있어 어디

git init 
git remote add bob ssh://bob/home/bob/projects/myproject 
git pull bob 
git checkout remote/bob/master -b bobsMaster 
echo "Hello again" >> readme.txt 
git add readme.txt 
git commit -m "Improving readme" 
git push bob bobsMaster 

지금이다. 밀어 내기는 성공하지만 앨리스의 커밋이 어디로 갔는지 전혀 알지 못합니다. Bob이 master 브랜치에서 git log을 입력하면 앨리스의 커밋을 찾을 수 없습니다.

우리는 완전히 다른 방식으로 분산 된 워크 플로에 관해 생각합니까? 어떻게 앨리스와 밥이 같은 지점에서 함께 일해야합니까? repos를 호스트 할 중앙 위치가 없으므로 전체 배포 작업을 원합니다.

편집 :

우리는 제안 풀 유일한 워크 플로우와 함께 갈 것입니다. 우리가 Bob의 repo에있는 bobsMaster 브랜치를 발견하지 못한 이유는 이전 pull을 수행 한 것으로부터 가정했기 때문입니다. 답변 주셔서 감사합니다!

답변

2

밥이 bobsMaster 지점 작성해야 병합해야합니다. 당신이 밥의 master 지점 사용 bobsMaster을 밀어하려면이 : 워크 플로우에서

git push bob bobsMaster:master 

를가 권장되지 않는 비 베어의 repo에 밀어대로의 다른 REPO에서 밥과 앨리스가 당겨 것이 훨씬 낫다. 에 관한

1

변경 내용을 bobsMaster으로 푸시하고 master으로 푸시하지 않았습니다. 따라서 밥

git checkout master 
git merge bobsMaster 
+0

Bob에는 bobsMaster라는 분기가 없습니다. Bob이 원격으로 Alice를 추가하고 remote/alice/bobsMaster에서 병합을 제안 하시겠습니까? 그렇다면 앨리스의 푸시가 불필요하다는 의미입니까? –

+0

아니, Alice가 Bobs 저장소에 'bobsMaster'를 _pushed 했으므로 거기에 존재합니다. CharlesBs 대답을 참조하십시오. 그는 '멍청이들 Master : master'를 밀었습니다. 즉, 그는 주인 _motes에 '밥 마스터'를 밀었습니다. 원격 브랜치 이름을 생략하면 git은'bobsMaster' =>'bobsMaster : bobsMaster' – KingCrunch

1

은 "커밋없는"

git log --branches 

1

(그들이 당신 'master'가 아닌 다른 지점 'bobsMaster'에서 수행 되었기 때문에) 당신이 앨리스의 커밋을 볼 수 있도록 충분해야한다 새로운 원격 지점 bobsMasterbob 저장소에 커밋을 보냈습니다 (지점은 git push bob bobsMaster으로 생성되었습니다).

해당 명령의 마지막 인수는 원격 참조를 지정합니다. 원격 참조가 발견되지 않으면 원격 참조가 작성됩니다. bob 저장소에는 하나의 브랜치 (master) 만 있으므로 bobsMaster으로 푸시하면 Bob의 저장소에 해당 분기가 생성됩니다.

git push bob master을 사용하여 변경 사항을 Bob의 마스터 분기로 푸시해야합니다.

관련 문제