学習を始めた当初、Gitでデータを管理するのが一般的という言葉を頼りに、GitHubのこともよく分からないまま登録していました。
実際に使い始めてみると、どうやらリポジトリURLにはユーザー名が表示されるよう…
あまり深く考えずに突き進んでいたら、チームで開発やポートフォリオを作成した際にもこの名前が表示されるのか…!ということに気づき、変更方法を調べてみることにしました。
心配だったポイント
確かURLで紐づけをしていて、自分の作業環境内のフォルダ構成を変えたときもエラーが出たはず…
リモートリポジトリのURLが変わってしまってもデータは大丈夫なのだろうかという心配があったのできちんと調べてみることにしました。
ユーザー名を変える方法
結論から言うと、私の場合は問題ありませんでした。
詳しい内容について、手順と一緒に記述していきます。
GitHubにログインして設定画面を開く
まずはGitHubにログイン。
自分のアイコンをクリックして開いたタブから「⚙Setting」をクリックします。
そうすると左ナビに「⚙Account」があるので、ここをクリック。
そこで表示された画面に「Change username」という項目があるので、さらにそこの「Change username」というボタンをクリックします。
そうするとこんな感じのポップアップが開きました。
本当にユーザー名を変更しますか?
これを読まないと思わぬ悪いことが起こります!
・古いプロフィール ページにはリダイレクトは設定されません。
・Pages サイトにはリダイレクトを設定しません。
・リポジトリ (Web および Git アクセス) のリダイレクトを作成します。
・名前の変更が完了するまでに数分かかる場合があります。
私は英語が苦手なのでGoogle翻訳さんに翻訳してもらいました。
強めのメッセージにどきどきしてしまいます…。
おそらく大丈夫そうだけど、一応記事を確認してみることにします。
古いユーザ名の下にあるリポジトリへの参照のほとんどが、自動で新しいユーザ名に変わります。
どうやらユーザー名を変更しても自動でリポジトリのURLもリダイレクトしてくれるようです。
ユーザ名を変更した後、GitHub は自動的にあなたのリポジトリへの参照をリダイレクトします。
・既存のリポジトリへの Web リンクは引き続き機能します。 変更を加えてから完了するまでに数分かかることがあります。
・ローカルリポジトリのクローンから古いリモートトラッキング URL へのコマンドラインプッシュは引き続き機能します。
ローカルリポジトリからのプッシュもそのままできるみたいです。
ちょっと一安心。
古いユーザ名の新しい所有者が、あなたのリポジトリと同じ名前のリポジトリを作成すると、リダイレクトエントリが上書きされ、リダイレクトは機能しなくなります。 こうしたことが起こることを防ぐため、ユーザ名を変更したら、既存のすべてのリモートリポジトリ URL を更新することをお勧めします。
ここで少し気になる記述を発見。
以前のユーザー名を、再度、別のアカウントで使用して同じリポジトリ名で作成するとURLが上書きされてリダイレクトが効かなくなるようです。
表示やプッシュはそのままできるとはいえ、念のため更新しておいた方が良さそう。
これで注意点も確認できたので、先ほどのポップアップに戻って、赤文字ボタンの「I understand. let’s change my username」ボタンをクリック。
その後、変更したいアカウント名を入力する画面が表示されます。
こちらに新しいユーザー名を入力して「Change my username」をクリックすればユーザー名の変更完了です。
URLの確認
ユーザー名が変わると、GitHubのURLが変更されました。
どのように変わったのか確認してみましょう。
GitHubのリポジトリもそれぞれ、
新しいユーザー名/リポジトリ名
に変更されていました。
試しに…
https://github.com/以前のユーザー名/リポジトリ名
のURLでリポジトリを開いてみると、
https://github.com/新しいユーザー名/リポジトリ名
として新しいユーザー名に紐づいてリダイレクトされたのが分かります。
もし、別のアカウントで「以前のユーザー名/リポジトリ名」でリポジトリが作られてしまうと、このリダイレクト表示が出来なくなってしまうということなのですね…。
ローカルでの状態を確認
リモートリポジトリを紐づけたフォルダに移動して、ターミナルで「$ git remote -v」コマンドを使ってURLを確認。
$ git remote -v
origin git@github.com:以前のユーザー名/リポジトリ名.git (fetch)
origin git@github.com:以前のユーザー名/リポジトリ名.git (push)
さすがにここは以前のユーザー名のままになっています。
このままでもプッシュできるということなのでしょうか?
確認してみましょう。
データを更新してインデックスに追加、コミット、プッシュしてみると…できました!
ローカルでの表示が以前のユーザー名のままでも問題ないようですね。
ただ、やっぱり気になるのと今後不具合が出てくるのかもと心配なので
$ git remote set-url origin git@github.com:新しいユーザー名/リポジトリ名.git
でローカル上の表示も新しいユーザー名に変更しました。
こんなものでしょうか?
まだまだGitについても分からないことだらけですが、少しずつ仕組みが分かってきたような気がします。
まとめ
まだGitに触れて1ヶ月程度の初心者のため、ぼんやりとしか認識できていない状態ですが、使い始めた当初と比べると少しずつ仕組みも分かってきたように思います。
記事を作成しながら、あれってどういう意味だっけ?と立ち返ることも多く、確認しながらの作業になってとても勉強になりました。