Как удалить ветку Git локально и удаленно?

Файловый объект является буфером . Когда вы читаете из буфера, потребляемая вами часть (позиция чтения сдвигается вперед). Когда вы читаете весь файл, позиция чтения находится в EOF, поэтому он ничего не возвращает, потому что читать нечего.

Если вам по какой-то причине необходимо сбросить позицию чтения на файловый объект, вы можете сделать:

f.seek(0)
15808
задан cs95 15 June 2019 в 04:46
поделиться

2 ответа

Краткое содержание

$ git push -d <remote_name> <branch_name>
$ git branch -d <branch_name>

Обратите внимание, что в большинстве случаев удаленное имя происхождение . В таком случае вам придется использовать такую ​​команду.

$ git push -d origin <branch_name>

Удалить локальную ветвь

Чтобы удалить локальную ветвь , используйте одно из следующих действий:

$ git branch -d branch_name
$ git branch -D branch_name

Примечание: Параметр -d является псевдонимом для - удаление , которое удаляет ветвь только в том случае, если она уже была полностью объединена с восходящей ветвью. Вы также можете использовать -D , который является псевдонимом для - delete --force , который удаляет ветку «независимо от ее объединенного статуса». [Источник: man git-branch ]

Удалить удаленную ветку [Обновлено 8 сентября 2017 г.]

Начиная с Git v1.7.0 , вы можете удалить удаленная ветвь с использованием

$ git push <remote_name> --delete <branch_name>

, которую легче запомнить, чем

$ git push <remote_name> :<branch_name>

, который был добавлен в Git v1.5.0 «для удаления удаленной ветки или тега».

Запуск в Git v2.8.0 вы также можете использовать git push с параметром -d в качестве псевдонима для - удалить .

Таким образом, версия Git, которую вы установили, будет определять, нужно ли вам использовать более простой или более сложный синтаксис.

Удалить удаленную ветвь [Исходный ответ от 5 января 2010 г.]

Из главы 3 Pro Git Скотта Чакона:

Удаление удаленных ветвей

Предположим, вы закончили с удаленная ветка - скажем, вы и ваши соавторы закончили работу над функцией и объединили ее в главную ветку удаленного компьютера (или в любую другую ветвь, в которой находится ваша стабильная строка кода). Вы можете удалить удаленную ветку, используя довольно тупой синтаксис git push [remotename]: [branch] . Если вы хотите удалить ветку server-fix с сервера, выполните следующее:

 $ git push origin: serverfix
Кому (скрыто)
  - [удалено] исправление сервера
 

Бум. На вашем сервере больше нет веток. Возможно, вы захотите выслушать эту страницу, потому что вам понадобится эта команда, и вы, вероятно, забудете синтаксис. Чтобы запомнить эту команду, можно вызвать синтаксис git push [remotename] [localbranch]: [remotebranch] , который мы рассмотрели немного ранее. Если вы опустите часть [localbranch] , то вы в основном говорите: «Не принимайте ничего на моей стороне и сделайте это [remotebranch] ».

Я выпустил git push origin: bugfix , и это прекрасно работало. Скотт Чакон был прав - я хочу собачье ухо эту страницу (или фактически собачье ухо, отвечая на этот вопрос на Stack Overflow).

Затем вы должны выполнить это на других машинах

# Fetch changes from all remotes and locally delete 
# remote deleted branches/tags etc
# --prune will do the job :-;
git fetch --all --prune

, чтобы распространить изменения.

20592
ответ дан 22 November 2019 в 19:37
поделиться

Самый гибкий путь состоит в том, чтобы использовать пользовательская команда Git. Например, можно создать следующий сценарий Python где-нибудь в Вашем $PATH под именем git-rmbranch:

#!/usr/bin/env python3

import argparse
import subprocess

parser = argparse.ArgumentParser(
    description='Delete a Git branch locally and remotely')
parser.add_argument('branch_name', help='The branch name')
parser.add_argument('-f', '--force', action='store_true',
                    help='Force deletion of not fully merged branches')
args = parser.parse_args()    
opt = '-D' if args.force else '-d'

try:
    subprocess.check_call(['git', 'branch', opt, args.branch_name])
    subprocess.check_call(['git', 'push', 'origin', '--delete', args.branch_name])
except subprocess.CalledProcessError:
    pass

Тогда использование это в Вашем репозитории как это:

git rmbranch <branch_name>

или с -f для принуждения удаления локальных ответвлений, которые не полностью объединяются:

git rmbranch -f <branch_name>
2
ответ дан 22 November 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: