rcmdnk's blog

20230226_githubchange_200_200

Homebrew用に公開しているTapを管理しているレポジトリのデフォルトブランチを masterからmainに変更した際に起こったこと。

GitHubでのデフォルトブランチの変更

GitHubでのデフォルトブランチの変更はレポジトリのSettingsBranchesに行って Default branchのところのブランチ名を変更すれば終わりです。

20230226_githubchange.png

これで既存のデフォルトブランチも名前が変更されます。

ローカルにclone済のレポジトリへの対処

上記の作業をしたら、ローカルにあるclone済のレポジトリで以下のようなコマンドを実行します。

1
2
3
4
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a

これでもともとmasterだったブランチがmainに変わり、GitHub上のmainブランチと繋がります。

1
2
3
4
5
6
7
$ git branch -a -vv
  install                                                 723acc6 [origin/install] fix by shellcheck
* main                                                    577ddfb [origin/main: behind 17] test: fix test for ubuntu
  remotes/origin/HEAD                                     -> origin/main
  remotes/origin/dev                                      814b5a5 use python-action
  remotes/origin/install                                  723acc6 fix by shellcheck
  remotes/origin/main                                     4389de1 test: add tests

みたいにmainブランチが出来ていてorigin/mainがupstreamになっていて、 remotes/origin/HEADorigin/mainになっていればOK。

上のインストラクションは変更をすると直後にも現れて、その後、他の人でも レポジトリに初めてWebでアクセスすると下記のように現れます。

20230226_githubprocedure.png

HomebrewのTapを管理しているレポジトリだった場合

Homebrew用のTapを管理しているレポジトリではそのデフォルトブランチにあるFormula/CaskをHomebrew側で扱うことになります。

Tapする際にはバージョンやブランチの指定などは出来ず、そのレポジトリのデフォルトブランチの最新のものが取得され、 デフォルトブランチが更新されればTapも更新されます。

そのTap用のブランチのデフォルトブランチの名前を変更した後、Tapを更新するためbrew updateとかを実行すると

1
2
3
4
5
6
7
8
9
10
$ brew update

[ERROR] fatal: couldn't find remote ref refs/heads/master
Error: Fetching /opt/homebrew/Library/Taps/rcmdnk/homebrew-file failed!
Error: Some taps failed to update!
The following taps can not read their remote branches:
  rcmdnk/file
This is happening because the remote branch was renamed or deleted.
Reset taps to point to the correct remote branches by running `brew tap --repair`
This can be fixed by brew tap --repair:

みたいなエラーが出ます。

これが出たら指示通り

1
2
3
4
5
6
7
8
9
10
11
12
$ brew tap --repair
From https://github.com/rcmdnk/homebrew-file
 - [deleted]         (none)     -> origin/master
   (refs/remotes/origin/HEAD has become dangling)
remote: Enumerating objects: 29, done.
remote: Counting objects: 100% (29/29), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 29 (delta 17), reused 29 (delta 17), pack-reused 0
Unpacking objects: 100% (29/29), 13.92 KiB | 431.00 KiB/s, done.
   6f7e92f..a290028  coverage                          -> origin/coverage
 * [new branch]      main                              -> origin/main
==> rcmdnk/file: changed default branch name from master to main!

とすれば新しいデフォルトブランチに変更し、管理するように変更してくれます。

というわけで、homebrew-fileのデフォルトブランチを変更したので もしtapしてある場合は上記のエラーが出てしまうと思いますが brew tap --repairをお願いします。

Sponsored Links
Sponsored Links

« wemake-python-styleguide: Python linterのflake8用プラグイン Pythonで複数のファイルからなるスクリプトを1つのスクリプトにまとめる »

}