Git Push и распределенные рабочие процессы - PullRequest
4 голосов
/ 14 октября 2011

Алиса и Боб пытаются работать над одним проектом. Вот что мы сделали до сих пор.

Боб:

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

Alice:

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

Теперь вот где мы застряли. Толчок успешен, но я понятия не имею, куда пошел коммит Алисы. Когда Боб набирает git log из своей ветви master, коммит Алисы нигде не обнаруживается.

Мы идем о распределенном рабочем процессе совершенно неправильно? Как Алиса и Боб должны работать вместе в одной ветви? Обратите внимание, что у нас нет центрального расположения для размещения наших репозиториев, поэтому мы хотим работать полностью распределенными.

Edit:

Мы собираемся перейти на рабочий процесс только для извлечения, как предложено. Причина, по которой мы не заметили ветку bobsMaster в репо Боба, заключается в том, что мы предположили, что это произошло из-за более раннего извлечения. Спасибо за ответы!

Ответы [ 4 ]

2 голосов
/ 14 октября 2011

Боб должен создать ветку bobsMaster. Если вы хотите нажать bobsMaster на ветку Боба master, используйте это:

git push bob bobsMaster:master

В вашем рабочем процессе гораздо лучше, чтобы Боб и Алиса извлекали из репо других, так как продвижение в репо без обнажения не рекомендуется.

1 голос
/ 14 октября 2011

Фиксация была отправлена ​​в новую удаленную ветвь с именем bobsMaster в bob хранилище (ветвь была создана git push bob bobsMaster).

Последний аргумент в этой команде указывает удаленный refspec - если он не найден на удаленной стороне, он создается. Хранилище bob имело только одну ветку (master), поэтому, нажав bobsMaster, вы создали эту ветку в репо Боба.

Вы должны использовать git push bob master, чтобы отправить изменения в основную ветвь Боба.

1 голос
/ 14 октября 2011

Относительно "отсутствующего коммита":

git log --branches

должно быть достаточно для того, чтобы вы увидели коммиты Алисы (поскольку они были сделаны в другой ветке 'bobsMaster', чем ваша 'master')

1 голос
/ 14 октября 2011

Вы отправили изменения на bobsMaster, а не на master.Таким образом, Боб должен слить

git checkout master
git merge bobsMaster
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...