git branch -a списки слитых / удаленных веток - PullRequest
0 голосов
/ 14 февраля 2019

Всякий раз, когда я пишу команду git branch -a, чтобы увидеть все мои ветви локально и удаленно, я как-то вижу старые ветви, которые были объединены и закрыты.Как мне избавиться от этих веток, которых больше нет в моем локальном git или github?

Ответы [ 3 ]

0 голосов
/ 14 февраля 2019

Если git branch -a показывает их, они существуют локально.Вот что перечисляет git branch: вещи, которые существуют локально.

Ветви вашего Git ваши .Это не какие-то другие Git.

Ваши Git имена для удаленного отслеживания , такие как origin/master, также ваши, но ваш Git автоматически синхронизирует их сто, что он видит на другом Git в origin.То есть, если у другого Git есть ветка с именем feature/tall, ваш Git создаст или обновит ваш origin/feature/tall, когда вы подключите свой Git к их Git и попросите ваш Git получить от них новые вещи.

Выможет иметь ваш Git автоматически удалить имена удаленного отслеживания, а также.Это не значение по умолчанию - если ваш Git видел их feature/tall на прошлой неделе и поэтому создал ваш origin/feature/tall, а вчера они удалили их feature/tall, ваш Git продолжит сохранять ваш origin/feature/tallпо умолчанию.Чтобы сказать вашему Git: Если они удалили свои, удалите мое имя удаленного отслеживания, которое копирует их , у вас есть несколько вариантов:

  • Выполнить git fetch origin --prune: это вызываетGit на origin получает список своих ветвей и выясняет, какие origin/* имена удалить, одновременно обновляя origin.
  • Run git remote prune: это вызывает all Gits на всех ваших пультов.(Ну, это очень настраивается, но это по умолчанию.) Если у вас есть только один пульт с именем origin, который имеет тот же эффект.
  • Настройте fetch.prune на true:

    git config fetch.prune true
    

    Теперь все git fetch операции будут действовать так, как вы использовали --prune.

Ваши ветви , принадлежащие вам, принадлежат вамсоздавать и удалять по желанию.Если вам больше не нужна ветка feature/short, удалите ее.

0 голосов
/ 14 февраля 2019

git branch -d <YOUR-BRANCH-NAME>

, если вы объединили все изменения из ветви

или

git branch -D <YOUR-BRANCH-NAME>

, если вы ввели изменения наветвь, которую вы хотите удалить.

-D действует как принудительное удаление

0 голосов
/ 14 февраля 2019

Похоже, они все еще существуют в части удаленного отслеживания вашего локального хранилища (если имя выглядит как refs/remote/origin/branchname).Вы можете удалить все ветви удаленного отслеживания, которые больше не существуют в удаленном хранилище, с помощью команды git fetch --prune.Эта команда не затронет ни одну из ваших местных ветвей.

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