GitHubのブランチ削除についてまとめています。
GitHubのブランチを削除する
GitHubのブランチを削除してみましょう。まずは、テスト用にローカルリポジトリとリモートリポジトリに、test1、test2、test3というブランチを作成します。具体的には、ローカルリポジトリにtest1、test2、test3を作成してから、リモートにプッシュします。
$ git clone https://github.com/ownername/samplex.git Cloning into 'samplex'... remote: Enumerating objects: 45, done. remote: Counting objects: 100% (45/45), done. remote: Compressing objects: 100% (32/32), done. remote: Total 45 (delta 2), reused 8 (delta 0), pack-reused 0 Unpacking objects: 100% (45/45), done.
gitステータスを確認します。現在のブランチはmainとなっています。
$ cd samplex/ $ git status ブランチ main Your branch is up to date with 'origin/main'. nothing to commit, working tree clean
git branchで現在のブランチがmainのみであることを確認後、git branch test1~を実行してブランチを作成します。作成後にgit branchを実行すると、test1~test3のブランチが作成されています。
$ git branch * main $ git branch test1 $ git branch test2 $ git branch test3 $ git branch * main test1 test2 test3
作成したローカルのブランチをプッシュして、リモートにもブランチを反映させましょう。git checkoutでブランチをtest1に切り替えます。
$ git checkout test1 Switched to branch 'test1'
リモートリポジトリの情報を確認します。
$ git remote -v origin https://github.com/ownername/samplex.git (fetch) origin https://github.com/ownername/samplex.git (push)
git pushで、リモートにブランチをプッシュします。
$ git push --set-upstream origin test1 Total 0 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'test1' on GitHub by visiting: remote: https://github.com/ownername/samplex/pull/new/test1 remote: To https://github.com/ownername/samplex.git * [new branch] test1 -> test1 Branch 'test1' set up to track remote branch 'test1' from 'origin'.
これでリモートリポジトリにもtest1というブランチが作成できました。同様にtest2、test3もプッシュします。
$ git checkout test2 $ git push --set-upstream origin test2 $ git checkout test3 $ git push --set-upstream origin test3
ローカル、リモートすべてのブランチを確認します。
$ git branch --all main test1 test2 * test3 remotes/origin/HEAD -> origin/main remotes/origin/main remotes/origin/test1 remotes/origin/test2 remotes/origin/test3
これで、ブランチの作成は完了です。続いて、ブランチの削除をおこなっていきましょう。
ローカルリポジトリのブランチを削除する
git branchに–deleteオプションを指定するとローカルリポジトリのブランチを削除できます。
$ git branch --delete test1 Deleted branch test1 (was 39e2a41). $ git branch --all main test2 * test3 remotes/origin/HEAD -> origin/main remotes/origin/main remotes/origin/test1 remotes/origin/test2 remotes/origin/test3
ローカルリポジトリから、test1が削除されました。なお、リポジトリ削除に、ワイルドカード(*)は使えません。
$ git branch --delete test* error: ブランチ 'test*' は見つかりません。
ローカル環境がパソコンの場合、GitHub Desktopを使ってのブランチ削除も可能です。
【関連記事】
▶GitHub DesktopはWindows用Gitツール インストールと使い方の解説
Current branchにて、削除したいブランチを選択します。
画面上部のメニューから、Branch→Deleteを選択します。
これで、ローカルのブランチが削除できます。
なお、チェックアウト中のブランチは削除できません。削除しようとすると、Cannot delete branchというエラーが出力されます。
$ git branch --delete test3 error: Cannot delete branch 'test3' checked out at '/home/user1/work/github/wk7/samplex'
リモートリポジトリのブランチを削除する
リモートのリポジトリ削除は、GitHubのウェブページ上から実行するのが簡単です。リポジトリのページから、branchesと表示されている箇所をクリックします。
ブランチ一覧が表示されるので、右のゴミ箱のアイコンをクリックします。
これで削除は完了です。1クリックで削除できてしまうのは操作ミスしたときに怖いのですが、ゴミ箱アイコンをクリックしたあとは、「Restore」(復元)ボタンに変化し、復元が可能なんですね。
Restoreボタンは、画面遷移すると表示されなくなってしまうのですが、リポジトリのページのSettingsからも削除済みリポジトリの復元が可能です。Settings→Repositories→Deteled repositoriesをクリックすると、過去に削除したリポジトリ一覧が表示され、「Restore」ボタンクリックで復元されます。なお、この項目に削除済みリポジトリが表示されるまで、1時間程度時間がかかります。
gitコマンドからもブランチの削除が可能です。削除後、git branch –remoteで、リモートリポジトリのブランチ一覧を確認すると、test3が削除されているのがわかります。
$ git push --delete origin test3 To https://github.com/ownername/samplex.git - [deleted] test3 $ git branch --remote origin/HEAD -> origin/main origin/main origin/test1 origin/test2
まとめ
- git branchコマンドでブランチの削除が可能
- ローカルリポジトリはgit branch –delete、リモートリポジトリはgit push –deleteで削除する
- GitHub Desktopでのローカルリポジトリ削除や、GitHubのウェブページ上からリモートリポジトリ削除も可能