Прежде всего: вам не понадобится собственный репо для каждой версии вашего программного обеспечения. Если вы отпустите, создайте тег, и это все, что вам нужно. Ссылаясь на этот тег, вы всегда можете вернуться к выпущенной версии.
Если у вас есть центральное репо, куда каждому из двух ваших разработчиков будет разрешено подталкивать, то вам придется сделать это репо голым репо (как и в принятом ответе в указанном вами вопросе, рекомендуется ).
У обнаженных репозиториев нет извлеченной рабочей копии, поэтому вы всегда можете нажать на них (по крайней мере, до тех пор, пока вы загрузили последнюю версию).
Но ваш сценарий звучит немного по-другому: если у вас есть, например, два компьютера, на каждом из которых есть рабочая копия, и вы хотите нажать / вытащить между этими двумя полями, решение состоит в том, чтобы иметь ветвь, которая используется только при нажатием на мастер с другого компьютера.
Следующий рабочий процесс (при условии, что вы хотите передать изменения ветви myfeature
с notebook
на удаленный desktop
, который в данный момент имеет ветку myfeature
, извлечено:
Вкл. desktop
:
git checkout -b temp
Затем, на notebook
:
git push desktop myfeature:myfeature
Назад на desktop
:
git checkout myfeature
git branch -D temp
Вот и все.
Другой альтернативой (в случае, когда два разработчика (Алиса и Боб) работают над одной веткой) может быть & ndash; если Боб хочет получить последнюю версию myfeature
от Алисы & ndash; он вытягивает изменения из Алисы вместо того, чтобы позволить ей подтолкнуть ее изменения в его репо. Предполагая, что компьютер Алисы настроен как удаленный alice
в репозитории Боба, и Боб в настоящее время извлек ветку myfeature
.
Любой Боб делает
git pull alice
, если alice/myfeature
настроен как отслеживающая ветвь для его myfeature
ветви (установите его с git branch --set-upstream myfeature alice/myfeature
). Или
git fetch alice
git merge alice/myfeature
, если ветвь Алисы myfeature
не настроена как ветвь отслеживания.