Bitbucket git repo имеет дублирующиеся ветки с разным контентом - PullRequest
0 голосов
/ 27 ноября 2018

Я не уверен, как воспроизвести это или как это возможно, но мне удалось попасть в ситуацию, когда git / bitbucket хранил 2 ветки с дублирующимися именами.

  1. Если бы я посмотрел на bitbucket, под ветками, я бы увидел несколько веток с одинаковым именем.
  2. В git branch --remote я мог видеть только 1 имя.
  3. Если бы я запустил git fetch, это всегда сообщало бы мне о новой ветке.
  4. Ветви 'дубликата' имели различное содержимое, когда я запускал git fetch, он "переключал" ветви, что означало, что каждый я запускал его и делал журнал на одном и том же origin/branch это будет показывать другую информацию.

Я исправил это, удалив ветку из bitbucket, оставив только одну из них (хорошую).Меня интересует, как это могло произойти?Это из Git или Bitbucket?

1 Ответ

0 голосов
/ 27 ноября 2018

Вы имеете дело с проблемой чувствительности к регистру.Atlassian Bitbucket (и особенно Atlassian Bitbucket Cloud) обычно работает в Linux с файловой системой, чувствительной к регистру, но вы проверяете ее в Windows, которая не учитывает регистр (по крайней мере, из-за того, что нас беспокоит вуровень файловой системы).

Поскольку Git хранит ссылки (ссылки) в файловой системе, ветки следуют тем же правилам (ветви являются типом ссылки).

В Bitbucket вы можете иметьдве ветви, feature/Compat_Fixes и feature/Compat_fixes (обратите внимание на различие в регистре букв "F" в "Исправлениях").Когда вы проверяете это на компьютере с Windows, git сначала получает один, а затем перезаписывает его другим (f = F).

Каждый раз, когда вы запускаете выборку, Git обменивается списком ваших ссылок (refs) для сравнения с пультом.Bitbucket увидит, что вы пропустили один, и отправит его вам.Ваш местный мерзавец тогда с радостью перезапишет ссылку на ваш новый.При следующей выборке весь процесс происходит с другой веткой.

Переименование одной из ветвей, удаление одной или объединение их вместе в Bitbucket решит проблему.

Кстати, это можетслучается и с файлами в вашем рабочем каталоге.

Помимо Windows или системы Mac OS (X), в которой есть файловая система, нечувствительная к регистру, то же самое относится и к файловым системам, которые не могут работатьсо всей двоичной и символьной кодировкой Git по сравнению с самой файловой системой (см. подраздел "git-branch" в конце страницы, помеченный Обсуждение ).

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