最近终于又想起GitHub,想上传代码和项目到仓库里。
由于很早之前有在本地连接过GitHub(但没怎么用),现在需要重新搞起(操作忘得差不多)。
在看教程实操的过程中遇到了一些小问题,遂记录一下。
前置操作
- 本地下载安装 Git:官网链接;
- 在 GitHub 上创建新仓库(New repository)。
添加SSH
首先,右键 Git Bash Here 打开一个Git的命令窗口。
- 绑定用户
由于我以前用过,已经绑定了,可以跳过这部。
用以下命令,可以查看是否有绑定。有user.name
和usere.mail
说明绑定成功。
git config --global --list
绑定命令如下,其中 user.name
与usere.mail
是自己 GitHub 的用户名与邮箱。
git config --global --unset user.name "user.name"
git config --global --unset user.email "user.email"
- 生成SSH key
输入以下指令,生成 GitHub 的 SSH key。
其中,"user.email"
是自己 GitHub 的邮箱。
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "user.email"
这是成功的截图。
在这里我遇到了一个问题。
由于以前生成过一个 SSH key,跳过这步执行后面的步骤一直出错,所以只好删除重新生成一个才可以。
在 C盘 > Users > 用户名 > .ssh
文件夹下,有 id_rsa.pub
文件,说明SSH Key 生成成功。有问题,就把这个文件删了,再重复上面步骤重新生成一个。
接下来就是打开 id_rsa.pub
文件,把里面的秘钥内容复制到GitHub的 SSH Key 里。
点击 GitHub头像 > 设置(Settings)> SSH and GPG keys
,新建一个 SSH Key(New SSH Key)。
- 检查密钥是否配置成功
输入以下命令进行检查,如果成功,最后会有 successfully 的提示。
ssh -T git@github.com
在这里又遇到一个问题。
可能是没复制对(也可能是其他原因,不知道),结果遇到 git@github.com: Permission denied (publickey). 的报错。
百度了说我是 SSH 公钥没有正确配置在 GitHub 上( SSH 密钥与 GitHub 账户没有正确关联)。
所以在命令框里用命令重新复制了一次,终于没问题成功了。
cat ~/.ssh/id_rsa.pub
部署本地仓库
- 初始化本地仓库
在本地自己喜欢的位置创建一个文件夹,作为 GitHub 的本地仓库。然后进入文件夹里,再次右键 Git Bash Here 打开一个Git的命令窗口。
使用命令,让该文件夹成为 Git 可以管理的仓库。
git init
之后,文件夹里会生成一个 .git
文件夹,用于管理版本库。
- 关联GitHub仓库
命令如下,其中 仓库地址 的名字,在自己的仓库 > Code > Local > SSH
底下可以找到。
"origin"
是仓库的别名,可以就用 origin,也可以自己起一个名字代替。
git remote add origin "仓库地址"
这个操作结束后,就可以愉快地把本地项目上传或者下载仓库里的内容了。
仓库克隆(下载)
- 输入命令下载仓库里的项目,仓库地址如上截图。
git clone "仓库地址"
本地上传
- 上传至缓存空间
进入仓库所在文件夹,如 通过命令cd 文件夹路径
进入。
使用命令,将目录下的所有文件都放到缓存空间。
git add .
在提交的过程中,又遇到了问题。
显示 LF will be replaced by CRLF the next time Git touches it 报错。
搜了下,好像是不同平台的回车换行符不兼容所致。我是Window系统,跟Linux系统的换行符不一样。
输入以下命令就可以解决问题。
git config --global core.autocrlf true
- 添加备注
如果需要,对提交的内容进行备注,备注的内容会在上传后显示在 Last commit message 中。
git commit -m "备注内容"
- 推送上传
这里需要注意一下,main
是分支的名字,如果有其他分支,并且要上传到别的分支,就把main改成别的分支的名字。
git push -u origin main
我在这里叕遇到了一个问题!!!
一开始是copy别人的命令 git push -u origin master
,结果遇到了 error: src refspec master does not match any error: failed to push some refs to 报错。
原因是,我的GitHub上不存在 master 分支,将 master 改成正确的分支名字就好。在这里可以看到分支的名称。
然后看到一个有趣的小知识。
Github远程分支默认为:main。
Gitee远程分支默认为:master。
push成功后,刷新GitHub仓库的页面,就可以看到上传的内容了!
参考教程
- CSDN - GitHub搭建仓库并上传本地代码
- CSDN - 超详细——入门Github的代码上传
- CSDN - 程序员必备技能之上传代码至仓库(Github篇)
- CSDN - Git与GitHub,实现远程上传、下拉、更新项目
- 知乎 - github提示Permission denied (publickey),如何才能解决?
- CSDN - Git: ‘LF will be replaced by CRLF the next time Git touches it‘ 问题解决办法
- 博客园 - git push解决 error src refspec master does not match anyerror