ローカルとリモートの両方でブランチを削除したい。 リモートブランチを削除しようとして失敗しました $ git branch -d remotes / origin / bugfix エラー:ブランチ 'remotes / origin / bugfix'が見つかりません。 $ git branch -d origin / bugfix エラー:ブランチ 'origin / bugfix'が見つかりません。 $ git branch -rd origin / bugfix リモートブランチのオリジン/バグ修正を削除しました(以前は2a14ef7でした)。 $ git push すべてが最新です $ git pull github.com:gituser/gitprojectから * [新しいブランチ]バグ修正-> origin / bugfix すでに最新です。 ローカルとリモートの両方でremotes / origin / bugfixブランチを正常に削除するにはどうすればよいですか?
2020-12-07 13:11:21
1 2 次 エグゼクティブサマリー $ git push -d$ git branch -d ほとんどの場合、リモート名はオリジンであることに注意してください。 このような場合は、そのようなコマンドを使用する必要があります。 $ git push -d origin ローカルブランチを削除する ローカルブランチを削除するには、次のいずれかを使用します。 $ git branch -d branch_name $ git branch -D branch_name 注:-dオプションは--deleteのエイリアスであり、上流のブランチで既に完全にマージされている場合にのみブランチを削除します。 --delete --forceのエイリアスである-Dを使用することもできます。これは、「マージされたステータスに関係なく」ブランチを削除します。 [ソース:man git-branch] また、現在の場合、git branch -dbranch_nameは失敗することに注意してください 削除するブランチで。メッセージはで始まります エラー:ブランチ 'branch_name'を削除できません。もしそうなら、最初のスイッチ 他のブランチへの例:git checkoutmaster。 リモートブランチの削除[2017年9月8日に更新] Git v1.7.0以降、を使用してリモートブランチを削除できます $ git push --delete 覚えやすいかもしれません $ git push : これはGitv1.5.0で「リモートブランチまたはタグを削除するために」追加されました。 Git v2.8.0以降では、-deleteのエイリアスとして-dオプションを指定したgitpushを使用することもできます。 したがって、インストールしたGitのバージョンによって、より簡単な構文を使用する必要があるか、より難しい構文を使用する必要があるかが決まります。 リモートブランチを削除する[2010年1月5日からの元の回答] ScottChaconによるProGitの第3章から: リモートブランチの削除 リモートブランチが終了したとします。たとえば、あなたと共同編集者が機能を完成させ、それをリモートのマスターブランチ(または安定したコードラインが含まれるブランチ)にマージしたとします。やや鈍い構文gitpush [remotename]:[branch]を使用して、リモートブランチを削除できます。サーバーからserver-fixブランチを削除する場合は、以下を実行します。 $ git push origin:serverfix git@github.com:schacon / simplegit.gitへ -[削除済み] serverfix ブーム。サーバーにブランチはもうありません。このコマンドが必要になり、構文を忘れてしまう可能性があるため、このページをドッグイアすることをお勧めします。このコマンドを覚えておく方法は、少し前に説明したgit push [remotename] [localbranch]:[remotebranch]構文を思い出すことです。 [localbranch]の部分を省略した場合、基本的には「私の側には何も取らず、[remotebranch]にする」ということです。 git push origin:bugfixを発行しましたが、うまく機能しました。スコットチャコンは正しかった—そのページを犬の耳にしたい(またはスタックオーバーフローでこれに答えることで事実上犬の耳にしたい)。 次に、これを他のマシンで実行する必要があります #すべてのリモートから変更を取得し、ローカルで削除する #リモートで削除されたブランチ/タグなど #-プルーンが仕事をします:-; git fetch --all --prune 変更を伝播します。 | マシューの答えは、リモートブランチを削除するのに最適です。説明にも感謝しますが、2つのコマンドを簡単に区別します。 マシンからローカルブランチを削除するには: git branch -d {the_local_branch}(代わりに-Dを使用して、マージされたステータスをチェックせずにブランチを強制的に削除します) サーバーからリモートブランチを削除するには: git push origin --delete {the_remote_branch} 参照:Git:ブランチを削除します(ローカルまたはリモート) | 短い答え 次のコマンドの詳細な説明が必要な場合は、次のセクションの長い回答を参照してください。 リモートブランチの削除 git push origin --delete #Gitバージョン1.7.0以降 git push origin -d #短いバージョン(Git 1.7.0以降) git push origin: #1.7.0より古いバージョンのGit ローカルブランチの削除 git branch --delete git branch -d #短いバージョン git branch -D #マージされていないブランチを強制的に削除します ローカルリモートトラッキングブランチの削除 git branch --delete --remotes / git branch -dr / #短い git fetch --prune#複数の廃止されたリモートトラッキングブランチを削除します git fetch -p#短い 長い答え:削除する3つの異なるブランチがあります! ローカルとリモートの両方でブランチを削除する場合は、次の3つの異なるブランチが関係していることに注意してください。 ローカルブランチX。 リモートオリジンブランチX。 リモートブランチXを追跡するローカルリモート追跡ブランチ起点/ X。 使用された元のポスター: git branch -rd origin / bugfix これは、ローカルのリモート追跡ブランチのオリジン/バグ修正のみを削除し、オリジンの実際のリモートブランチのバグ修正は削除しませんでした。 その実際のリモートブランチを削除するには、 git push origin--バグ修正を削除 さらなる詳細 次のセクションでは、リモートブランチとリモートトラッキングブランチを削除するときに考慮すべき追加の詳細について説明します。 リモートブランチを削除するためにプッシュすると、リモートトラッキングブランチも削除されます コマンドラインからリモートブランチXを削除することに注意してくださいgit pushを使用すると、ローカルのリモートトラッキングブランチorigin / Xも削除されるため、git fetch--pruneまたはgitfetch-pを使用して廃止されたリモートトラッキングブランチをプルーニングする必要はありません。しかし、とにかくやったとしても害はありません。 次のコマンドを実行すると、リモートトラッキングブランチのorigin / Xも削除されたことを確認できます。 #リモートトラッキングブランチのみを表示 gitブランチ-リモート gitブランチ-r #厳密にローカルとリモート追跡の両方のブランチを表示する gitブランチ--all gitブランチ-a 廃止されたローカルリモートトラッキングブランチオリジン/ Xのプルーニング (上記のように)コマンドラインからリモートブランチXを削除しなかった場合でも、ローカルリポジトリには(現在は廃止された)リモートトラッキングブランチorigin / Xが含まれています。これは、たとえば、GitHubのウェブインターフェースから直接リモートブランチを削除した場合に発生する可能性があります。 これらの廃止されたリモートトラッキングブランチを削除する一般的な方法(Gitバージョン1.6.6以降)は、-pruneまたは短い-pを指定してgitfetchを実行することです。これにより、リモートに存在しなくなったリモートブランチの廃止されたローカルリモートトラッキングブランチがすべて削除されることに注意してください。 git fetch origin --prune git fetch origin -p#短い 1.6.6リリースノートからの関連する引用は次のとおりです(私の強調): 「gitfetch」は、フェッチを実行するために--allおよび--multipleoptionsを学習しました 多くのリポジトリ、およびリモート追跡を削除する--pruneオプション 古くなった枝。これらは「gitremoteupdate」と「git リモートプルーン」の必要性が少ない(「リモートプルーン」を削除する予定はありません ただし、「更新」または「リモートプルーン」)。 廃止されたリモートトラッキングブランチの上記の自動プルーニングの代替 または、git fetch -pを使用して廃止されたローカルリモートトラッキングブランチをプルーニングする代わりに、-remoteまたは-rフラグを使用してブランチを手動で削除するだけで、余分なネットワーク操作を回避できます。 git branch --delete --remotes origin / X git branch -dr origin / X#短い 関連項目 git-branch(1)マニュアルページ。 git-fetch(1)マニュアルページ。 ProGit§3.5Gitブランチ-リモートブランチ。 | ブランチを削除する手順: リモートブランチを削除する場合: git push origin --delete ローカルブランチを削除するには、次の3つの方法があります。 1:git branch -D 2:git branch --delete --force #-Dと同じ 3:git branch --delete #マージ解除時のエラー 説明:OK、ここで何が起こっているのか説明してください! git push origin --deleteを実行してリモートブランチのみを削除し、最後にブランチの名前を追加すると、ブランチの削除とリモートへのプッシュが同時に行われます... また、git branch -Dは、ローカルブランチのみを削除するだけです!... -Dは--delete--forceを表し、マージされていなくてもブランチを削除します(force delete)が、-deleteを表す-dを使用して、ブランチのマージステータスごとにエラーをスローすることもできます。 また、手順を示すために以下の画像を作成します。 | 以下を使用して、リモートブランチを削除することもできます git push --delete origin serverfix これはと同じことをします git push origin:serverfix しかし、覚えやすいかもしれません。 | ヒント:を使用してブランチを削除する場合 git branch -d #ローカルブランチを削除します または git push origin: #リモートブランチを削除します 参照のみが削除されます。ブランチは実際にはリモートで削除されますが、ブランチへの参照はチームメンバーのローカルリポジトリに引き続き存在します。これは、他のチームメンバーがgitブランチ-aを実行しても、削除されたブランチが引き続き表示されることを意味します。 これを解決するために、チームメンバーは削除されたブランチを git remote prune <リポジトリ> これは通常、gitリモートプルーンオリジンです。 | ブランチを削除する場合は、最初に、削除するブランチ以外のブランチにチェックアウトします。 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 <ブランチの名前> git branch -D -r origin / git push origin:<ブランチの名前> | これは簡単です。次のコマンドを実行するだけです。 ローカルとリモートの両方でGitブランチを削除するには、最初に次のコマンドを使用してローカルブランチを削除します。 git branch-dの例 (ここに例はブランチ名です。) その後、次のコマンドを使用してリモートブランチを削除します。 git push origin:example | それは非常に簡単です: リモートブランチを削除するには git push -d origin <ブランチ名> または git push origin:<ブランチ名> ローカルブランチを強制的に削除するには git branch -D <ブランチ名> | 別のアプローチは次のとおりです。 git push --prune origin 警告:これにより、ローカルに存在しないすべてのリモートブランチが削除されます。またはより包括的に、 git push --mirror リモートリポジトリをリポジトリのローカルコピーのように効果的に見せます(ローカルヘッド、リモート、およびタグはリモートにミラーリングされます)。 | 私はBash設定で以下を使用します: エイリアスgit-shoot = "git pushorigin --delete " 次に、電話をかけることができます: git-shootブランチ名 | ローカルで削除: ローカルブランチを削除するには、次を使用できます。 git branch -d ブランチを強制的に削除するには、-dの代わりに-Dを使用します。 git branch -D リモートで削除: 2つのオプションがあります: git push origin:branchname git push origin --deletebranchname より直感的であるため、2番目の方法を使用することをお勧めします。 | 2013年1月以降、GitHubの[ブランチ]ページの各ブランチの横に[ブランチの削除]ボタンが追加されました。 関連するブログ投稿:ブランチの作成と削除 | これらの両方の手順を1つのコマンドで完了したい場合は、〜/ .gitconfigに以下を追加してエイリアスを作成できます。 [エイリアス] 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)を使用する必要があります。 | ローカルおよびリモートでブランチを削除するには マスターブランチへのチェックアウト-gitcheckout master リモートブランチを削除します--gitpush origin --delete ローカルブランチを削除します--gitbranch --delete | git remote pruneoriginを使用してこれを行うこともできます $ gitリモートプルーンオリジン 剪定の起源 URL:git@example.com/yourrepo.git * [剪定]起源/いくつかの枝 git branch-rリストからリモート追跡ブランチを削除して削除します。 | 他の答えに加えて、私はよくgit_remote_branchツールを使用します。これは追加のインストールですが、リモートブランチと対話するための便利な方法を提供します。この場合、削除するには: grb削除ブランチ また、publishコマンドとtrackコマンドも頻繁に使用していることがわかりました。 | ローカルとリモートの両方を削除するワンライナーコマンド: D =支店名; gitブランチ-D $ D; git push origin:$ D または、以下のエイリアスを〜/ .gitconfigに追加します。使用法:git kill branch-name [エイリアス] 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:<ブランチ名> ローカルブランチを削除する git branch -D <ブランチ名> ローカルブランチステップを削除します。 別の支店へのチェックアウト ローカルブランチを削除する | 簡単に言う: git branch -d <ブランチ名> git push origin:<ブランチ名> | git push origin --delete <ブランチ名> 覚えるよりも簡単です git push origin:branchName | これで、GitHubデスクトップアプリケーションでそれを行うことができます。 アプリケーションを起動した後 ブランチを含むプロジェクトをクリックします 削除したいブランチに切り替えます [ブランチ]メニューから[非公開...]を選択して、GitHubサーバーからブランチを削除します。 [ブランチ]メニューから[削除 "branch_name" ...]を選択して、ローカルマシン(現在作業中のマシン)からブランチを削除します。 | ローカルで削除するには-(通常) git branch -d my_branch ブランチがリベース/マージの進行中であり、それが適切に行われなかった場合は、エラー、リベース/マージが進行中であることを意味します。その場合、ブランチを削除することはできません。 したがって、リベース/マージを解決する必要があります。それ以外の場合は、を使用して強制削除を行うことができます。 gitブランチ-Dmy_branch リモートで削除するには: git push --delete origin my_branch 次を使用して同じことを行うことができます。 git push origin:my_branch#覚えやすいですが、どちらも同じことをします。 グラフ表示: | リモートのブランチと同じ名前のタグがある場合、これは機能しません。 $ git push origin:branch-or-tag-name エラー:dst refspecbranch-or-tag-nameが複数一致します。 エラー:一部の参照を「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 | 他の多くの回答はエラー/警告につながります。このアプローチは比較的ばかげた証拠ですが、たとえば、some_other_branchに完全にマージされていない場合でも、git branch -Dbranch_to_deleteが必要になる場合があります。 git checkout some_other_branch git push origin:branch_to_delete git branch -d branch_to_delete リモートブランチを削除した場合、リモートプルーニングは必要ありません。これは、追跡しているリポジトリで利用可能な最新のリモートを取得するためにのみ使用されます。 git fetchがリモートを削除するのではなく、追加することを確認しました。 git remote pruneoriginが実際に何かを行う場合の例を次に示します。 ユーザーA上記の手順を実行します。ユーザーBは、次のコマンドを実行して、最新のリモートブランチを確認します。 git fetch gitリモートプルーンオリジン gitブランチ-r | 私はこの答えをグーグルで検索することにうんざりしたので、crizCraigが以前に投稿した答えと同様のアプローチを取りました。 Bashプロファイルに以下を追加しました。 関数gitdelete(){ git push origin --delete $ 1 gitブランチ-D $ 1 } 次に、ブランチ(たとえば、マスターにマージされる)が完了するたびに、ターミナルで次のコマンドを実行します。 gitdelete my-branch-name ...次に、my-branch-nameをoriginおよびローカルから削除します。 | 実行する前に git branch --delete 最初に、以下を実行して、リモートブランチの正確な名前を確認してください。 gitls-リモート これにより、 値に正確に何を入力するかがわかります。 (ブランチでは大文字と小文字が区別されます!) | 使用する: git push origin:bugfix#リモートブランチを削除します git branch -d bugfix#ローカルブランチを手動で削除する必要があります 削除してもよろしい場合は、 git branch-Dバグ修正 削除されたリモートブランチをクリーンアップするには、 gitリモートプルーンオリジン | 1 2 次 非常に活発な質問。この質問に答えるために10の評判を獲得してください。レピュテーション要件は、この質問をスパムや無回答のアクティビティから保護するのに役立ちます。 あなたが探している答えではありませんか? git version-control git-branch git-push git-remoteとタグ付けされた他の質問を参照するか、独自の質問をしてください。