👾

DevContainerでgit pushができない

2024/03/22に公開

解決手順

1. ssh起動

ssh-agent bash

2. sshが登録されているか確認する

ssh-add -l

ここで、The agent has no identities.と言われたら登録する必要がある。

3. gitの認証情報をコンテナーと共有する

git config --global user.name "Your Name"
git config --global user.email "your.email@address"

4. ssh キーを生成

ssh-keygen

5. sshキーを登録

ここで、/home/vscode/.ssh/id_rsaは、sshキー生成のターミナルで出力されたYour identification has been saved inの横に書かれた部分に置き換える。

ssh-add /home/vscode/.ssh/id_rsa

6. GitHubで登録

GitHubの [Settings] > [SSH and GPG keys] > [New SSH key]からsshキーを登録。
sshキー生成のターミナルで出力されたYour public key has been saved inの横に記載(今回だと、/home/vscode/.ssh/id_rsa.pub)のファイルにある値がsshキーである。

sshキー登録画面

7. 登録されているか確認

ssh -T git@github.com

You've successfully authenticatedと返ってきたら成功している。

8. 現在のリモートリポジトリを確認

git remote -v

設定する場合は、以下を実行する。ここで、git@github.com:alexpchin/<reponame>.gitは、SSHであることに注意する。

git remote add origin git@github.com:alexpchin/<reponame>.git

9. 変更を反映する

git add .
git commit -m "test"
git push -u origin main

補足

error: failed to push some refs toが発生した場合

git fetch
git merge origin/<branch-name>

ここで、fatal: refusing to merge unrelated historiesが発生したら、以下を実行する(mainブランチの場合)。

git merge --allow-unrelated-histories origin/main

参考

https://github.com/csci430-os/vscode-remote-devcontainer/issues/2
https://code.visualstudio.com/remote/advancedcontainers/sharing-git-credentials
https://qiita.com/mei28/items/85bc881ac1f26332ac15

Discussion