Gitでプッシュ先のリモートを指定したとき文字化けしてしまいました。
その時の解決策を書きます。
Gitの登録
Qiitaに登録するときにアカウントを作成していたが、
まったく使わずにいた。
今回自分のgitのページ下にpracticeというディレクトリを追加した。
**Gitの環境構築** windows10の環境で下の通りにやった。 https://prog-8.com/docs/git-env-win
Gitをインストール
起動
以下のコマンドを打ち込んでいく
基本は打ち込みではなくprogateのコマンドをコピペしていた。
$ git config --global user.name "ユーザー名"
$ git config --global user.email "メールアドレス"
$ mkdir practice
$ cd practice
ローカル側の「practice」フォルダーにあらかじめ作っておいた「Hello.py」を保存
$ git init
$ git remote add origin <URL> #この時におそらく全角文字が混じった
$ git commit -m "Create index.html"
$ git push origin master
不具合発生
$ git push origin master
fatal: protocol 'ツ防ttps' is not supported
文字化け???
とりあえずリモートを上書きしよう
$ git remote add origin <URL> #今度は半角で
$ git commit -m "Create index.html"
$ git push origin master
同じエラーばかり出る。
「Git 文字化け」でググるが、ファイル自体の日本語だとか
中身をUTF-8で保存しろだとか、そういうのばかり。
**解決策**
設定ファイルを直性いじることにしました。
まずローカルのディレクトリを「ll -a」コマンドで見てみます。
mamechan@**** ~/practice (master)
$ ll -a
total 8
drwxr-xr-x 1 mamechan 197121 0 7月 17 13:17 ./
drwxr-xr-x 1 mamechan 197121 0 7月 17 13:51 ../
drwxr-xr-x 1 mamechan 197121 0 7月 17 13:56 .git/
-rw-r--r-- 1 mamechan 197121 346 7月 17 12:56 Hello.py
-rw-r--r-- 1 mamechan 197121 0 7月 17 13:17 test.txt
「.git/」を調べてみます。
mamechan@**** ~/practice (master)
$ ll -a .git/
total 17
drwxr-xr-x 1 mamechan 197121 0 7月 17 13:56 ./
drwxr-xr-x 1 mamechan 197121 0 7月 17 13:17 ../
-rw-r--r-- 1 mamechan 197121 11 7月 17 13:18 COMMIT_EDITMSG
-rw-r--r-- 1 mamechan 197121 243 7月 17 13:54 config
-rw-r--r-- 1 mamechan 197121 73 7月 17 12:48 description
-rw-r--r-- 1 mamechan 197121 23 7月 17 12:48 HEAD
drwxr-xr-x 1 mamechan 197121 0 7月 17 12:48 hooks/
-rw-r--r-- 1 mamechan 197121 209 7月 17 13:18 index
drwxr-xr-x 1 mamechan 197121 0 7月 17 12:48 info/
drwxr-xr-x 1 mamechan 197121 0 7月 17 13:06 logs/
drwxr-xr-x 1 mamechan 197121 0 7月 17 13:18 objects/
drwxr-xr-x 1 mamechan 197121 0 7月 17 13:49 refs/
多分このconfigだ。
vi ./git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = <96>https://github.com/mamechan08/practice.git
fetch = +refs/heads/*:refs/remotes/origin/*
ちょっとうろ覚えなんですが、uelの前にコードが入っていて、文字化けの原因になっていました。
この<96>部分を消して上書きしたのち
$ git commit -m "Create index.html"
$ git push origin master
をしたところ、無事にプッシュできました。
Gitこわくない
プッシュとかリモートとかコミットとか、とにかく横文字だらけで小難しいイメージでしたが、
壁にぶち当たったことで仕組みが分かりました。
おそらくリモート先の指定もオプションかなんかで上書きできる設定があるんじゃないでしょうか?
最初に間違って違うフォルダをgit initしてしまったのですが、
つまりgit initをすることで、そのフォルダ上に「.git/」という設定ファイルを作るんですね。
間違って作ったフォルダ上で「rm -rf .git」をすることでmasterから外すこともできました。
結果的にgitの仕組みが少しわかったのでよかったです。