ローカルとリモートの両方でブランチを削除したいです。
$ git branch -d remotes/Origin/bugfix
error: branch 'remotes/Origin/bugfix' not found.
$ git branch -d Origin/bugfix
error: branch 'Origin/bugfix' not found.
$ git branch -rd Origin/bugfix
Deleted remote branch Origin/bugfix (was 2a14ef7).
$ git Push
Everything up-to-date
$ git pull
From github.com:gituser/gitproject
* [new branch] bugfix -> Origin/bugfix
Already up-to-date.
ローカルとリモートの両方でremotes/Origin/bugfix
ブランチを正常に削除するにはどうしたらよいでしょうか。
$ 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のバージョンによって、もっと簡単な構文を使う必要があるか、それとも難しい構文を使う必要があるかが決まります。
Scott Chacon作の Pro Git の第3章から:
リモートブランチの削除
リモートブランチを使用していると仮定します。たとえば、あなたとあなたの共同制作者は機能を完成させ、それをリモートのマスターブランチ(または安定版のコードラインが存在するブランチ)にマージしました。曖昧な構文
git Push [remotename] :[branch]
を使ってリモートブランチを削除できます。サーバーからサーバー修正ブランチを削除したい場合は、次のように実行します。$ git Push Origin :serverfix To [email protected]:schacon/simplegit.git - [deleted] serverfix
ブーム。サーバーにこれ以上ブランチはありません。あなたはこのコマンドを必要とするでしょう、そしてあなたはたぶん構文を忘れるかもしれないので、あなたはこのページをわざわざ書きたくなるかもしれません。このコマンドを思い出すための方法は、少し前に行った
git Push [remotename] [localbranch]:[remotebranch]
構文を思い出すことです。[localbranch]
の部分を省略した場合、基本的には「私の側では何もしないで[remotebranch]
にする」と言っています。
私はgit Push Origin :bugfix
を発行しました、そしてそれは美しく働きました。 Scott Chaconは正しかった - 私は 犬の耳 そのページ(またはStack Overflowでこれに答えることによって事実上犬の耳)をしたいと思うだろう。
それからあなたは他のマシンでこれを実行するべきです
git fetch --all --Prune
変更を伝播する.
Matthewの答えはremoteブランチを削除するのに最適です、そして私も説明を感謝します、しかし2つのコマンドの間の簡単な区別をするために:
あなたのマシンからローカルブランチを削除するには:
git branch -d {the_local_branch}
(マージされたステータスをチェックせずにブランチを強制的に削除するには、代わりに-D
を使用してください)
サーバーからリモートブランチを削除するには、次の手順を実行します。
git Push Origin --delete {the_remote_branch}
参照: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote
次のコマンドの詳細な説明が必要な場合は、次のセクションで長い答えを見てください。
リモートブランチを削除する
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
。X
を追跡するローカルリモート追跡ブランチOrigin/X
。オリジナルのポスターを使用
git branch -rd Origin/bugfix
これは彼のlocalリモートトラッキングブランチOrigin/bugfix
のみを削除し、bugfix
上の実際のリモートブランチOrigin
は削除しませんでした。
その実際のリモートブランチを削除するには、次のものが必要です。
git Push Origin --delete bugfix
次のセクションでは、リモートブランチとリモートトラッキングブランチを削除するときに考慮する必要があるその他の詳細について説明します。
git Push
を使用してコマンドラインからリモートブランチX
を削除すると、ローカルのリモートトラッキングブランチ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のWebインターフェースから直接リモートブランチを削除した場合などに起こります。
(Gitバージョン1.6.6以降の)これらの時代遅れのリモートトラッキングブランチを削除する典型的な方法は、単にgit fetch
またはもっと短い--Prune
を付けて-p
を実行することです。 remoteにもう存在しないリモートブランチのために使われなくなったローカルのリモートトラッキングブランチをすべて削除することに注意してください:
git fetch Origin --Prune
git fetch Origin -p # Shorter
これは 1.6.6リリースノート からの関連する引用です。
"git fetch"は多くのリポジトリからfetchを実行するために
--all
と--multiple
optionsを学習し、古くなったリモートトラッキングブランチを削除するために--Prune
オプションを学習しました。これらにより、 "git remote update"と "git remote Prune"の必要性が少なくなります(ただし、 "remote update"も "remote Prune"も削除する予定はありません)。
あるいは、git fetch -p
、を使って古いローカルのリモートトラッキングブランチを削除する代わりに、--remote
または-r
フラグを使って手動でブランチを削除することで、余分なネットワーク操作を行わないようにすることができます。
git branch --delete --remotes Origin/X
git branch -dr Origin/X # Shorter
リモートブランチを削除する場合:
git Push Origin --delete <your_branch>
ローカルブランチを削除するには、3つの方法があります:
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
説明:OK、ここで何が起こっているのか説明してください!
単にgit Push Origin --delete
を実行して、リモートブランチのみを削除します、最後にブランチの名前を追加すると、削除され、同時にリモートにプッシュします...
また、git branch -D
は、単にローカルブランチを削除しますONLY!...
-D
は--delete --force
を表し、マージされていない場合でもブランチを削除します(強制削除)が、-d
を使用して--delete
を表すこともできます。
以下の画像も作成して、手順を示します。
以下を使ってリモートブランチを削除することもできます。
git Push --delete Origin serverfix
これは同じことをします
git Push Origin :serverfix
しかし覚えておくほうが簡単かもしれません。
ブランチを削除したい場合は、まず削除するブランチ以外のブランチにチェックアウトしてください。
git checkout other_than_branch_to_be_deleted
ローカルブランチを削除する:
git branch -D branch_to_be_deleted
リモートブランチを削除する
git Push Origin --delete branch_to_be_deleted
ヒント:を使ってブランチを削除するとき
git branch -d <branchname> # deletes local branch
または
git Push Origin :<branchname> # deletes remote branch
参照だけが削除されます。ブランチは実際にはリモートから削除されていますが、その参照はチームメンバーのローカルリポジトリにまだ存在しています。これは、他のチームメンバーにとってgit branch -a
を実行したときに削除されたブランチがまだ見えることを意味します。
これを解決するために、あなたのチームメンバーは次のコマンドで削除されたブランチを削除することができます。
git remote Prune <repository>
これは通常git remote Prune Origin
です。
git branch -D <name-of-branch>
git branch -D -r Origin/<name-of-branch>
git Push Origin :<name-of-branch>
これは簡単です。次のコマンドを実行するだけです。
ローカルとリモートの両方でGitブランチを削除するには、まず次のコマンドを使用してローカルブランチを削除します。
git branch -d example
(ここでexample
はブランチ名です)
その後、次のコマンドを使用してリモートブランチを削除します。
git Push Origin :example
別のアプローチは: -
git Push --Prune Origin
警告: これにより、ローカルに存在しないすべてのリモートブランチが削除されます。 またはより包括的に
git Push --mirror
リモートリポジトリをリポジトリのローカルコピーのように効果的に表示します(ローカルヘッド、リモート、タグはリモートでミラーリングされます)。
私は Bash の設定で以下を使います。
alias git-shoot="git Push Origin --delete"
それからあなたは呼び出すことができます:
git-shoot branchname
2013年1月以降、GitHubには Delete branch [ブランチ]ページの各ブランチの横にあるボタンをクリックします。
関連するブログ記事: ブランチの作成と削除
これら2つのステップを1つのコマンドで実行したい場合は、以下を~/.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'
_ note _ :-d
(小文字のd)を使用している場合、分岐はマージされた場合にのみ削除されます。強制的に削除するには、-D
(大文字のD)を使用する必要があります。
ローカルで削除します:
ローカルブランチを削除するには、次のようにします。
git branch -d <branch_name>
ブランチを強制的に削除するには、-D
の代わりに-d
を使用します。
git branch -D <branch_name>
リモートで削除します:
2つの選択肢があります。
git Push Origin :branchname
git Push Origin --delete branchname
直感的にわかるように、2番目の方法を使用することをお勧めします。
ブランチをローカルおよびリモートで削除する
マスターブランチへのチェックアウト - git checkout master
リモートブランチを削除します - git Push Origin --delete <branch-name>
ローカルブランチを削除します - git branch --delete <branch-name>
git remote Prune Origin
を使ってこれを行うこともできます。
$ git remote Prune Origin
Pruning Origin
URL: [email protected]/yourrepo.git
* [pruned] Origin/some-branchs
リモート追跡ブランチをgit branch -r
リストから整理して削除します。
他の答えに加えて、私はしばしば git_remote_branch というツールを使います。これは追加インストールですが、リモートブランチと対話するための便利な方法です。この場合、削除するには:
grb delete branch
私はpublish
とtrack
コマンドも頻繁に使っています
ワンライナー command delete ローカルとリモートの両方 :
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"
ブランチ "contact-form"に関する作業が完了し、それを既に "master"に統合したと仮定しましょう。もう必要ないので、(ローカルで)削除できます。
$ git branch -d contact-form
そしてリモートブランチを削除するために:
git Push Origin --delete contact-form
リモートブランチを削除
git Push Origin :<branchname>
ローカルブランチを削除
git branch -D <branchname>
ローカルブランチの手順を削除します。
簡単に言うと:
git branch -d <branch-name>
git Push Origin :<branch-name>
GitHub Desktop アプリを使用して、これを実行できます。
アプリを起動した後
git Push Origin --delete <branch Name>
より覚えやすい
git Push Origin :branchName
ローカルで削除するには - (標準)、
git branch -d my_branch
あなたのブランチがリベース/マージの進捗状況でそれが正しく行われなかった場合、エラーRebase/Merge in progress
が表示されるので、その場合はブランチを削除できません。
つまり、リベースやマージを解決する必要がある場合、そうでなければ強制的にDeleteを実行できます。
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.
グラフ表示、
リモートのブランチと同じ名前のタグがある場合、これは機能しません。
$ 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 '[email protected]:SomeName/some-repo.git'
その場合は、タグではなくブランチを削除するように指定する必要があります。
git Push Origin :refs/heads/branch-or-tag-name
同様に、ブランチではなくタグを削除するには、次のようにします。
git Push Origin :refs/tags/branch-or-tag-name
他の答えの多くはエラー/警告につながります。たとえば、完全に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
私はこの答えにグーグルでうんざりしたので、 crizCraigが投稿した答え に同様のアプローチをとりました。
私のBashプロファイルに以下を追加しました:
function gitdelete(){
git Push Origin --delete $1
git branch -D $1
}
それから(例えばmaster
にマージされた)ブランチを使い終えるたびに、私は自分の端末で以下を実行します。
gitdelete my-branch-name
...これはその後、Origin
からmy-branch-name
をローカルでも削除します。
実行前
git branch --delete <branch>
次のコマンドを実行して、最初にリモートブランチの正確な名前を確認してください。
git ls-remote
これは<branch>
の値に正確に何を入力すればよいかを教えてくれます。 (branch
は大文字と小文字を区別します!)
git Push Origin :bugfix # Deletes remote branch
git branch -d bugfix # Must delete local branch manually
本当に削除したい場合は、実行してください
git branch -D bugfix
削除されたリモートブランチをクリーンアップするために実行します
git remote Prune Origin
他のすべての答えのマッシュアップ。 OS XではRuby 1.9.3+
が必要、テスト済みは only 。
このファイルを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
.gitconfig
ファイルに次のエイリアスを追加しました。これにより、ブランチ名を指定してもしなくてもブランチを削除できます。引数が渡されない場合、ブランチ名は現在のブランチにデフォルト設定されます。
[alias]
branch-name = rev-parse --abbrev-ref HEAD
rm-remote-branch = !"f() { branch=${1-$(git branch-name)}; git Push Origin :$branch; }; f"
rm-local-branch = !"f() { branch=${1-$(git branch-name)}; git checkout master; git branch -d $branch; }; f"
rm-branch-fully = !"f() { branch=${1-$(git branch-name)}; git rm-local-branch $branch; git rm-remote-branch $branch; }; f"
リモートブランチを削除するためのコマンドラインの代替オプションはGitHubブランチページです。
例: https://github.com/angular/angular.js/branches
GitHubリポジトリのCode
-> Branches
ページにあります。
私は通常自分でコマンドラインを使いますが、これはGitHubページに詳細情報が表示されますブランチに関する最終更新日とユーザー、およびコミット数と後ろ。多数のブランチを扱うときに役立ちます。
私も同様の問題を抱えていました、そしてこれはうまくいくようです:これは地方支店を削除します。 git branch -d the_local_branch
これはリモートブランチgit Push Origin :the_remote_branch
を削除します
良い答えがありますが、あなたがたくさんの枝を持っている場合、それらを局所的にそして一つずつ一つずつ削除するのは面倒な作業でしょう。このスクリプトを使用してこの作業を自動化できます。
branch_not_delete=( "master" "develop" "our-branch-1" "our-branch-2")
for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master`; do
# delete prefix remotes/Origin/ from branch name
branch_name="$(awk '{gsub("remotes/Origin/", "");print}' <<< $branch)"
if ! [[ " ${branch_not_delete[*]} " == *" $branch_name "* ]]; then
# delete branch remotly and locally
git Push Origin :$branch_name
fi
done
GitBashを使用すると、次を実行できます。
git branch --delete <branch>
GitHubデスクトップアプリからブランチをチェックアウトしたら、Branchメニューストリップを使用してLocalブランチを削除できます:
GitHubデスクトップアプリを使用していないで、ローカルソース管理にVisual StudioのようなIDEを使用している場合、いくつかの簡単な手順を実行する必要があります。
次に、GitHubアカウントにオンラインでログインしたら、リポジトリに移動し、すべてのブランチタブをクリックします。そこから、削除したいブランチの名前の右側にある小さなゴミ箱アイコンをクリックするだけです。
*注意してください-ブランチが公開されていない場合、オンラインリポジトリから削除しようとする必要はありません。
.bash_aliasesファイルに次の便利な関数を作成しました。
git-delete-branch()
{
if [[ -n $1 ]]; then
git checkout master > /dev/null;
branch_name="$1";
echo "Deleting local $branch_name branch...";
git branch -D "$branch_name";
echo "Deleting remote $branch_name branch...";
git Push Origin --delete "$branch_name";
git remote Prune Origin;
echo "Your current branches are:";
git branch -a;
else
echo "Usage: git-delete-branch <branch_name>";
fi
}
端末を使用している最新の資料によると、次のように削除できます。
ローカルで削除:
git branch -D usermanagement
離れた場所で削除:
git Push --delete Origin usermanagement
とてもシンプル
リモートブランチを削除する
git Push -d Origin <branch-name>
OR
git Push Origin :<branch-name>
ローカルブランチを削除する
git branch -D <branch-name>