30 | 注册一个GitHub账号
注册网址:https://github.com/signup
使用邮箱注册即可。
31 | 配置公私钥
场景:想使用ssh协议,而不是http/https协议。
优势:不需要输入用户名和密码,公私钥匹配即身份验证成功。
步骤🌟:Adding a new SSH key to your GitHub account——Github Docs
- 本地生成公私钥👉上传公钥到Github上
我针对SSH原理写的文章:SSH免密登录的实现和本质思考——DoubleLLL3
32 | 在GitHub上创建个人仓库
步骤🌟:Create a repo——Github Docs
❗️:
- Owner还可以选择你所在的组织
- Public只是对外可见,提交权限都需要单独配置
- README文件有利于仓库被搜索引擎检索
- 如果本地已经有README文件,则不建议勾选Add a README file,避免冲突
- Licenses:没有 License 的内容默认是被版权保护的
- MIT License是一个宽松的License ,允许别人用你的代码做任何事情,但必须保证你的所有权,并且你无须承担代码使用产生的风险
- 参考如何为自己的 Github 项目选择开源许可证?——知乎
33 | 把本地仓库同步到GitHub
步骤:添加远端服务器->拉取合并❗️->推送
添加远端服务器:
git remote add github git@github.com:doubleLLL3/git_learning.git
其中,github
是远端别名,后面跟上对应的https或者ssh地址,可以在Github上复制一下。
上一节中,最后我选择添加一个MIT License创建了仓库。(为下文埋下了伏笔)
通过 git remote -v
查看远端服务器列表:
添加成功!
此时,git push github --all
,本地直接推送会报错:
除了master分支,其他分支都成功推送。
Git对错误给出了明确的提示:需要先拉取。
PS:如果远端分支不是本地分支的祖先,那它俩就不是fast-forwards了。反之,它俩就是fast-forwards的关系,一般需要通过 rebase
或者 merge
解决。
所以先拉取: git fetch github
成功拉取远端github的master分支,此时通过 gitk --all
查看分支图:
可以发现github端的master分支并没有和本地的master分支建立关系。
此时通过变基或者合并关联两个master分支:
git checkout master
:先确保切换到了master分支
git merge github/master --allow-unrelated-histories
:合并远端master分支到本地master分支里,输入commit信息即可。
⚠️:需要--allow-unrelated-histories
明确允许合并的两个分支是没有关联的。
此时再通过 gitk --all
查看分支图:
关系建立成功,此时master的最新commit有两个父commit。
🌟 : git pull
则包含了 git fetch
和 git merge
两步,也可以 git pull --rebase
包含git fetch
和 git rebase
两步。
最后推送master分支即可: git push github master
再来看看我们的Github仓库:
新增加的文件是不是很眼熟了呢~
至此,我们已经和Github打上交道了!