В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.
Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.
Оператор
==
проверяет, являются ли две строки точно одним и тем же объектом.Метод
blockquote>.equals()
проверяет, имеют ли две строки одно и то же значение.
$ git push --delete <remote_name> <branch_name>
$ git branch -d <branch_name>
Обратите внимание, что в большинстве случаев удаленное имя origin
.
Чтобы удалить local используют одно из следующих значений:
$ git branch -d branch_name
$ git branch -D branch_name
Примечание. Параметр -d
является псевдонимом для --delete
, который удаляет ветвь только в том случае, если она уже полностью объединена в его восходящей ветке. Вы также можете использовать -D
, который является псевдонимом для --delete --force
, который удаляет ветвь «независимо от ее объединенного состояния». [Источник: man git-branch
]
Начиная с Git v1.7.0 , вы можете удалить remote с использованием
$ git push <remote_name> --delete <branch_name>
, который может быть легче запомнить, чем
$ git push <remote_name> :<branch_name>
, который был добавлен в Git v1.5.0 "для удаления удаленной ветви или тега."
Начиная с Git v2.8.0 вы также можете использовать git push
с опцией -d
в качестве псевдонима для --delete
.
Поэтому версия Git, которую вы установили, будет определять, нужно ли вам использовать более простой или сложный синтаксис.
Из главы 3 из Pro Git Скотта Чакона:
Удаление удаленных филиалов
Предположим, вы «сделайте это с удаленной веткой - скажем, вы и ваши сотрудники закончили с функцией и объединили ее в ведущую ветвь вашего пульта (или какую бы ветвь ваша стабильная кодовая строка не была). Вы можете удалить удаленную ветку, используя довольно тупой синтаксис
git push [remotename] :[branch]
. Если вы хотите удалить ветку serverfix с сервера, вы запускаете следующее:$ git push origin :serverfix To git@github.com:schacon/simplegit.git - [deleted] serverfix
Boom. На вашем сервере больше нет ветки. Вы можете захотеть получить эту страницу, потому что вам понадобится эта команда, и вы, вероятно, забудете синтаксис. Способ запомнить эту команду - это вспомнить синтаксис
blockquote>git push [remotename] [localbranch]:[remotebranch]
, который мы перешли немного раньше. Если вы оставите часть[localbranch]
, тогда вы в основном говорите: «Не принимайте на моей стороне и делайте это[remotebranch]
».Я выпустил
git push origin :bugfix
, и он работал красиво. Скотт Чакон был прав - я захочу собачьей ушной этой страницы (или фактически уха собаки, ответив на это в Stack & nbsp; Overflow).Затем вы должны выполнить это на других машинах
git fetch --all --prune
для распространения изменений.
Для удаления Locally - (Normal),
git branch -d my_branch
Если ваша ветка в процессе переполнения / слияния и это не было сделано правильно, вы получите сообщение об ошибке Rebase/Merge in progress
, поэтому в этом случае, вы не сможете удалить свою ветку.
Таким образом, либо вам нужно решить проблему пересоединения или слияния, иначе вы можете сделать принудительное удаление, используя
git branch -D my_branch
Чтобы удалить в Remote :
git push --delete origin my_branch
может использовать то же самое,
git push origin :my_branch # easy to remember both will do the same.
Графическое представление,
С января 2013 года GitHub включил кнопку «Отключить» рядом с каждой веткой на странице «Ветки».
Соответствующая запись в блоге: Создание и удаление ветвей
Это не сработает, если у вас есть тег с тем же именем, что и ветка на пульте дистанционного управления:
$ git push origin :branch-or-tag-name
error: dst refspec branch-or-tag-name matches more than one.
error: failed to push some refs to 'git@github.com:SomeName/some-repo.git'
В этом случае вам нужно указать, что вы хотите удалить ветвь, а не тег:
git push origin :refs/heads/branch-or-tag-name
Аналогичным образом, чтобы удалить тег вместо ветки, вы должны использовать:
git push origin :refs/tags/branch-or-tag-name
git push origin --delete branchName
легче запомнить, чем
git push origin :branchName
Многие другие ответы приведут к ошибкам / предупреждениям. Этот подход является относительно безумным, хотя вам все еще может понадобиться git branch -D branch_to_delete
, если он не полностью слит с some_other_branch
, например.
git checkout some_other_branch
git push origin :branch_to_delete
git branch -d branch_to_delete
Удаленная обрезка не нужна, если вы удалили удаленную ветвь. Он используется только для получения самых современных пультов, доступных на репо, которое вы отслеживаете. Я заметил, что git fetch
добавит пульты, а не удалит их. Вот пример того, когда git remote prune origin
действительно что-то предпримет:
Пользователь A выполняет описанные выше шаги. Пользователь B будет запускать следующие команды, чтобы увидеть самые современные удаленные ветви
git fetch
git remote prune origin
git branch -r
Мне не понравился поиск в Google, поэтому я применил аналогичный подход к тому, что ранее crizCraig отправил .
В мой профиль Bash добавлено следующее:
function gitdelete(){
git push origin --delete $1
git branch -D $1
}
Тогда каждый раз, когда я закончил с ветвью (например, слияние на master
), я запускаю в моем терминале следующее:
gitdelete my-branch-name
... который затем удаляет my-branch-name
из origin
как локально.
--delete "$@"
и -D "$@"
вместо $1
будут обрабатывать его для нескольких ветвей.
– kunl
27 June 2016 в 13:15
git branch -d
(с нижним регистром «d»), чтобы убедиться, что изменения были объединены, а затем нажмите, если успешно (поставьте &&
между командами)
– bryn
19 July 2016 в 14:17
Mashup всех остальных ответов. Требуется Ruby 1.9.3+, проверенный только на OS X.
Вызовите этот файл git-remove
, сделайте его исполняемым и поместите его в свой путь. Затем используйте, например, git remove temp
.
#!/usr/bin/env ruby
require 'io/console'
if __FILE__ == $0
branch_name = ARGV[0] if (ARGV[0])
print "Press Y to force delete local and remote branch #{branch_name}..."
response = STDIN.getch
if ['Y', 'y', 'yes'].include?(response)
puts "\nContinuing."
`git branch -D #{branch_name}`
`git branch -D -r origin/#{branch_name}`
`git push origin --delete #{branch_name}`
else
puts "\nQuitting."
end
end
Чтобы удалить вашу ветку локально и удаленно
git checkout master
git push origin --delete <branch-name>
git branch --delete <branch-name>
Теперь вы можете сделать это с помощью приложения GitHub Desktop .
После запуска приложения
git branch -D <name-of-branch>
git branch -D -r origin/<name-of-branch>
git push origin :<name-of-branch>
-D
заставляет i> удалить. Всегда лучше использовать -d
, что будет напоминать, если вам нужно сделать что-то опасное.
– Jonathon Reinhart
10 January 2015 в 02:08
Удалить удаленную ветвь
git push origin :<branchname>
Удалить локальную ветвь
git branch -D <branchname>
Удалить шаги локального перехода:
git push origin :<branchname>
уже подталкивает пустую ветвь к удаленному устройству (поэтому удаляет удаленную ветку)
– Michał Szajbe
9 June 2017 в 22:20
Другим подходом является
git push --prune origin
ПРЕДУПРЕЖДЕНИЕ: Это приведет к удалению всех удаленных ветвей, которые не существуют локально. Или более подробно g3]
git push --mirror
эффективно сделает удаленный репозиторий похожим на локальную копию репозитория (локальные главы, пульты и теги зеркалируются на удаленном компьютере).
для удаления удаленной ветви:
git push origin --delete <your_branch>
для удаления локальной ветви, у вас есть три способа:
1: git branch -D <branch_name>
2: git branch --delete --force <branch_name> //same as -D
3: git branch --delete <branch_name> //error on unmerge
Объясните: ОК, просто объясните, что здесь происходит!
Просто сделайте git push origin --delete
, чтобы удалить удаленную ветвь только, добавьте имя ветки в конец, и это удалит и нажмет на нее удаленный в то же время ...
Кроме того, git branch -D
, которые просто удаляют локальную ветвь ТОЛЬКО! ...
-D
означает --delete --force
, который удалит ветвь даже не слита (принудительное удаление), но вы также можете использовать -d
, что означает --delete
, которые выдают ошибку, соответствующую статусу слияния ветвей ...
Я также создаю изображение ниже, чтобы показать шаги:
git branch -a
отобразит локальные и удаленные ветки. Это поможет вам ввести диаграмму.
– LoranceChen
27 July 2017 в 03:01
Перед выполнением
git branch --delete <branch>
убедитесь, что вы сначала определили, что такое EXACT-имя удаленной ветви, выполнив:
git ls-remote
Это скажет вам, что вводить ТОЧНО для значения <branch>
. (branch
чувствителен к регистру!) [/ g2]
git push
удаляет локальную ветвь и i> удаленной ветви.
– Annika Backstrom
21 May 2013 в 14:51
git remote prune
является несколько устаревшим способом удаления устаревших ветвей удаленного отслеживания, более новый способ сделать это - использовать git fetch --prune
или git fetch -p
.
– user
11 June 2014 в 17:30
git push origin --delete $1
в файл на вашем пути с именем git-shoot
и git shoot branchname
.
– mahemoff
14 October 2015 в 07:09
git branch -d <local_branch>
или git branch -D <local_branch>
для удаления силы
– Amit Dash
14 February 2018 в 05:23
Удалить локально:
Чтобы удалить локальную ветвь, вы можете использовать:
git branch -d branch_name
Чтобы удалить ветвь принудительно, используйте -D
вместо -d
.
git branch -D branch_name
Удалить удаленно:
Есть два варианта:
git push origin :branchname
git push origin --delete branchname
Я бы предложил вам использовать второй способ, поскольку он более интуитивно понятен.
Ответ Мэтью велик для удаления ветвей remote , и я также благодарен за объяснение, но для того, чтобы сделать простое различие между двумя командами:
Чтобы удалить local ветвь с вашего устройства:
git branch -d {the_local_branch}
(вместо того, чтобы принудительно удалить ветвь, не проверяя слитый статус, используйте -D
)
Чтобы удалить удаленную ветвь с сервера:
git push origin --delete {the_remote_branch}
Ссылка: https://makandracards.com/makandra/621-git-delete-a-branch- локальный или удаленный-
-D
force удаляет, -d
дает вам предупреждение, если оно еще не слито.
– TankorSmash
6 November 2014 в 20:04
'git branch -d your_branch
, вы будете ошибочно, как error: The branch 'your_branch' is not fully merged. If you are sure you want to delete it, run 'git branch -D your_branch'.
– geeks
31 October 2015 в 13:59
git remote prune <name>
(например, git remote prune origin
), чтобы локально удалять старые ветви, которые больше не существуют на пульте дистанционного управления.
– code_dredd
18 April 2016 в 23:07
Если вы хотите выполнить оба этих действия с помощью одной команды, вы можете сделать для нее псевдоним, добавив ниже к вашему ~/.gitconfig
:
[alias]
rmbranch = "!f(){ git branch -d ${1} && git push origin --delete ${1}; };f"
. Кроме того, вы можете добавить это к ваша глобальная конфигурация из командной строки с помощью
git config --global alias.rmbranch \
'!f(){ git branch -d ${1} && git push origin --delete ${1}; };f'
ПРИМЕЧАНИЕ. Если вы используете -d
(нижний регистр d), ветвь будет удалена только в том случае, если она была объединена. Чтобы принудительно выполнить удаление, вам нужно будет использовать -D
(в верхнем регистре D).
&&
на ;
, так что даже если первая команда завершится неудачно, вторая будет выполняться (иногда только локальная или только удаленная существует).
– user1021726
16 December 2014 в 09:55
Предположим, что наша работа над веткой «контакт-форма» выполнена, и мы уже интегрировали ее в «master». Поскольку это нам больше не нужно, мы можем удалить его (локально):
blockquote>$ git branch -d contact-form
И для удаления удаленной ветви:
git push origin --delete contact-form
Если вы хотите получить более подробные объяснения следующих команд, см. длинные ответы в следующем разделе.
Удаление удаленной ветви:
git push origin --delete <branch> # Git version 1.7.0 or newer
git push origin :<branch> # Git versions older than 1.7.0
Удаление локальной ветви:
git branch --delete <branch>
git branch -d <branch> # Shorter version
git branch -D <branch> # Force delete un-merged branches
Удаление локальной ветви удаленного слежения:
git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter
git fetch <remote> --prune # Delete multiple obsolete tracking branches
git fetch <remote> -p # Shorter
Когда вы имеете дело с удалением ветвей как локально, так и удаленно, имейте в виду, что задействованы 3 разных ветви:
X
. X
. origin/X
, которая отслеживает удаленное отделение X
. [/g12]
Исходный плакат использовал
git branch -rd origin/bugfix
, который удалил только локальную ветвь удаленного отслеживания origin/bugfix
, а не фактическую удаленную ветвь bugfix
на origin
.
[/g13]
Чтобы удалить эту реальную удаленную ветвь, вам необходимо
git push origin --delete bugfix
[/g14]
В следующих разделах описаны дополнительные сведения, которые следует учитывать при удалении ветвей удаленного и удаленного отслеживания.
Обратите внимание, что удаление удаленной ветви X
из командной строки с помощью git push
также удалит локальную ветвь удаленного отслеживания origin/X
, поэтому нет необходимости обрезать устаревшую ветвь удаленного отслеживания с помощью git fetch --prune
или git fetch -p
, хотя она не будет "
Вы можете проверить, что ветвь удаленного отслеживания origin/X
также была удалена, выполнив следующее:
# View just remote-tracking branches
git branch --remotes
git branch -r
# View both strictly local as well as remote-tracking branches
git branch --all
git branch -a
Если вы не удалили удаленную ветвь X
из командной строки (например, выше), то ваше местное репо все равно будет содержать (теперь устаревшую) ветвь удаленного отслеживания origin/X
. Это может произойти, если вы удалили удаленную ветку непосредственно через веб-интерфейс GitHub, например.
Типичный способ удаления этих устаревших ветвей удаленного отслеживания (с версии Git 1.6.6) - просто запустить git fetch
с --prune
или короче -p
. Обратите внимание, что это удаляет все устаревшие локальные ветви удаленного отслеживания для любых удаленных филиалов, которые больше не существуют на удаленном компьютере:
git fetch origin --prune
git fetch origin -p # Shorter
Вот соответствующая цитата из примечаний к выпуску 1.6.6 (выделено мной):
«git fetch» learn
blockquote>--all
и--multiple
опции, чтобы запустить выборку из многих репозиториев и--prune
для удаления удаленных ветвей отслеживания, которые пошли несвежий. Они делают «git remote update» и «git remote prune» менее необходимым (нет плана удаления «удаленного обновления» или «удаленной обрезки», хотя).Альтернатива вышеописанному автоматическому обрезка для устаревших ветвей удаленного отслеживания
В качестве альтернативы вместо обрезания устаревших локальных ветвей удаленного отслеживания через
git fetch -p
, вы можете избежать дополнительной работы в сети , просто удалив вручную ветвь (ы) с флагами--remote
или-r
:git branch --delete --remotes origin/X git branch -dr origin/X # Shorter
См. также
X
и origin/X
закладки в локальном клоне (2 ветки), а затем на пульте есть X
(создание 3 ветвей).
– user
23 February 2016 в 08:33
Одна команда liner удаляет как локальные, так и удаленные :
D=branch-name; git branch -D $D; git push origin :$D
или добавляет псевдоним ниже к вашему ~ /. gitconfig ; использование: git kill branch-name
[alias]
kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f"
git branch -D
внимательно в скрипте, поскольку он принудительно удаляет ветвь без проверки ее объединения. Используйте -d
, чтобы быть в безопасности.
– caesarsol
13 March 2017 в 15:05
git push origin :bugfix # Deletes remote branch
git branch -d bugfix # Must delete local branch manually
Если вы уверены, что хотите его удалить, запустите
git branch -D bugfix
Теперь, чтобы очистить удаленные удаленные ветви, запустите
git remote prune origin
Это просто: просто запустите следующую команду:
Чтобы удалить ветвь Git как локально, так и удаленно, сначала удалите локальную ветку с помощью команды:
git branch -d example
(здесь example
- имя ветки)
И после этого удалите удаленную ветку с помощью команды:
git push origin :example
Просто скажите:
git branch -d <branch-name>
git push origin :<branch-name>
git push
удаляет локальную ветвь и i> удаленной ветви.
– Annika Backstrom
21 May 2013 в 14:51
git remote prune
является несколько устаревшим способом удаления устаревших ветвей удаленного отслеживания, более новый способ сделать это - использовать git fetch --prune
или git fetch -p
.
– user
11 June 2014 в 17:30
git push origin --delete $1
в файл на вашем пути с именем git-shoot
и git shoot branchname
.
– mahemoff
14 October 2015 в 07:09
git branch -d <local_branch>
или git branch -D <local_branch>
для удаления силы
– Amit Dash
14 February 2018 в 05:23
Если вы хотите удалить ветвь, сначала выйдите в ветвь, отличную от ветви, которую нужно удалить.
git checkout other_than_branch_to_be_deleted
Удаление локальной ветви:
git branch -D branch_to_be_deleted
Удаление удаленная ветвь:
git push origin --delete branch_to_be_deleted
git push origin local_branch:remote_branch
, синтаксис для удаления ветви сgit push origin :remote_branch
является довольно симпатичным. Перед:
есть пустота, – Marc-André Lafortune 11 May 2012 в 05:05git fetch --all --prune
на других машинах после удаления удаленной ветви на сервере. ||| После удаления локальной ветви с помощьюgit branch -d
и удаления удаленной ветви с помощьюgit push origin --delete
другие машины могут все еще иметь «устаревшие ветви отслеживания», (чтобы увидеть, что они делаютgit branch -a
). Чтобы избавиться от них, сделайтеgit fetch --all --prune
. – Trevor Boyd Smith 27 May 2015 в 16:51git branch -a
для просмотра всех ветвей, вы также можете использоватьgit branch -r
для просмотра только удаленных филиалов. см. такжеgit remote show origin
- источник: gitready.com/intermediate/2009/02/13/list-remote-branches.html – Sandra 9 September 2015 в 09:53git branch -D Branch_Name
, чтобы избавиться от локальной ветви – Kolob Canyon 10 March 2016 в 02:32