github的基础使用
1. 連接GitHub
在創建github賬戶后,我們一般生成公私鑰通過ssh協議來連接github。
檢查本地公私鑰是否存在
? ? ? ?首先我們要檢查本地是否已經生成了公私鑰,打開git bash ,然后輸入ls -al ~/.ssh,如果我們看到存在id_rsa和id_rsa.pub文件,說明已存在公私鑰。如果不存在就需要手動生成公私鑰。
上傳公鑰
然后把公鑰文件里內容粘貼到github即可。
測試連接
打開Git Bash,輸入ssh -T git@github.com,如果出現以下內容并且能看到你的github賬戶名稱,說明ssh配置成功。
連接到不同的遠程倉庫
如果你已經有了一套名為 id_rsa 的公秘鑰,想要生成另外一對公私鑰用于連接另一個遠程倉庫,比如連接公司的github倉庫,該怎么辦呢?
步驟如下:
1、生成一個新的自定義名稱的公鑰:
ssh-keygen -t rsa -b 4096 -C "YOUR_EMAIL@YOUREMAIL.COM" -f ~/.ssh/new執行命令后,生成命名的公鑰和生成默認公鑰的步驟一樣。
執行完成后,會在 ~/.ssh/目錄下生成一個 new 和 new.pub 文件。
2、在 SSH 用戶配置文件 ~/.ssh/config 中指定對應服務所使用的公秘鑰名稱,如果沒有 config 文件就新建一個,并輸入以下內容:
# Default github user(first@mail.com) Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa# aysee (company_email@mail.com) Host github-new HostName github.com User git IdentityFile ~/.ssh/new3、添加 new.pub 到你的新git服務器網站上。
4、測試配置文件是否正常工作
ssh -T git@github.com如果正常的話,會出現如下提示:
Hi USERNAME! You've successfully authenticated, but github does not provide shell access.如果出現如下提示,則說明有權限問題:
Permission denied (publickey)這時你對項目執行push操作的時候,會得到如下提示:
Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts. Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.多用戶時出現權限問題的原因:
github使用SSH與客戶端連接。如果是單用戶(first),生成密鑰對后,將公鑰保存至 GitHub ,每次連接時SSH客戶端發送本地私鑰(默認~/.ssh/id_rsa)到服務端驗證。單用戶情況下,連接的服務器上保存的公鑰和發送的私鑰自然是配對的。但是如果是多用戶 (first,second),我們在連接到second的帳號時,second保存的是自己的公鑰,但是SSH客戶端依然發送默認私鑰,即first的私鑰,那么這個驗證自然無法通過。
5、添加ssh-agent
先查看是否有代理,輸入ssh-add -l,如果輸出 The agent has no identities. 則表示沒有代理。如果系統有代理,可以執行下面的命令清除代理:ssh-add -D
把兩個公私鑰添加到agent,分別運行下面兩個命令:
2. 如何把本地項目上傳到github
在github上建立倉庫
建議增加readme文件,github搜索時會根據關鍵字查詢你項目的readme文件;license選用MIT開源協議隨便用。
本地添加remote分支
在本地增加remote分支git remote add origin git@github.com:xxx/git_test.git ,從github上復制ssh協議的倉庫地址,并用origin 來指代它。(可以使用git branch -av來查看,a指包括remote分支)。
下載遠程分支
然后使用git fetch origin來把遠程倉庫的內容先down下來。pull相當于fetch+merge。
由于遠程倉庫已經存在文件,所以需要將遠程倉庫文件內容先合并到本地分支git merge --allow-unrelated-histories origin/master master(稱為fast-foward),或者- -rebase也可以。
關聯本地分支到remote對應分支
然后需要指明本地哪個分支和remote的master分支關聯,因此需要git push --set-upstream origin master或者git push -u origin master,這樣設定后,本地master分支和remote的origin/master對應,在本地master分支進行pull或push操作就不需要再指定remote地址了。`
結果如下圖:
Branch 'master' set up to track remote branch 'master' from 'origin'接著就可以愉快地push了!
提交時的默認規范
提交信息一般加上前綴,
WIP是work in process正在開發中的意思,提示不要被誤合并。
feat是feature的意思,一個新特性或功能
3. github容易被忽視的亮點
- 快捷鍵
在GitHub頁面點擊shift+/,可以查看當前頁面的快捷鍵,利用這些快捷鍵用來裝逼很合適,哈哈
- Gist
可以創建零碎的代碼片段,用來保存,分享,fork,挺方便的。注意被墻了,要翻墻或者百度解決辦法。 - Expore
GitHub為你推薦的當前熱門項目,挺不錯的,沒事瀏覽瀏覽,擴展對前沿熱門項目和技術的了解。
4. 如何在github上快速淘到感興趣的開源項目
簡單來說就是一定要善于使用github的高級搜索Advanced search,即:
2.1 根據倉庫屬性來搜索
- 一定要使用readme
在搜索時 加上in:readme,github會在各個倉庫的readme文件中查找匹配,大大提高搜索的準確度。 - 使用stars的數量
stars:>1000 只搜索stars大于1000的開源項目。這點感覺非常好用,大大減少搜索出的結果數量。
以上可以組合使用如:blog easily start in:readme starts:>5000 搜索出readme中也包含blog easily start關鍵字且starts大于5000的倉庫。
2.2 根據code屬性來搜索
- 搜索代碼中含有指定文件名的代碼
filename:rabbitMqConfig會搜索出代碼中含有rabbitMqConfig文件名的代碼,注意是代碼不再是根據倉庫的屬性來搜索了。
總結
以上是生活随笔為你收集整理的github的基础使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git(一) 基础必备
- 下一篇: http从发出请求到接收响应的旅行