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

相关推荐
林澈在路上25 分钟前
AI翻唱软件哪个好 2026国产AI写歌工具对比推荐
大数据·人工智能·深度学习·github·aigc·音视频·音频
百变梦仔4 小时前
Codex 写前端任务时,我用这张 GitHub Skill 地图先选工具
前端·github
JavaPub-rodert6 小时前
写软著 - Copyright Forge Skill 完整闭环改造方案
大数据·elasticsearch·搜索引擎
u1301308 小时前
GitHub 热榜项目:日榜(2026-08-29)
github
码上暴富8 小时前
Cursor / VS Code 自定义文件颜色
前端·vscode
mooooooooooye9 小时前
SSH 工具越用越乱,Xterminal 先清掉这三类失效连接
运维·ssh·github
x869 小时前
GitHub 8·17 大故障复盘:7 小时 47 分钟的容量失败与重试风暴教训
github
Elastic 中国社区官方博客9 小时前
从建议到修复的 4 个阶段:使用 Elastic Workflows 实现人在回路中的自动化
运维·数据库·人工智能·后端·elasticsearch·ai·自动化
TunerT_TQ11 小时前
Meta|Flow 源码结构解析:一个大型 JavaScript 静态类型检查项目的工程化实践
meta·开源·github
2601_9623815811 小时前
VSCode如何配置LlamaIndex RAG(检索增强生成)应用开发环境
vscode·开发环境·rag·llamaindex·检索增强生成