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配置成功。> Hi username! You've successfully authenticated, but GitHub does not > provide shell access.
连接到不同的远程仓库
如果你已经有了一套名为 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/new
3、添加 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,分别运行下面两个命令:
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/new
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文件名的代码,注意是代码不再是根据仓库的属性来搜索了。
1万+



被折叠的 条评论
为什么被折叠?



