git push origin work:master
означает вызвать другого Git по адресу origin
, предложить им любые коммиты, которые у меня есть на моем work
, которых у них нет, а затем попросить их установить для master
значение match my work
. Это не так, но это немного необычно: обычно мы просим их Git установить их $ name (для любого $ name) в соответствии с нашим $ name. В этом случае мы обычно просим их установить свое work
, а не свое master
.
Если вы просто клонировали их, как вы установили свое имя work
? Предположительно их Git рекомендовал вашему Git создать ветку с именем master
, а не с именем work
. Если вы впоследствии запустили git checkout work
, а ваш Git создал свой work
на основе вашего origin/work
, который был копией их work
, это может означать, что их work
находится за их master
.
(Возможно, что Git на origin
настроен так, чтобы рекомендовать вашему Git создать ветку с именем work
на основе их work
, и в этом случае ваш Git будет сделали это.)
В любом случае это означает, что фиксация чаевых для work
находится на позади (но, возможно, также впереди) фиксации чаевых для их master
. Если вы заставите их установить master
в соответствии с вашим work
, они «потеряют» некоторые коммиты в конце своей ветки master
. Обычно это плохо, поэтому по умолчанию он отклоняется.
Если это хорошо для вас сегодня, вы можете повернуть свой вежливый запрос Если все в порядке, установите От master
до _____ (заполните поле с ha sh ID от вашего имени work
) в принудительную команду: Установите master
на _____! (введите пустым так же). Если у вас есть разрешение, они будут подчиняться команде и, таким образом, потерять те коммиты, которые у них были, которые были «впереди» вашего work
.
Если вы не хотите удалить коммиты из их master
, выясните порядок коммитов, которые вы хотели бы иметь, и используйте git rebase
или git merge
, чтобы скопировать или объединить любые work
коммиты, которых у вас нет, в порядок это не заставит их потерять свои коммиты.