Почему число push-уведомлений git увеличивается для одного коммита в SourceTree, если я взял pull после фиксации

#git #atlassian-sourcetree

#git #atlassian-sourcetree

Вопрос:

MRE:

  1. Настройте SourceTree с нашей кодовой базой.
  2. У вас должно быть как минимум 1 коммит за удаленным репозиторием нашей кодовой базы.
  3. Не извлекайте, напрямую фиксируйте любой файл.
  4. Вы увидите 1 уведомление в кнопке git push в ST.
  5. Теперь потяните.
  6. Обратите внимание, что число меняется на 2 в кнопке git.

Может кто-нибудь, пожалуйста, скажите мне, почему? Представляет ли это число количество коммитов или что-то еще?

Ответ №1:

Извлечение, вероятно, привело к фиксации слияния, объединив локальные изменения, которые у вас были, с 1 удаленным изменением.

 --------------L local
--------------R  remote
  

После извлечения

 --------------LM local
               /
--------------R  remote
  

Теперь у вас есть 2 коммита (LM) перед удаленным, ваше исходное изменение слияние с удаленным. Несмотря на то, что ваше содержимое теперь синхронизировано с удаленным.

Альтернативой было бы выполнить перебазирование, которое перепишет вашу локальную историю для воспроизведения ваших изменений на удаленном компьютере:

 ---------------L local
--------------R  remote
  

После pull-rebase:

 --------------RN local
--------------R  remote
  

L будет переписан, чтобы вместо этого иметь R в качестве родительского элемента, что приведет к новой локальной фиксации (N).