背景:
我自己用帳號A創建了一個repository,然後用帳號B去fork clone 修改 push回去帳號B的時候出現以下Error,我是用SSH金鑰來進行身份驗證
! [remote rejected] main -> main (permission denied)
error: failed to push some refs to 'git@github.com:MikeyCheng0707/demo.git'
我目前做的確認有
一、
git remote -v
origin git@github.com:MikeyCheng0707/demo.git (push)
看起來推送的repository沒有問題。
二、
網路上目前有提到的是
git config --global --edit
去修改文件加入以下訊息
[credential]
helper = osxkeychain
useHttpPath = true
or
[credential]
helper = store
但還是一直遇到一樣的error,想請假各位前輩是否有什麼想法
我 Fork 你的專案,並提交訊息是沒有問題的。
你的原始專案 https://github.com/MichaelCheng0707/demo
你的Fork專案 https://github.com/MikeyCheng0707/demo
我猜問題的節點是你認為你是用 MiKey 推 MiKey,但其實電腦是認為你用 Michael 推 MiKey
進到 Fork 專案裡面
git config --list 去檢查你推送的本地設定檔
檢查 Mikey ssh key 是不是真的放進 github 裡面,還是粗心只把 ssh key放了 Michael而已
git remote 看來已經有用過了
如果還是不能解決你的問題,你試試在電腦安裝一台 VM,安裝 git 與 配置 Mikey 設定,讓乾淨的電腦幫你拉跟推嘗試看看,可以的話,檢查 local git 配置(如果你熟 docker,抓 centos/ubuntu 下來挺快的。
你能夠把這四個指令結果貼出來嗎,有覺得機密的請打馬賽克。
1. cat MikeyCheng0707/demo/.git/config
2. cat ~/.gitconfig
3. git config --list
4. git config --list --global
A創建了一個 repository,然後用帳號B去fork clone
修改 push回去帳號B的時候出現以下Error .....
為何不將 B去fork clone 下的 .git 刪除
再重建 B 的 .git
還是需要保留 A 的歷史流程?
更快的方式 : (A 的 repository 必須公開才能匯入 )
github.com 最快的方式是用網頁登入B 直接建立一個 repository
選 A 的 github 網址直接匯入
https://github.com:MikeyCheng0707/demo.git
我推測是電腦分不清楚你要去哪裡
可以參考教學去做設定
然後記得你專案底下的.git/config要做更改,假設你是git@github.com:someName/someRemoteRepository
你要把github.com換成~/.ssh/config裡面的HostName