つくたろうのブログ

ポケモン色違い厳選や国立大学巡りが好きな大学生、つくたろうの気ままな雑記帳です。

【Github】VSCodeがデフォルトで「origin/master」に同期してしまう問題の解消(origin/mainに変更したい)

www.tsukutarou.net
f:id:tsukutarou:20211203131205p:plain

こんにちは、つくたろうです。

VSCodeとGithubを同期する際に、同期先のブランチ名が勝手に「origin/master」になってしまうところでハマってしまいました。

おそらく解消できたのでメモ。

起きた問題

VSCodeでレポジトリに変更を行って保存し、add・commitすると、「変更の同期」と表示が出ます。
f:id:tsukutarou:20211203131616p:plain

これを押すと「このアクションは、'origin/master'との間でコミットをプッシュおよびプルします」と出ます。
f:id:tsukutarou:20211203133028p:plain

このとき、Githubにてmasterというブランチで作業していればいいですが、おそらくここ最近新しく作ったプロジェクトの場合デフォルトブランチはmainになっているかと思われます。

2020年にデフォルトブランチの名前がmasterからmainになったためですね。 github.blog

そのため、「master」というブランチが無い状態で作業している場合に、「このアクションは、'origin/master'との間でコミットをプッシュおよびプルします」の画面で「OK」を押すと十中八九以下のように「Git: fatal: couldn't find remote ref master」と出てエラーになるはずです。
f:id:tsukutarou:20211203133127p:plain

そして、同期ができなくなる。これは困った。

そもそも「master」なんて作ってないブランチ使いたくないし…

原因

エラーメッセージの通り「master」のブランチが見つからないので同期できない。

しかし、VSCodeの同期ボタンは勝手に「origin/master」と同期するようになってしまっている。

これが原因っぽい。

同期ボタンを押したときに「origin/main」に同期するように変えられれば解決すると思われる。

configあたりで変えられないかなと思って

git config --local --list

を打ってみたところ、以下のようにbranch.main.merge=refs/heads/masterという記述がありました。
f:id:tsukutarou:20211203140251p:plain

これが同期先を決めているっぽいので、これをrefs/heads/mianに変えてしまえばいいはず。

f:id:tsukutarou:20210526023824p:plain

*注:僕は複数のGitとGithubを使いたくてプロジェクトごとにローカルのconfigを設定しています。なのでconfigをいじるコマンドも--localで使っています。
使い分けしていない人はグローバルでも同じ設定はできると思いますが、その際はコマンドの
--localを適宜--globalに変えてください。
まあそもそもグローバルでこの問題が起こるかは自分が使っていないのでよくわかりませんが。。。(笑)

解決法

ということで、先述の通りconfigのbranch.main.mergerefs/heads/mianに変えてしまいましょう。

以下のコマンドを入力すれば変えられるはず。

git config --local branch.main.merge refs/heads/main

実際に変わったかどうか、もう一度

git config --local --list

で確認すると、
f:id:tsukutarou:20211203141118p:plain

変わっていますね。ひとまずOK。

この状態でもう一度先ほどの「変更を同期」ボタンを押すと、
f:id:tsukutarou:20211203131616p:plain

今度は「このアクションは、'origin/main'との間でコミットをプッシュおよびプルします」表示が出てきます。
f:id:tsukutarou:20211203141338p:plain

同期先が「origin/master」から「origin/main」にちゃんと変更できていると思って良さそうです。

実際に「OK」を押すと、「変更を同期」ボタンが消え同期がうまくいったことが分かります。
f:id:tsukutarou:20211203142010p:plain

これで一安心ですね。

おわりに

今回は、VSCodeがデフォルトでGithubの「origin/master」に同期してしまう問題を、configの同期先を「origin/main」に書き換えることで解消しました。

なにかうまくいかないときはまずconfigを見る癖をつけたいところですね。

f:id:tsukutarou:20211203143838p:plain

僕は大学の課題などのほかにもブログ用にちまちまコードを書いているのですが、これを管理したいなと思って個人開発でのGithub利用を導入したところです。
www.tsukutarou.net

書いたコードについてなどの記事もこれから書いていくつもりなので、これからも読んでいただけると嬉しいです!

ここまで読んでくれて、ありがとうございました!

2021/12/02 つくたろう



大学生ランキング