Bo2SS

Bo2SS

3 Git与GitHub的简单同步

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

image

❗️:

  • Owner 还可以选择你所在的组织
  • Public 只是对外可见,提交权限都需要单独配置
  • README 文件有利于仓库被搜索引擎检索
  • 如果本地已经有 README 文件,则不建议勾选 Add a README file,避免冲突
  • Licenses:没有 License 的内容默认是被版权保护的

33 | 把本地仓库同步到 GitHub#

步骤:添加远端服务器 -> 拉取合并❗️-> 推送


添加远端服务器:

git remote add github [email protected]:doubleLLL3/git_learning.git

其中,github 是远端别名,后面跟上对应的 https 或者 ssh 地址,可以在 Github 上复制一下。

image

上一节中,最后我选择添加一个 MIT License 创建了仓库。(为下文埋下了伏笔)

通过 git remote -v 查看远端服务器列表:

image

添加成功!

此时,git push github --all ,本地直接推送会报错:

image

除了 master 分支,其他分支都成功推送。

Git 对错误给出了明确的提示:需要先拉取。

PS:如果远端分支不是本地分支的祖先,那它俩就不是 fast-forwards 了。反之,它俩就是 fast-forwards 的关系,一般需要通过 rebase 或者 merge 解决。

所以先拉取: git fetch github

image

成功拉取远端 github 的 master 分支,此时通过 gitk --all 查看分支图:

image

可以发现 github 端的 master 分支并没有和本地的 master 分支建立关系。

此时通过变基或者合并关联两个 master 分支:

git checkout master :先确保切换到了 master 分支

git merge github/master --allow-unrelated-histories :合并远端 master 分支到本地 master 分支里,输入 commit 信息即可。

⚠️:需要--allow-unrelated-histories 明确允许合并的两个分支是没有关联的。

此时再通过 gitk --all 查看分支图:

image

关系建立成功,此时 master 的最新 commit 有两个父 commit。

🌟 : git pull 则包含了 git fetchgit merge 两步,也可以 git pull --rebase 包含git fetchgit rebase 两步。

最后推送 master 分支即可: git push github master


再来看看我们的 Github 仓库:

image

新增加的文件是不是很眼熟了呢~

至此,我们已经和 Github 打上交道了!

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。