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
快速创建一个仓库。
-
如果点击左侧栏
New
进入新页面,依次填写相关信息,点击Create repository
.
如图所示,我创建了一个名为TempRepository
的仓库,公开属性最后选择了Private
.
-
无论从左侧栏
New
还是从中间栏Create
, 最终都会进入这个仓库的具体页面,如下图所示:
此时,GitHub仓库创建完成。
GitHub删除仓库
这部分内容不是配置Git和连接GitHub时一定会遇到的,但是以后会经常用到,可暂时跳过直接看下面Git的初化设置
部分。
-
删除仓库则需要在仓库界面的导航栏内选择
Setting
.
-
新页面下拉滚动到最后,
Danger Zone
里有一个Delete this repository
, 点击。
-
跳出对话框,点击
I want to delete this repository
.
-
继续跳出对话框,点击
I have read and understand these effects
.
-
仍然跳出对话框,需要手动输入当前删除的仓库名以确认要删的就是这个,键入完成点击
Delete this repository
.
-
反复确认后需要输入密码确认是本人或本人允许的操作,点击
Confirm
.
-
删除仓库完成。
GitHub删除仓库的特定文件
这一部分是GitHub删除仓库
的延申,也不是配置Git和连接GitHub会遇到的,可暂时跳过。
如果要删除某个GitHub库中的特定文件,这是不能在GitHub上操作的,只能通过Git Bash
的命令行进行操作。
比如,我的GitHub中有一个库,名为TempRepository
, 如下图所示:
现在我想删除文件夹A
和TEMP.TXT
, 具体操作如下:
-
输入
git pull origin main
命令查看已经提交的项目文件。
另外,如果在
pull
的时候提示:fatal: couldn't find remote ref master
要把输入的
git pull origin master
改成git pull origin main
才行,因为以前GitHub主分支叫master
, 现在叫main
, 搜索时可能搜到了以前的pull
指令导致找不到master
分支而报错。git branch -r
命令用来远程查看仓库分支。
-
dir
命令查看当前仓库有哪些文件夹、文件。
-
git rm -r --cached /Pathway
命令用来删除已提交的文件或文件夹,这个操作不会删除原来的文件。
-
git commit -m "Delete Folder A and TEMP.txt."
命令为此次操作注释并提交。
-
git push -u origin main
命令把删除后的仓库再次传输到GitHub端更新。
-
操作结束后打开GitHub查看
TempRepository
库的变化:
确实删除了指定文件,更新成功。
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使用的邮箱相同。
结果如下:
-
--global
是指全局设置,也就是说,本机上所有的Git行为都会使用这个用户信息,如果指定项目要用不同的用户信息,需要进入该项目文件夹,在那个文件夹中打开Git Bash
输入git config user.name "badNiph"
和git config user.email liame@liame.com
进行用户信息设置。 -
进入项目文件夹有两种方式,
(1) 一种在文件管理器中打开文件夹位置,右键呼出菜单选择Git Bash Here
, 如下所示:
(2) 另一种则是在任意位置运行
Git Bash
, 在命令行输入cd /Pathway
, 回车即进入项目文件夹,如下所示:
-
(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
添加进仓库里;
也可以使用
git add --all
或者git add *
或者git add .
把当前文件夹的所有文件一块添加到仓库里。用这个的时候要注意文件夹的大小,GitHub对大文件传输是有要求的。
-
文件添加后,可以通过
git status
命令查看当前仓库文件情况。
其中还提示
git rm --cached <file>...
命令可以取消已经添加进仓库的文件。 -
文件添加完成后,需要通过指令
git commit -m "This is a commit for files added."
对本次提交进行注释说明,可以不写,最好说两句。
回车后完成本次提交。
Git连接到GitHub
项目文件在本地提交到仓库后,需要将Git与GitHub连接才可以传输到GitHub的仓库里,以下是两方连接的过程。
-
首次安装Git可以直接在命令行中输入
ssh-keygen -t rsa -C "email@email.com"
生成ssh密钥,ssh密钥用于Git和GItHub之间的加密传输。
输入指令后连续按三次回车即可,如果已经存在ssh密钥可选择是否覆盖旧的密钥。
-
不记得有没有生成过ssh密钥或者不知道密钥有没有过期,可以到
C:\Users\Ohhhm
查看是否存在C:\Users\Ohhhm\.ssh
文件夹;.ssh
文件夹里是否存在id_isa
文件和id_rsa.pub
文件。如果没有,则同第一条输入指令生成密钥。
-
生成密钥后,打开GitHub, 点击右上角用户头像,在下拉菜单中打开
Settings
.
-
新页面的左侧导航栏中,找到
SSH and GPG keys
点击,在右边选择New SSH key
.
-
在新界面中依次输入
Title
(密钥名)和Key
(C:\Users\Ohhhm\.ssh\id_rsa.pub
文件的内容),点击Add SSH key
.
-
如果
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
显示文件内容。
-
ssh密钥加载完成。
-
验证连接是否成功,需要在
Git Bash
中输入指令ssh -T git@github.com
, 回车后会提问是否想要继续连接
,输入yes
回车即可。
两方仓库关联
在GitHub中,创建好的仓库详情页里已经提示了如何将两方仓库关联起来,接下来就是按照指示进行命令行的一个输入。
-
git branch -M main
和git remote add origin https://github.com/goodNiph/TempRepository.git
这两个命令通常不会出问题。
其中,
remote
命令输入的链接就是GitHub上TempRepository
库的链接。
-
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
一次;
(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
成功——( •̀ ω •́ )✧
-
如果反复
push
相当于更新仓库,会得到以下提示:
取消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无法访问,保存后关闭文件重新提交就成功了。
暂时就遇到这些问题,以后再遇到问题另外记录了。