ローカルでブランチを削除する方法は?


159

リポジトリにmasterとdevブランチがあります。誤ってコミットしないように、masterブランチを自分のコンピューターから削除したいのですが(発生しました)。

ローカルリモートでブランチを削除する方法について質問がありますが、ローカルブランチを削除する方法しかわかりません。

一つの答えはこれを使うと言いました:

git branch -d local_branch_name

しかし、私はそれを試しました、そしてブランチはまだGitHubアプリケーションに現れます。


そのコマンドからの出力は何ですか?あなたはどの支店にいますか?コンソールにどのように表示されますか?
SLaks

@SLaks私の質問にはタイプがありました。コンソールでは実際にはブランチが削除されたと表示されますが、GitHubアプリケーションでは(再起動後も)ブランチとコミットが表示されます。出力はDeleted branch master (was e8a8e29).
2015

GitHub for Windowsはリモートブランチも表示
SLaks

@SLaksローカルでブランチを削除した後、GitHub for Windowsアプリケーションでそれをクリックした場合、それは単にそれを再クローンするだけですか?masterブランチを直接変更できないようにしたいのですが。
2015

回答:


114

私はあなたが何をしたいのか理解していること(あなたのコメントに基づいて)だと思う:あなたは、リポジトリのローカルコピーは、通常のローカルブランチどちらも持っていたいmasterでもリモート追跡ブランチをorigin/masterあなたもリポジトリかかわらず、クローン化され、githubのの1 -github バージョンから削除したくないローカルブランチmasterがあります。

これを行うには、リモート追跡ブランチをローカルで削除しますが、gitにローカルリポジトリとリモートリポジトリを同期するように要求するたびに、gitはgitに「どのブランチがありますか」と尋ねるので、 「私は持っているmaster」と言うので、あなたのgitがあなたのために(再)作成origin/masterし、あなたのリポジトリは彼らが持っているものを持っています。

コマンドラインインターフェイスを使用してリモート追跡ブランチをローカルで削除するには:

git branch -d -r origin/master

しかし、繰り返しになりますが、それは再同期に戻ってきます。それはありますremote.origin.fetch操作を使用して)これを無効にする可能ですが、masterローカルで作成または変更しないように十分に訓練されている方が良いでしょう。



99

ローカルブランチを強制的に削除します:

$ git branch -D <branch_name>

[ ]:

"-D" 強制削除オプションです。



6
アップストリームセットが設定されているローカルブランチを削除してから通常のプッシュを実行すると、リモートブランチは削除されませんか?
燃料提供:コーヒー


17

私が元の問題を理解できる限り 、誤ってローカルマスターにコミットを追加しましたが、 まだその変更をプッシュしていません。ここで変更をキャンセルし、ローカルの変更を削除して、リモートのブランチから新しいマスターブランチを作成したいとします。

変更をリセットして、リモートサーバーからマスターをリロードするだけです。

git reset --hard origin/master

13

WindowsのGithubアプリケーションは、リポジトリのすべてのリモートブランチを表示します。ローカルでブランチを削除した場合$ git branch -d [branch_name]、リモートブランチはGithubリポジトリにまだ存在し、Windows Githubアプリケーションに関係なく表示されます。

ブランチを完全に(リモートでも)削除する場合は、上記のコマンドをと組み合わせて使用​​し$ git push origin :[name_of_your_new_branch]ます。警告:このコマンドはすべての既存のブランチを消去し、コードが失われる可能性があります。注意してください、これはあなたがやろうとしていることではないと思います。

ただし、ローカルブランチの変更を削除するたびに、リモートブランチは引き続きアプリケーションに表示されます。変更を続けたくない場合は、無視してクリックしないでください。それ以外の場合は、リポジトリのクローンを作成できます。他にご不明な点がありましたらお知らせください。


1

別のブランチに切り替えて同じことを試す必要があります。

gitブランチ-d


1
これは答えになるはずですか?または明確化の質問ですか?または明白な質問?短いのでわかりません。詳しく説明しますか?
ユンノシュ

0

あなたのタグで、私はあなたがGithubを使用していると仮定しています。マスターブランチのブランチ保護ルールを作成してみませんか?そうすれば、マスターにプッシュしようとしても拒否されます。

1)Githubのリポジトリの[設定]タブに移動します。

2)左側のメニューで[ブランチ]をクリックします。

3)[ルールを追加]をクリックします

4)ブランチパターンに「master」と入力します。

5)「マージする前にプルリクエストのレビューを要求する」にチェックを入れます

開発ブランチについても同じことをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.