今天嘗試把git與GitHub聯系起來,方便后續往GitHub上面推送項目。過程中踩了幾個坑,記錄一下:
一、生成 GitHub--SSH-公鑰
1、在git中用命令行 ssh-keygen -t rsa -C 'your email address'
- 文件名稱及位置選擇默認,enter即可。
- passphrase一定要寫,其實可以跳過,但是有密碼更安全不是,但就是這個密碼,又給自己埋下了坑。
2、拷貝上面的/.ssh/id_rsa.pub到GitHub上,位置見如下截圖:
二、設置remote GitHub(坑一):
這個時候,需要在git 上設置remote地址:
SSH : git remote add orgin ssh://github.com:your github account/your repository HTTPS: git remote add orgin https://github.com/your github account/your repository
區分了添加https和ssh兩種方式,區別就在於:
ssh:不需要每次提交的時候都輸入username和passphrase
https:每次都需要輸入一遍username和passphrase。
而我一開始手滑選擇了https,導致每次提交都要重新輸入密碼和用戶名,所以后來就切換到了ssh模式下。具體怎么切網上有很多教程,不再贅述。
然后,push想要push的東西即可:
git push -u origin master # -u 只有首次提交的時候需要,后續再次push可以省略
三、開始編寫及提交代碼(坑二)
仍然每次都需要填寫密碼:
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa'。
說好的ssh不需要密碼呢??
翻了一些教程,有的說干脆重新設置為無密碼,這樣就不需要每次都輸入了,個人覺得這是個辦法,不是最優解。下面把我最后的解法貼下來,這個方法的原理就是托管一個代理替你保存密碼,我的系統是centos7.6:
# 1、先打開代理,如果你已經打開,那么直接運行命令2即可: eval $(ssh-agent) #2、輸入下面命令,然后再次輸入密碼即可,大功告成 ssh-add ~/.ssh/id_rsa
至此,我們就可以輕松地提交代碼了。
四、另外還有一些小問題,順手記錄下來:
在提交完代碼后,會提示這個警告:
warning: push.default 未設置,它的默認值將會在 Git 2.0 由 'matching'
修改為 'simple'。若要不再顯示本信息並在其默認值改變后維持當前使用習慣,
進行如下設置:
git config --global push.default matching
若要不再顯示本信息並從現在開始采用新的使用習慣,設置:
git config --global push.default simple
參見 'git help config' 並查找 'push.default' 以獲取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有時要使用老版本的 Git,
為保持兼容,請用 'current' 代替 'simple' 模式)
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
Gogs: Internal error
Failed to execute git command: exit status 128
error: 無法推送一些引用到 'git@softlab.sdut.edu.cn:daijingxin/addressbook.git'
git push.default設置
這個問題也很容易解決:
# 運行這個命令: git config --global push.default simple # 或者這個命令: git config --global push.default matching #區別在於, 前者只提交你當前所在的分支,而后者會提交本地所有的分支
-
出現警告:Warning:Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
這個問題出現的原因猜測是因為GitHub是境外網站導致的,不解決沒有大礙,但是看着別扭。
# Linux下的修改: vi /etc/hosts insert 13.229.188.59 github.com