将本地文件 / 文章上传到 GitHub 的流程

题图:来自 Wallhaven
Hello 大家好,我是安哥。
五一小长假到了,先祝各位五一快乐。
为了明早更好地去浪,现在就把今天要发的文章发出来,之后就可以彻底忘记「日更」这件事,放心地去浪。
今天想给大家介绍一下,使用 Git 将本地文件上传到 GitHub 仓库的流程。我相信这对绝大多数关注这个公众号的读者都是用不上的,但没关系,因为这是我想分享出来的,分享的原因有两个:
01. 这是我踩过的坑,借助网上别人分享的内容,自己折腾了好一会才大概弄明白,现在写下来,防止之后遗忘,或者下次需要用到,就可以很方便地翻出来。
02. 如果你有一天突发奇想、心血来潮地想学编程,或者你只是想将你写的东西发布到 GitHub 上,你大概率会用到 Git 和 GitHub,到时你可以来看看我写的这篇文章。
话不多说,感兴趣的朋友可以接着往下看:
首先,在 GitHub 上创建一个名为 pythonProject 的新仓库
如果你不知道如何创建一个 GitHub 仓库,可以看我之前写的这篇文章:不会代码,如何零成本搭建个人博客?
创建好 GitHub 仓库之后,我们需要在本地进行如下操作:
在本地创建一个与 GitHub 仓库同名的文件夹 pythonProject
使用终端 cd 命令进入到 pythonProject 文件夹,由于我的这个文件存放在如下图的路径中,因此在终端中输入的命令为:
cd PycharmProjects/pythonProject

接着初始化仓库 git init

将文件添加到暂存区 git add .(末尾的英文句号是有用的哦,而不是我随意打多的一个点,英文句号与 add 之间要加多一个空格)

提交添加到暂存区的文件 git commit -m"这里本次提交附带的信息,随便写点什么"

将本地的仓库与 GitHub 上创建的远端仓库进行连接 git remote add origin git@github.com:phh95/pythonProject.git

这里要穿插一个小知识点:本地与远端仓库的连接,离不开传输协议,就像你在浏览器中打开某个网站,需要用到 http 或 https 协议。
将本地仓库与远端仓库链接,这里有两种协议可供选择:https 协议或 ssh 协议。
这里我选择的是 ssh 协议,获取 ssh 协议链接的方法如下:打开拟连接的远端 GitHub 仓库,点击绿色的「Code」按钮,在打开的面板中,切换到「SSH」,点击右侧的按钮,复制 SSH 链接。复制的内容就是上面的红色文本内容:
git@github.com:phh95/pythonProject.git

接着我遵照网上的教程,运行 git push origin master ,将本地文件上传到远端仓库,它会在本地和远端同时创建一个新的分支 master。

如果这是在 2020 年 10 月 1 日以前,运行这个命令并没有什么问题,因为远端仓库默认的分支就是 master。
但从 2020 年 10 月 1 日开始,GitHub 将默认的 master 分支更名为 main。

此时,如果我们还是运行 git push origin master 这个命令,上传的内容就会提交到一个新的 master 分支而非默认的 main 分支,多出来一个不需要用到的分支,有点太多余了。
为了删除不小心创建出来的 master 分支,我进行了一番额外的操作:
运行 git pull ,将远端的 main 分支和文件拉取(同步)到本地,此时本地就会生成一个新的 main 分支。

运行 git checkout main ,切换到新的 main 分支。

运行 git branch -a ,可以查看当前的所有分支,分支名称前面带有星号 *,表明当前正处在这一分支上,即当前正处于 main 分支上。

运行 git merge master --allow-unrelated-histories ,将前面说到的多余的 master 分支合并到主分支 main 上。

合并分支并不等于删除分支,因此我们还需要运行 git branch -d master ,删除 master 分支。(这里的 d 代表 delete)

删除多余的 master 分支之后,就可以开始往 GitHub 顺畅地上传各种文件啦。
此时,运行将本地文件上传到 GitHub 经常会用到的三行命令(三个组合拳):
git add .
git commit -m"这里本次提交附带的信息,随便写点什么"
git push

到这里,为了检查本地文件是否真的上传到 GitHub,你可以同时打开本地文件夹和 GitHub 仓库,双屏显示进行比对,有图有真相:

以上。
版权声明: 本文为 InfoQ 作者【彭宏豪95】的原创文章。
原文链接:【http://xie.infoq.cn/article/1540a92658a7d52187b692c7b】。文章转载请联系作者。
评论