vscode连接github

vscode连接github.com

文章目录


前言

许久没用,回忆一下,并且提高深度

:在保证一定深度的情况下,保证好广度


一、git下载与安装

二、在github上建一个仓库

三、git命令(项目根目录里面)

3.1 git init

初始化本地库,git的逻辑是在本地项目里面会有一个隐藏的.git文件。是先往.git文件里面输入,最后push到github.com/...

git init会将本地分支默认命名为master,可以通过git branch -m master newname 来进行

git help可以查看各命令

3.2 git add .

当使用 git add 命令将文件添加到暂存区时,Git 会为这些文件生成 blob 对象,即文件内容的快照,并将它们存储在 .git/objects 目录中。此时,index 文件会保存这些文件的引用以及文件的状态信息

git将项目中所有已经更改了的文件放入暂缓区

暂缓区是一个逻辑概念,并不是存入到一个物理的实际上的区域,相当于是将对应的文件添加了一个状态字段,此字段表示暂缓区状态。

git add的时候,git会为所添加的文件生成一个快照,此快照会放到.git/index里面,

index中存储的是关于文件的元数据信息和文件内容的哈希值以及文件状态信息

commit之前的index:

3.3 git commit -m "initial commit"

此命令运行的时候,暂缓区的内容会被打包成一个commit,并且会生成一个tree对象

每个文件夹都有自己的tree对象,是一个嵌套关系

如果项目中有多个目录或子目录,每个目录都会生成自己的 tree 对象,导致 .git/objects/ 中存储多个 tree 对象的文件

Git 中每个 tree 对象都会根据其内容生成一个唯一的哈希值,并将其存储在 .git/objects/ 目录中。

假设一个 tree 对象的哈希值是 24b9da6552252987aa493b52f8696cd6d3b012dd,则该 tree 对象会存储在 .git/objects/24/ 目录下,文件名为 b9da6552252987aa493b52f8696cd6d3b012dd

新的提交对象会被添加到 Git 的历史记录中,形成一条指向之前提交的链。每个提交都有一个唯一的 SHA-1 哈希值,标识该提交。

在完成提交后,Git 会清空暂存区的内容,准备好接受下一次的更改和添加。此时,暂存区不再包含任何文件的状态,因为所有已暂存的文件都已被记录为新的提交。

Git 会根据暂存区的内容生成一个新的提交对象(commit object),其中包含了所有在暂存区的文件快照的哈希值。这些快照代表了在该次提交时所有文件的状态,这个 commit 对象同样会被存储在 .git/objects/ 目录中

commit之后的index:

3.4 git remote add origin [remote repository URL]

连接远程仓库,命名为origin

可以通过git remote -v查看当前远程仓库列表

.git/config 文件:当你执行 git remote add 命令时,Git 会在 .git/config 文件中记录远程仓库信息。

git remote指令只会修改config

.git/refs/remotes/origin/ 目录:这个目录在你进行 git fetch 或 git pull 操作时会被创建和更新,它用于存储远程分支的引用。执行 git remote add 仅仅是添加远程仓库的 URL,暂时不会创建这个目录

3.5 git push -u origin master

git push:

这是 Git 中用于将本地更改上传到远程仓库的基本命令。它将提交的更改从本地分支推送到远程分支。

-u:

-u 是 --set-upstream 的简写。它的作用是将本地分支与远程分支关联起来。

这意味着在未来的推送和拉取操作中,你可以直接使用 git push 或 git pull 而不需要指定远程和分支名称,因为 Git 会记住这两个分支之间的关系。

origin:

origin 是远程仓库的默认名称。通常在克隆仓库时,Git 会自动将原始仓库命名为 origin。这个名称可以是任意的,但 origin 是一种约定俗成的命名方式。

master:

master 是你要推送的本地分支的名称。它是 Git 中的一个默认分支名称(在一些新的 Git 版本中,默认分支可能是 main)

.git/logs/ 文件夹存储的是每次对分支、HEAD 和远程引用的更新日志。它记录了每次提交、推送、拉取等操作的历史。

执行 git push 后,.git/logs/refs/heads/ 和 .git/logs/HEAD 会被更新,因为推送成功后,本地分支的历史操作会记录在这些日志文件中。

.git/logs/HEAD 会记录推送时 HEAD 的状态变化。

.git/logs/refs/heads/main(或你当前所在的分支)会记录推送时分支的状态变化。


总结

最后一步的时候遇到问题:

bash 复制代码
fatal: unable to access 'https://github.com/cben484/cben-s_benchmark/': gnutls_handshake() failed: The TLS connection was non-properly terminated.

第一步尝试转为ssh私钥公钥连接

mlgb,还是不对

bash 复制代码
git@github.com: Permission denied (publickey).

搞了半天,看到csdn有人提的

bash 复制代码
git config --global  --unset https.https://github.com.proxy 
git config --global  --unset http.https://github.com.proxy 

神奇的一下子就搞定了

https://blog.csdn.net/shaopeng568/article/details/114919318

相关推荐
Maxx Space31 分钟前
828华为云征文|部署在线文档应用程序 CodeX Docs
git·docker·华为云·github·cms
ZJ_.1 小时前
VSCode调试Electron
javascript·ide·vscode·electron·node.js·编辑器
Flaming_1231 小时前
vscode 的terminal 输出打印行数限制设置
ide·vscode·编辑器
珍珠是蚌的眼泪2 小时前
Elasticsearch基础_2.数据类型
elasticsearch·es·date·text·keyword·动态映射
LittleMagics5 小时前
StarRocks Elasticsearch Catalog原理简析
大数据·elasticsearch·搜索引擎·全文检索
EternalDreamer5 小时前
Elasticsearch 实战应用:从入门到项目集成
elasticsearch
Maxx Space6 小时前
828华为云征文|部署开源超轻量中文OCR项目 TrWebOCR
docker·开源·华为云·github·ocr
BergerLee11 小时前
关于Elastic Search与MySQL之间的数据同步
mysql·elasticsearch·微服务