【Git遠程協做】Pull Request成功,並解決報錯error: cannot spawn sh: No such file or directory

第一次幫別人寫文檔,有點不會
html

按照貢獻說明來,先Fork了主倉庫,而後經過複製倉庫的http連接,git

在Github Desktop上進行了快速的git clone一鍵式操做。程序員

如需下載Github Desktop,個人是win-x64版本,請看👉 GitHubDesktop for Windows 、Atom最新版下載或者👉安利二十個程序員必備的軟件,款款都是精品github

不過我這邊是錯誤的操做:應該複製git地址才行,否則得輸入密碼的。vim

由於git地址匹配你本地的密鑰,是安全的。但http地址沒有通過公開密鑰密碼體制驗證,因此在你寫完代碼想git push上傳代碼的時候,就會很是麻煩,要輸帳號,要輸密碼。安全

輸不對就中止不動了,就得本身ctrl+c中止當前進程,再從新git push,試對爲止。很煩,我早就不記得個人gitee的Username和Password了ssh

D:\GitHub Project\awescnb-docs-guo>git add .

D:\GitHub Project\awescnb-docs-guo>git commit -m "青墟修改"
[master ddc289f] 青墟修改
 29 files changed, 12743 insertions(+), 12725 deletions(-)

D:\GitHub Project\awescnb-docs-guo>git push
error: cannot spawn sh: No such file or directory
Username for 'https://gitee.com': 用戶名隱藏
Password for 'https://用戶名隱藏@gitee.com':【在這裏我按了ctrl+C終止】
fatal: could not read Password for 'https://用戶名隱藏@gitee.com': No error

D:\GitHub Project\awescnb-docs-guo>git pull
Already up to date.

D:\GitHub Project\awescnb-docs-guo>git push
error: cannot spawn sh: No such file or directory
Username for 'https://gitee.com': 【在這裏我按了ctrl+C終止】fatal: could not read Username for 'https://gitee.com': No error

D:\GitHub Project\awescnb-docs-guo>set GIT_SSH=G:\Git\usr\bin\ssh.exe

D:\GitHub Project\awescnb-docs-guo>git push
error: cannot spawn sh: No such file or directory
Username for 'https://gitee.com': fatal: could not read Username for 'https://gitee.com': No error

D:\GitHub Project\awescnb-docs-guo>git push -f
error: cannot spawn sh: No such file or directory
Username for 'https://gitee.com': 用戶名隱藏
Password for 'https://用戶名隱藏@gitee.com':


D:\GitHub Project\awescnb-docs-guo>git push -f 【這裏強制推送也沒用,由於我用的是http地址】
error: cannot spawn sh: No such file or directory
error: cannot spawn sh: No such file or directory
Username for 'https://gitee.com': 【在這裏我按了ctrl+C終止】fatal: could not read Username for 'https://gitee.com': No error

關鍵步驟:
git配對遠程倉庫的origin分支
D:\GitHub Project\awescnb-docs-guo>git remote set-url origin git@gitee.com:用戶名隱藏/awescnb-docs.git

git配對成功,由於本地的密鑰是吻合遠程的
D:\GitHub Project\awescnb-docs-guo>git push
Enumerating objects: 87, done.
Counting objects: 100% (87/87), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (41/41), done.
Writing objects: 100% (44/44), 50.07 KiB | 1.52 MiB/s, done.
Total 44 (delta 24), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-3.8]
To gitee.com:用戶名隱藏/awescnb-docs.git
   efbfaba..ddc289f  master -> master

而後我fork過來的倉庫已經變更了,再去找原博主的倉庫,url

在他的倉庫裏點pull request,就能夠開始PR協做了。【沒截圖】spa

最後我發出了PR請求,由於原博主說我能夠隨便合併,因此我點擊了綠色按鈕:合併debug

因而個人代碼成功合併到了原博主的master裏

不懂能夠問,能夠在「投喂」或者「留言板」裏問。


方法來自【git和jupyter使用小技巧】👉 https://todebug.com/Tips/

若是你尚未克隆你的倉庫,那你直接使用ssh協議用法:
git@github.com:yourusername/yourrepositoryname克隆就好了。
【很是建議,從遠程倉庫克隆,要用ssh方式clone】

🔯本文最重要的解決BUG方法

若是已經使用https協議克隆了,那麼按照以下方法更改協議:
git remote set-url origin git@github.com:yourusername/yourrepositoryname.git

能夠解決由於用https來clone而產生的報錯error: cannot spawn sh: No such file or directory

緣由能夠回看上文


若是你偏要用https協議來克隆

那能夠進行以下操做,來幫助你省的每次都得填帳號密碼

git push 免密碼
通用狀況
1.使用文件建立用戶名和密碼

文件建立在用戶主目錄下:

touch .git-credentials【這是建立一個.開頭的隱藏文件】
vim .git-credentials
https://{username}:{password}@github.com

記得在真正輸入的時候是沒有大括號的。

2.添加git config內容

git config --global credential.helper store

執行此命令後,用戶主目錄下的.gitconfig文件會多了一項:[credential]

helper = store

從新git push就不須要用戶名密碼了。

Done!完工!

相關文章
相關標籤/搜索