Git初始化配置与连接GitHub

Git初始化配置与连接GitHub

Windows-(2.41.0)64-bit-Git下载与安装中,已经安装好了Git, 要想通过Git将本地代码或项目上传至GitHub, 还需要对Git进行一些设置,并连接到GitHub才可以,大致步骤为:

  1. GitHub新建仓库;
  2. Git的初始设置:
    (1) 用户设置;
    (2) 初始化仓库;
    (3) 本地提交仓库;
  3. Git连接到GitHub;
  4. 连接成功,并上传项目成功。

具体操作如下。

GitHub新建仓库

  1. 访问GitHub链接并登录帐号,在所示页面点击左侧栏New,或在中间栏Start a new repository位置输入仓库名,选择仓库公开属性,点击Create a new repository快速创建一个仓库。
    CreateNewRepo

  2. 如果点击左侧栏New进入新页面,依次填写相关信息,点击Create repository.
    如图所示,我创建了一个名为TempRepository的仓库,公开属性最后选择了Private.
    CreateDetails

  3. 无论从左侧栏New还是从中间栏Create, 最终都会进入这个仓库的具体页面,如下图所示:
    NewRepository

此时,GitHub仓库创建完成。

GitHub删除仓库

这部分内容不是配置Git和连接GitHub时一定会遇到的,但是以后会经常用到,可暂时跳过直接看下面Git的初化设置部分。

  1. 删除仓库则需要在仓库界面的导航栏内选择Setting.
    RemoveRepo01

  2. 新页面下拉滚动到最后,Danger Zone里有一个 Delete this repository, 点击。
    RemoveRepo02

  3. 跳出对话框,点击I want to delete this repository.
    RemoveRepo03

  4. 继续跳出对话框,点击I have read and understand these effects.
    RemoveRepo04

  5. 仍然跳出对话框,需要手动输入当前删除的仓库名以确认要删的就是这个,键入完成点击Delete this repository.
    RemoveRepo05

  6. 反复确认后需要输入密码确认是本人或本人允许的操作,点击Confirm.
    RemoveRepo06

  7. 删除仓库完成。
    RemoveRepo07

GitHub删除仓库的特定文件

这一部分是GitHub删除仓库的延申,也不是配置Git和连接GitHub会遇到的,可暂时跳过。

如果要删除某个GitHub库中的特定文件,这是不能在GitHub上操作的,只能通过Git Bash的命令行进行操作。

比如,我的GitHub中有一个库,名为TempRepository, 如下图所示:
GithubTempRepo

现在我想删除文件夹ATEMP.TXT, 具体操作如下:

  1. 输入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

  2. dir命令查看当前仓库有哪些文件夹、文件。
    dir

  3. git rm -r --cached /Pathway命令用来删除已提交的文件或文件夹,这个操作不会删除原来的文件。
    Gitrm

  4. git commit -m "Delete Folder A and TEMP.txt."命令为此次操作注释并提交。
    GitrmCommit

  5. git push -u origin main命令把删除后的仓库再次传输到GitHub端更新。
    GitrmPush

  6. 操作结束后打开GitHub查看TempRepository库的变化:
    GitHubTempReporm

    确实删除了指定文件,更新成功。

Git的初始设置

安装Git后需要对Git进行一些设置,好进行后续的操作。
首先,在任意位置运行Git Bash, 比如在桌面右键菜单处打开Git Bash.

用户设置

  1. 在命令行中依次输入git config --global user.name "goodNiph"git config --global user.email email@email.com, 每输入一条回车一次。
    其中,user.name是设置用户名,我选择与GitHub同名,输入时记得带上""双引号,user.email是设置用户邮箱,同样与GitHub使用的邮箱相同。
    结果如下:
    UserConfig

  2. --global是指全局设置,也就是说,本机上所有的Git行为都会使用这个用户信息,如果指定项目要用不同的用户信息,需要进入该项目文件夹,在那个文件夹中打开Git Bash输入git config user.name "badNiph"git config user.email liame@liame.com进行用户信息设置。

  3. 进入项目文件夹有两种方式,
    (1) 一种在文件管理器中打开文件夹位置,右键呼出菜单选择Git Bash Here, 如下所示:
    OpenProjectFolder

    (2) 另一种则是在任意位置运行Git Bash, 在命令行输入cd /Pathway, 回车即进入项目文件夹,如下所示:
    OpenProjectsFolder

  4. (1) 通过git config --list可以查询所有配置信息;
    (2) 通过git config user.name可以查询指定的配置信息;
    (3) 有任何问题可以git helpgit help optionkey查看帮助,optionkey比如config/ init等,会弹出详细的Manual Page离线介绍。不过字太多,我不太想得到用。

初始化仓库

命令行进入到项目文件夹(具体方法可参考用户设置第三条)后,输入指令git init, 回车。

这个行为将会为该项目文件夹创建一个.git文件夹,这个文件夹就不要随意动了。
GitInit

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

本地提交仓库

初始化仓库并不意味着当前文件夹的文件都已经记录到仓库里,还需要添加进仓库里。

  1. 在当前文件夹内输入指令git add filename.format, 将某一个文件filename.format添加进仓库里;
    GitAddSingleFile

    也可以使用git add --all或者git add *或者git add .把当前文件夹的所有文件一块添加到仓库里。用这个的时候要注意文件夹的大小,GitHub对大文件传输是有要求的。
    GitAddAll

  2. 文件添加后,可以通过git status命令查看当前仓库文件情况。
    GitStatus

    其中还提示git rm --cached <file>...命令可以取消已经添加进仓库的文件。

  3. 文件添加完成后,需要通过指令git commit -m "This is a commit for files added."对本次提交进行注释说明,可以不写,最好说两句。
    GitCommit

    回车后完成本次提交。

Git连接到GitHub

项目文件在本地提交到仓库后,需要将Git与GitHub连接才可以传输到GitHub的仓库里,以下是两方连接的过程。

  1. 首次安装Git可以直接在命令行中输入ssh-keygen -t rsa -C "email@email.com"生成ssh密钥,ssh密钥用于Git和GItHub之间的加密传输。
    输入指令后连续按三次回车即可,如果已经存在ssh密钥可选择是否覆盖旧的密钥。
    sshKeyGen

  2. 不记得有没有生成过ssh密钥或者不知道密钥有没有过期,可以到C:\Users\Ohhhm查看是否存在C:\Users\Ohhhm\.ssh文件夹;.ssh文件夹里是否存在id_isa文件和id_rsa.pub文件。如果没有,则同第一条输入指令生成密钥。
    id_rsa

  3. 生成密钥后,打开GitHub, 点击右上角用户头像,在下拉菜单中打开Settings.
    UserSettings

  4. 新页面的左侧导航栏中,找到SSH and GPG keys点击,在右边选择New SSH key.
    NewSSHkey

  5. 在新界面中依次输入Title(密钥名)和KeyC:\Users\Ohhhm\.ssh\id_rsa.pub文件的内容),点击Add SSH key.
    NameSSHkey

  6. 如果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

  7. ssh密钥加载完成。
    okSSHkey

  8. 验证连接是否成功,需要在Git Bash中输入指令ssh -T git@github.com, 回车后会提问是否想要继续连接,输入yes回车即可。
    ConnectSuccessfully

两方仓库关联

在GitHub中,创建好的仓库详情页里已经提示了如何将两方仓库关联起来,接下来就是按照指示进行命令行的一个输入。
CommandLine

  1. git branch -M maingit remote add origin https://github.com/goodNiph/TempRepository.git这两个命令通常不会出问题。
    Branch&Remote

    其中,remote命令输入的链接就是GitHub上TempRepository库的链接。
    RepoAccess

  2. 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.proxygit 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.

  3. 铛铛——push成功——( •̀ ω •́ )✧
    pushSuccessfully

    githubTempRepository

  4. 如果反复push相当于更新仓库,会得到以下提示:
    UpdateRepo

取消Git本地连接

对于一个已经连接到Git仓库的项目文件夹,想要取消该文件夹与Git的连接,只需要在该文件夹的路径下打开Git Bash, 输入指令find . -name ".git" | xargs rm -Rf, 回车即可。
这个操作只是取消了连接,删除了.git文件夹,文件夹里原来的内容都还在。

操作过程如下:
输入指令前:
GitrmBefore

输入指令并执行之后:
GitrmAfter

删除GitHub的SSH key

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

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

连接时遇到的一些问题

  1. 提交项目时,一次上传数据过大,超过限制,因此报错:

    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.

  2. Git添加文件到库时还遇到一个报错:

    error: open("文件名.opensdf"): Permission denied
    

    出错原因是:当时那个项目有文件被打开占用了,因此Git无法访问,保存后关闭文件重新提交就成功了。

暂时就遇到这些问题,以后再遇到问题另外记录了。

posted @ 2023-06-21 06:08  好鲅  阅读(315)  评论(0编辑  收藏  举报