Git初始化配置与连接GitHub
Git初始化配置与连接GitHub
在Windows-(2.41.0)64-bit-Git下载与安装中,已经安装好了Git, 要想通过Git将本地代码或项目上传至GitHub, 还需要对Git进行一些设置,并连接到GitHub才可以,大致步骤为:
- GitHub新建仓库;
- Git的初始设置:
(1) 用户设置;
(2) 初始化仓库;
(3) 本地提交仓库; - Git连接到GitHub;
- 连接成功,并上传项目成功。
具体操作如下。
GitHub新建仓库
-
访问GitHub链接并登录帐号,在所示页面点击左侧栏
New,或在中间栏Start a new repository位置输入仓库名,选择仓库公开属性,点击Create a new repository快速创建一个仓库。
![CreateNewRepo]()
-
如果点击左侧栏
New进入新页面,依次填写相关信息,点击Create repository.
如图所示,我创建了一个名为TempRepository的仓库,公开属性最后选择了Private.
![CreateDetails]()
-
无论从左侧栏
New还是从中间栏Create, 最终都会进入这个仓库的具体页面,如下图所示:
![NewRepository]()
此时,GitHub仓库创建完成。
GitHub删除仓库
这部分内容不是配置Git和连接GitHub时一定会遇到的,但是以后会经常用到,可暂时跳过直接看下面Git的初化设置部分。
-
删除仓库则需要在仓库界面的导航栏内选择
Setting.
![RemoveRepo01]()
-
新页面下拉滚动到最后,
Danger Zone里有一个Delete this repository, 点击。
![RemoveRepo02]()
-
跳出对话框,点击
I want to delete this repository.
![RemoveRepo03]()
-
继续跳出对话框,点击
I have read and understand these effects.
![RemoveRepo04]()
-
仍然跳出对话框,需要手动输入当前删除的仓库名以确认要删的就是这个,键入完成点击
Delete this repository.
![RemoveRepo05]()
-
反复确认后需要输入密码确认是本人或本人允许的操作,点击
Confirm.
![RemoveRepo06]()
-
删除仓库完成。
![RemoveRepo07]()
GitHub删除仓库的特定文件
这一部分是GitHub删除仓库的延申,也不是配置Git和连接GitHub会遇到的,可暂时跳过。
如果要删除某个GitHub库中的特定文件,这是不能在GitHub上操作的,只能通过Git Bash的命令行进行操作。
比如,我的GitHub中有一个库,名为TempRepository, 如下图所示:

现在我想删除文件夹A和TEMP.TXT, 具体操作如下:
-
输入
git pull origin main命令查看已经提交的项目文件。
![GitPull]()
另外,如果在
pull的时候提示:fatal: couldn't find remote ref master要把输入的
git pull origin master改成git pull origin main才行,因为以前GitHub主分支叫master, 现在叫main, 搜索时可能搜到了以前的pull指令导致找不到master分支而报错。git branch -r命令用来远程查看仓库分支。
![GitBranch]()
-
dir命令查看当前仓库有哪些文件夹、文件。
![dir]()
-
git rm -r --cached /Pathway命令用来删除已提交的文件或文件夹,这个操作不会删除原来的文件。
![Gitrm]()
-
git commit -m "Delete Folder A and TEMP.txt."命令为此次操作注释并提交。
![GitrmCommit]()
-
git push -u origin main命令把删除后的仓库再次传输到GitHub端更新。
![GitrmPush]()
-
操作结束后打开GitHub查看
TempRepository库的变化:
![GitHubTempReporm]()
确实删除了指定文件,更新成功。
Git的初始设置
安装Git后需要对Git进行一些设置,好进行后续的操作。
首先,在任意位置运行Git Bash, 比如在桌面右键菜单处打开Git Bash.
用户设置
-
在命令行中依次输入
git config --global user.name "goodNiph"和git config --global user.email email@email.com, 每输入一条回车一次。
其中,user.name是设置用户名,我选择与GitHub同名,输入时记得带上""双引号,user.email是设置用户邮箱,同样与GitHub使用的邮箱相同。
结果如下:
![UserConfig]()
-
--global是指全局设置,也就是说,本机上所有的Git行为都会使用这个用户信息,如果指定项目要用不同的用户信息,需要进入该项目文件夹,在那个文件夹中打开Git Bash输入git config user.name "badNiph"和git config user.email liame@liame.com进行用户信息设置。 -
进入项目文件夹有两种方式,
(1) 一种在文件管理器中打开文件夹位置,右键呼出菜单选择Git Bash Here, 如下所示:
![OpenProjectFolder]()
(2) 另一种则是在任意位置运行
Git Bash, 在命令行输入cd /Pathway, 回车即进入项目文件夹,如下所示:
![OpenProjectsFolder]()
-
(1) 通过
git config --list可以查询所有配置信息;
(2) 通过git config user.name可以查询指定的配置信息;
(3) 有任何问题可以git help或git help optionkey查看帮助,optionkey比如config/init等,会弹出详细的Manual Page离线介绍。不过字太多,我不太想得到用。
初始化仓库
命令行进入到项目文件夹(具体方法可参考用户设置第三条)后,输入指令git init, 回车。
这个行为将会为该项目文件夹创建一个.git文件夹,这个文件夹就不要随意动了。

如果没有看见.git文件夹,可在文件管理器的导航栏->查看->显示->显示隐藏的项目点击后显示。

本地提交仓库
初始化仓库并不意味着当前文件夹的文件都已经记录到仓库里,还需要添加进仓库里。
-
在当前文件夹内输入指令
git add filename.format, 将某一个文件filename.format添加进仓库里;
![GitAddSingleFile]()
也可以使用
git add --all或者git add *或者git add .把当前文件夹的所有文件一块添加到仓库里。用这个的时候要注意文件夹的大小,GitHub对大文件传输是有要求的。
![GitAddAll]()
-
文件添加后,可以通过
git status命令查看当前仓库文件情况。
![GitStatus]()
其中还提示
git rm --cached <file>...命令可以取消已经添加进仓库的文件。 -
文件添加完成后,需要通过指令
git commit -m "This is a commit for files added."对本次提交进行注释说明,可以不写,最好说两句。
![GitCommit]()
回车后完成本次提交。
Git连接到GitHub
项目文件在本地提交到仓库后,需要将Git与GitHub连接才可以传输到GitHub的仓库里,以下是两方连接的过程。
-
首次安装Git可以直接在命令行中输入
ssh-keygen -t rsa -C "email@email.com"生成ssh密钥,ssh密钥用于Git和GItHub之间的加密传输。
输入指令后连续按三次回车即可,如果已经存在ssh密钥可选择是否覆盖旧的密钥。
![sshKeyGen]()
-
不记得有没有生成过ssh密钥或者不知道密钥有没有过期,可以到
C:\Users\Ohhhm查看是否存在C:\Users\Ohhhm\.ssh文件夹;.ssh文件夹里是否存在id_isa文件和id_rsa.pub文件。如果没有,则同第一条输入指令生成密钥。
![id_rsa]()
-
生成密钥后,打开GitHub, 点击右上角用户头像,在下拉菜单中打开
Settings.
![UserSettings]()
-
新页面的左侧导航栏中,找到
SSH and GPG keys点击,在右边选择New SSH key.
![NewSSHkey]()
-
在新界面中依次输入
Title(密钥名)和Key(C:\Users\Ohhhm\.ssh\id_rsa.pub文件的内容),点击Add SSH key.
![NameSSHkey]()
-
如果
C:\Users\Ohhhm\.ssh\id_rsa.pub文件无法打开,可以通过Win+R打开命令运行框,打开cmd后,输入指令cd C:\Users\Ohhhm\.ssh,输入type id_rsa.pub显示文件内容,任何复制到GitHub页面中Key的位置。
又或者,在C:\Users\Ohhhm\.ssh文件夹中单击右键,选择在终端打开,输入type id_rsa.pub显示文件内容。
![typeRSA]()
-
ssh密钥加载完成。
![okSSHkey]()
-
验证连接是否成功,需要在
Git Bash中输入指令ssh -T git@github.com, 回车后会提问是否想要继续连接,输入yes回车即可。
![ConnectSuccessfully]()
两方仓库关联
在GitHub中,创建好的仓库详情页里已经提示了如何将两方仓库关联起来,接下来就是按照指示进行命令行的一个输入。

-
git branch -M main和git remote add origin https://github.com/goodNiph/TempRepository.git这两个命令通常不会出问题。
![Branch&Remote]()
其中,
remote命令输入的链接就是GitHub上TempRepository库的链接。
![RepoAccess]()
-
git push -u origin main命令通常会报一些错误,大多数是因为网络问题。
包括但不限于:fatal: unable to access 'https://github.com/goodNiph/TempRepository.git/': Recv failure: Connection was reset fatal: unable to access 'https://github.com/goodNiph/TempRepository.git/': Failed to connect to github.com port 443 after 21027 ms: Couldn't connect to server我尝试过有效的解决办法如下:
(1)git config --global --unset http.proxy和git config --global --unset https.proxy解除代理后重新照旧git push一次;
![UnsetProxy]()
(2) 关掉打开的vpn后重新
push;
(3) 网上还有一种是在(1)的基础上打开cmd, 输入ipconfig/flushdns刷新DNS缓存后再重新push, 我没有试过,因为(1)基本就能够成功。
(4) 网上另一种方法是说把之前remote的删除,重新remote一遍,以后有机会可以试试。
删除之前的remote使用git remote remove origin命令;
删除后再使用git remote add origin https://github.com/goodNiph.TempRepository.git命令重新远程连接;
连接好以后再次push. -
铛铛——
push成功——( •̀ ω •́ )✧
![pushSuccessfully]()
![githubTempRepository]()
-
如果反复
push相当于更新仓库,会得到以下提示:
![UpdateRepo]()
取消Git本地连接
对于一个已经连接到Git仓库的项目文件夹,想要取消该文件夹与Git的连接,只需要在该文件夹的路径下打开Git Bash, 输入指令find . -name ".git" | xargs rm -Rf, 回车即可。
这个操作只是取消了连接,删除了.git文件夹,文件夹里原来的内容都还在。
操作过程如下:
输入指令前:

输入指令并执行之后:

删除GitHub的SSH key
GitHub上进入Settings, 找到SSH and GPG keys, 在右侧点击Delete进行SSH key的删除。

接着会弹出对话框,再次确认要删除SSH key, 点击I understand, please delete this SSH key, 即可删除成功。

连接时遇到的一些问题
-
提交项目时,一次上传数据过大,超过限制,因此报错:
batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access.解决办法:
(1) 掏钱扩容;
(2) 重新提交项目,少量多次地push文件;
(3) GitHub上删除整个Repository来恢复Git LFS Data. -
Git添加文件到库时还遇到一个报错:
error: open("文件名.opensdf"): Permission denied出错原因是:当时那个项目有文件被打开占用了,因此Git无法访问,保存后关闭文件重新提交就成功了。
暂时就遇到这些问题,以后再遇到问题另外记录了。







































浙公网安备 33010602011771号