В удаленном хранилище есть ветвь master
. Боб клонирует репозиторий, работает и фиксирует свою локальную ветку master
. Ева также клонирует репозиторий, работает и фиксирует свою локальную ветку master
. Она довольно быстрая, поэтому она отправляет свои коммиты в удаленный репозиторий; пульт master
обновляется с ее коммитами. Когда Боб, наконец, заканчивает то, что он сделал, он не может просто нажать на удаленную ветку master
, так как он разошелся: у него есть фиксации на его master
, чего нет у удаленного, и в то же время удаленный фиксирует коммит * Боба. 1007 * не имеет (от Евы).
Что теперь? Боб может либо объединить свою основную ветвь с удаленной главной ветвью, сделав свои коммиты доступными, создав коммит слияния, который "объединяет" обе ветви, либо он может перебазировать свою локальную master
на пульт master
. Последний помещает свои собственные коммиты поверх удаленных коммитов master
, как если бы он делал коммит после внесения изменений Евы.
Детали этого процесса зависят от выбранного вами инструмента управления git-сервером, и я не могу ничего сказать о TFS, но именно поэтому необходимо либо слить, либо перебазировать, даже если вы все работаете в основной ветке .