LoginSignup
0
0

More than 1 year has passed since last update.

【VSC】git pushでつまづいたところまとめ【Mac】

Last updated at Posted at 2022-07-18

はじめに

Visual Studio CodeでGitHubにpushした時に、下記のエラーが発生した。

ターミナル
git push -u origin master                                        
fatal: cannot run /private/var/folders/35/363l43cj7sl60j9xw34_rbdw0000gn/T/AppTranslocation/DF6474BE-4462-425E-BADD-011ACAF41F89/d/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh: No such file or directory

これを解決するために色々行なったことを以下に記していく。
途中、ssh-agentなど今回の問題とは関係のないものも出てくるが、ついでに書き留めておく。

SSH確認とSSH追加方法を公式で確認する。

まず、下記のリンクからGitHubのSSHキーが使用中のOSに登録しているか確認し、登録していないのであれば、登録方法を確認する。
GitHub SSH確認、SSH追加方法

SSHキーの確認

ターミナル
ls -al ~/.ss

下記のようなものがあれば設定済みだ。
id_rsa.pub
id_ecdsa.pub
id_ed25519.pub
今回そういったものは表示されなかったため、追加していく。

SSHキーの追加

ターミナル
$ ssh-keygen -t ed25519 -C "<GitHubに登録しているメールアドレス>"  
Generating public/private ed25519 key pair.
Enter file in which to save the key(<キーが保存されるディレクトリ>): # ここでエンターを押す
Enter passphrase (empty for no passphrase): # パスワードを入力
Enter same passphrase again: # パスワードを再度入力

これで完了した。
もう一度確認してみる。

ターミナル
$ ls -al ~/.ssh
-rw-------   1 <username>  <groupname>   464  7 17 16:34 id_ed25519
-rw-r--r--   1 <username>  <groupname>   100  7 17 16:34 id_ed25519.pub

上記のファイルが作成されたことを確認した。

ssh-agentに鍵を追加する

パスワード入力を省略するため

ターミナル
$ eval "$(ssh-agent -s)"
Agent pid 7138
ターミナル
# configファイルがある場合はtouchする必要なし
$ touch ~/.ssh/config
$ open ~/.ssh/config 
~/.ssh/config
Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519.pub

SSH 秘密鍵を ssh-agent に追加して、パスフレーズをキーチェーンに保存する。

ターミナル
ssh-add -K ~/.ssh/id_ed25519

publicキーをGitHubに登録する

SSH keysの『New SSH Key』からPublicキー(id_ed25519.pubの中身)を登録する。

vscodeとgithubを連携させる

もしかしたら、これを最初からやっていればできていた?

上記を参考に連携した。
shift+command+Pで開いたところに『gitaddremote』と打ち、出てきたものを選択する。VScodeのversionが古い場合はインストールし直して、アプリを開き直す。
これで連携が完了し、再度push してみる。

ターミナル
$ git push
Enumerating objects: 530, done.
Counting objects: 100% (530/530), done.
Delta compression using up to 4 threads
Compressing objects: 100% (468/468), done.
Writing objects: 100% (477/477), 55.76 KiB | 2.66 MiB/s, done.
Total 477 (delta 364), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (364/364), completed with 40 local objects.
To https://github.com/<username>/<repository>.git
   423a5ed..9a69dce  master -> master

これでpushできた。
実際にgithubに行ってデータが反映されているか確認し、問題なく反映されていた。

用語説明

SSHキーとは
公開鍵暗号方式と共通鍵暗号方式を組み合わせたもので、httpsから始まるウェブサイトは、SSLが適用されている。
ls -alとは
『ls -a』によって、カレントディレクトリの下にぶら下がっているファイルやフォルダを全て表示する。 
『ls -l』によって、左から
アクセス権、リンク数、所有者名、グループ名、サイズ、最終更新日時、名前の詳細
の順に表示する。
上記を組み合わせたコマンドである。

参考

0
0
1

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
0