WindowsからMacへ触ったときにコミットエラーで躓いたメモ

最近コンピュータを1台増やしました。

Macを追加したので最初から環境構築をしました。

実際に私の手順は環境複製だったのでリポジトリをcloneしてnpm installしたのちリモートやsshの登録をした感じです。

今回もいつものようにあっけない箇所で躓いたんですが、これからGitHub触る人にもわかるように頻度が高いエラーの処置を書いておきます。

初見でGitHubを使う人もおそらくこのエラーが出るはずなので参考になるかと思います。

改めてsshって何?

GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

GitHubがSSH経由のHTTPSを推奨するのはなぜですか?

まずなんでhttpsじゃなくてssh通信するのかはまず一つ目にセキュリティ上の観点です。

メリットとして1度設定すれば毎回パスワードを求められなくなります。

そして念の為一応把握しておきたいのが現在のGitHubの推奨は簡単に行えるなどの理由からhttps通信となっていることです。

鍵の生成方法や詳しい話は上のリンクをご覧ください。

GitHubのリポジトリを作ったら最初にやること

最初に以下のような感じでバーっと書いてあります。

1git init
2git add README.md
3git commit -m "first commit"
4git branch -M main
5git remote add origin git@github.com:ドメイン名/リポジトリ名.git
6git push -u origin main

もし[email protected]の部分がhttpsになっていたら先に述べたsshを作って上のように書き換えてください。

そしたらWinならcmdにmacならterminalに貼り付けて実行します。

コミット時に出たエラー

1fatal: remote origin already exists.

リモートのoriginが既に登録されているという内容です。

これはいつもの通り見慣れていたのですぐに既存のリモートを消した後ssh鍵を発行して再度リモートの登録で解決できました。

1git remote rm origin
2git remote add origin git@github.com:ドメイン名/リポジトリ名.git
3git push -u origin main

コミット時に出たエラーその2

1error: pathspec 'commit”' did not match any file(s) known to git
2Branch 'main' set up to track remote branch 'main' from 'origin'.
3Everything up-to-date

かなりググり倒してしまいました。

error: pathspec 'commit”' did not match any file(s) known to gitとググるとstackoverflowにて事例がありました。

"ターミナルにコピーを貼り付けると-と""が問題になります。"

という感じでコピペしないでカタカタと後述のadd commit pushのコマンドを手打ち込むことで解決しました。

git remote -vコマンドでhttpsになっているかsshになっているか確認します。

1git remote -v
2origin	git@github.com:ドメイン名/リポジトリ名 (fetch)
3origin	git@github.com:ドメイン名/リポジトリ名 (push)

このように[email protected]から始まっていればsshになっています。

その後の変更のやりかた

1git add .
2git commit -m “first commit”
3git push -u origin main

このうちのaddはVSCodeのステージングに当たります、プラスマークを押すことでもできます。

続いて commitの部分はコミットメッセージを入れてチェックマークを押すことでもできます。

最後の pushは青い文字ででっかく"変更の同期"と表示されるのでそれを押します。

commitは変更記録をローカル上に保存し、pushは変更記録をリモートに保存します。

なので先にローカルの保存をしてからリモートにプッシュするという流れになります。

総括して

プロジェクトに入ったら最初にやることだと思うので自分的に需要あるかなと思って記して置きました。

今までWindowsのコマンドプロンプトしか触ってなかったのでターミナルがコピーペーストを許容しないこととかMac特有のGUIについて知れてよかったです。

Macの弱点と言えばGPUです。最近はゲームで遊ばなくなったのでしばらく使うことになりそうですね。