0
1

【Error】Gitが正しく処理できない恐れも!!日本語や特殊文字はだめ

Posted at

はじめに

Githubにプルリクエストをあげるより前に気づかなければいけなかったこと。おそらく初めの方で学習した内容。ですが、すっかり忘れていてError?注意の表記が出るまでちゃんと認識していませんでした。これからの為にも記事に残しておきたいと思います

1:Githubにて気づいたエラー

Image from Gyazo

英文は下記になります👇

The head ref may contain hidden characters: "05\u30DD\u30B9\u30C8\u8A73\u7D30"

これが何を意味しているのか

このメッセージは、Git での操作中にリファレンス(参照)名に隠れた文字が含まれている可能性があることを示しています。隠れた文字(例: 特殊文字、制御文字、または非表示文字)がリファレンス名に含まれていると、Git がそれを正しく処理できないことがあります。

2:この問題に対処するためのステップはいくつかありました

  1. リファレンス名の確認

    • 隠れた文字が含まれている可能性があるリファレンス名を確認します。リファレンス名には、ブランチ名、タグ名、リモートのリファレンスなどがあります。

    • 下記コマンドで、リファレンス名に不審な文字が含まれていないか確認します。

      git branch -a
      git tag
      git remote show origin
      
  2. リファレンスの修正または削除

    • 隠れた文字が含まれているリファレンス名を修正または削除する必要があります。以下はリファレンスの名前変更や削除のコマンドです。

    • ブランチ名の変更:

      git branch -m old-branch-name new-branch-name
      
    • タグ名の変更:

      git tag new-tag-name old-tag-name
      git tag -d old-tag-name
      
    • リモートのブランチやタグの削除:

      git push origin --delete branch-name
      git push origin :refs/tags/tag-name
      
  3. リファレンスのクリーンアップ

    • 隠れた文字が含まれているリファレンスが正しく修正または削除されたら、Git のリポジトリをクリーンアップするために、次のコマンドを実行します。
    git fetch --prune
    git remote prune origin
    
  4. リポジトリの整合性チェック

    • Git リポジトリの整合性をチェックし、問題がないか確認します。
    git fsck
    

3:私が行ったこと

👇私が実際にした流れになります

1:リファレンス名の確認
$ git branch -a
  01readme
  02fig
  03ER
  04_create_post
* 05ポスト詳細
  main
  remotes/origin/01readme
  remotes/origin/02fig
  remotes/origin/03ER
  remotes/origin/04_create_post
  remotes/origin/05ポスト詳細
  remotes/origin/main

05ポスト詳細 というブランチ名に日本語が含まれているのがわかります。よく調べると、日本語や特殊文字が含まれるリファレンス名が問題を引き起こすことがあるため、これが原因でエラーが発生している可能性があるという事がわかりました

2:ブランチ名の変更~整合性の✅チェックまで

さっそく、
日本語を含むブランチ名を英数字に変更してみます。

git branch -m 05ポスト詳細 05-post-details

つぎに、一度git add .git commit -m 'コメント'そしてgit push --set-upstream origin 05ポスト詳細を実行してしまっているので、リモートブランチも変更していきます

# ローカルブランチの名前変更
git branch -m 05ポスト詳細 05-post-details
    
# リモートブランチの削除とプッシュ
git push origin :refs/heads/05ポスト詳細
git push origin 05-post-details
    
# リモートトラッキング情報の更新。不要なリファレンスを削除
git fetch origin --prune

# リポジトリの整合性を確認し、問題がないか確認
git fsck

さいごに、まとめ

リファレンス名に日本語や特殊文字が含まれている場合、Git が正しく処理できないことがあるという事を、今回のエラーから学びました。
日本語になってるくらい大丈夫でしょ?という思い込みだけでその先に進まず、一度エラー内容をよく調べて少しずつ進めていきたいと思います
今回の記事が何か参考になれば幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1