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 [email protected]: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 打上交道了!