恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
git 学习,小白第一次学习
首页
资讯中心
/
git 学习,小白第一次学习
git 学习,小白第一次学习
发布时间:2026/8/8 22:07:16
文章目录git安装git的配置git的一些基本理论git项目的搭建创建工作目录与常用的指令本地仓库搭建git文件操作文件的四种状态查看文件状态忽略文件生成ssh秘钥将本地仓库的文件提交到远程仓库idea上集成gitgit的分支.github/目录结构1. dependabot.yml2. ci.yml最重要3. copilot-setup-steps.yml4. mcp-diff.yml5. remote-mcp-diff.yml6. release.yml整个流程举例git安装盲选下一步就可以了安装路径可以自定义选择比如我的安装路径是D:\git\install\Gitgit卸载其实就是git的反安装首先删除git的环境变量如果有的话然后就在控制面板上直接删除就可以了。git的配置git 的配置都是在git的安装目录下相关的配置文件里面也就是git的配置本质上是git的一些读写文件而已git的相关配置文件的路径1系统配置是在安装路径/etc/gitconfig文件下如D:\git\install\Git\etc2用户配置global在个人用户路径下/.config如C:\Users\Administrator/.config#查看系统的config git config --system --list #查看当前用户global配置 git config --global --list #配置自己的用户名 git config --global user.name your name #配置自己的邮箱 git config --global user.email your emailgit也可以直接配置环境变量但是配置环境变量是在为了能够在全局使用但是只要正确安装好git鼠标右键就可以在任意地方打开git而且git默认会在path中配置环境变量的。git的一些基本理论git本地上有三个工作区域工作目录(Working Directory)、暂存区(Stage/index)、资源区(Repository/Git Directory)。加上远程的git仓库(Remote Direcyory)的话可以分为四个转换关系如下Working Directory工作区平时存放项目代码的地方Stage/index暂存区用来临时存放改动的它的本质是一个文件保存即将提交的文件列表信息看不到Repository/Git Directory仓库区安全存放数据的位置这里有提交的所有版本的数据其中HEAD指向最新放入仓库的版本Remote Direcyory远程仓库托管代码的服务器比如说github、giteegit的工作流程在工作目录中添加、修改文件将需要进行版本管理的文件放入暂存区域git add .将暂存区域的文件提交到git仓库git commit因此git管理的文件有三种状态已修改(modified)已暂存(staged)已提交(committed)git项目的搭建创建工作目录与常用的指令工作目录(Working Directory)一般的都是帮助管理的文件夹可以是项目的目录也可以是一个空目录建议不要有中文本地仓库搭建创建本地仓库有两种方法一种是创建全新的仓库另一中是克隆远程仓库创建全新的仓库需要到git管理项目的根目录执行#在当前目录上创建一个git代码库 git init执行之后就会看到项目多了一个.git的隐藏文件所有的版本信息都在这个目录上克隆远程仓库就是将远程服务器上仓库完全镜像到本地#克隆一个项目和他的整一个代码历史版本信息 git clone [url]我们可以去gitee或者github克隆一个进行测试。git文件操作文件的四种状态untracked未追踪此文件在文件夹中并没有加入到git库不参与版本控制可以使用git add filename转变成staged。unmodify文件已经入库没有修改也就是版本库中的文件快照内容和文件夹中完全一致这种类型的文件有两种去处如果它被修改变成modified如果使用git rm就会变成untracked文件。modified文件已经被修改仅仅只是修改并没有进行其他的操作这种文件也有两种去处一种是通过git add filename可以进去到暂存staged状态使用git checkout则丢弃修改过返回到unmodify状态这个git checkout就是从库中提取文件覆盖当前修改。staged暂存状态执行git commit就修改同步到库中这时候库的文件和本地文件又变为一致文件为unmodify状态执行git reset HEAD filename取消暂存文件变成modifiled。查看文件状态#查看文件状态 git status [filename] #追踪文件添加文件到暂存区 git add filename/. #提交暂存区内容到本地仓库-m是提交信息 git commit -m 消息内容忽略文件我们有一些文件不需要纳入到版本控制中就可以在主目录中创建.gitignore文件这个文件的规则如下忽略文件中的空行或者#号开始的行。可以使用Linux的通配符*星号代表任意多的字符问号代表一个字符[]方括号代表可选字符范围{}花括号代表可选的字符串。如果名称前面有一个感叹号表示例外不会被忽略。如果名称前面是一个路径分隔符/表示要忽略的文件在这个目录下但是子目录中的文件不会被忽略。如果名称最后面是一个路径分隔符/,表示要忽略的是这个目录下这个名称的子目录而不是文件默认是文件或者目录都忽略。*.txt #忽略所有的.txt结尾的文件这样上传是不会被选中的 !lib.txt #但是lib.txt除外 /temp #仅仅忽略项目根目录下的TODO文件不包括其他目录temp build/ #忽略build/目录下的所有文件 doc/*.txt #忽略doc/notes.txt但是不包括doc/server/arch.txt生成ssh秘钥#进入到C:\Users\Administrator\.ssh目录 #生成公钥 ssh-keygen把生成的秘钥直接就复制到github或者gitee就可以了。这样就实现把远程仓库和本地仓库绑定在一起将本地仓库的文件提交到远程仓库如果是有新内容更新的都需要进行git init操作git init git add . git commit -m git pushidea上集成git新建项目绑定git最简单就是在新建的项目中把本地上已经绑定了git的文件直接复制过来就可以了修改项目使用idea操作gitidea上集成了git的所有命令可以使用命令行打开也可以直接在idea图形界面上打开git的分支#查看本地仓库所有的分支gitbranch#查看远程仓库所有的分支gitbranch-r#新建一个分支新建成功后当前还是停留在master分支上gitbranch[branchName]#新建一个分支并且跳转到这个分支中去gitcheckout-b[branch-name]#合并分支gitmerge[branch]#删除分支gitcheckout-d[branch-name]#删除远程分支gitpush origin--delete[branch-name]master分支一般都比较稳定是用来发布新版本的建议不要在上面进行开发一般开发的时候新建dev项目等项目开发稳定后合并到master上就可以发布了。.github/.github/是 GitHub 仓库的自动化配置中心。它和你的 MCP Server 本身没有关系而是控制GitHub 网站在什么时候自动帮你做什么事情。目录结构一般长这样.github/ ├── dependabot.yml └── workflows/ ├── ci.yml ├── release.yml ├── mcp-diff.yml ├── remote-mcp-diff.yml └── copilot-setup-steps.yml其中dependabot.yml属于 Dependabot 配置。workflows/属于 GitHub Actions 工作流。1. dependabot.yml例如package.json express 4.18 ↓ express 4.20 发布Dependabot 每周自动检查package.json package-lock.json GitHub Actions发现express 有新版本它会自动创建一个 PRUpdate express to 4.20你只需要点 Merge。作用自动升级依赖。2. ci.yml最重要CI Continuous Integration持续集成。例如有人提交代码git pushGitHub 自动运行npm install npm run lint npm run build npm test如果✓ build 成功 ✓ test 成功PR 就显示绿色 ✔。否则❌ Build Failed别人不能合并。所以CI 就是自动帮你检查代码有没有问题。3. copilot-setup-steps.yml这是 GitHub Copilot Agent 使用的。Copilot 在云端帮你修改代码时需要知道怎么安装依赖于是执行npm install或者pnpm install所以这是给 Copilot 准备开发环境。普通开发者一般不用管。4. mcp-diff.yml这个比较特殊。你的 MCP Server 可能昨天有Tool A Tool B今天改完以后Tool A Tool CGitHub 可以自动检测Tool B 被删了或者Schema 改了它会告诉你MCP Capability Changed这样避免客户端突然不能用了所以它是检查 MCP 接口变化。5. remote-mcp-diff.yml上面那个检查的是本地代码这个检查的是已经部署到服务器上的 MCP例如https://mcp.example.comGitHub 自动连接服务器 ↓ 获取 Tool List ↓ 和仓库中的 Tool 对比发现服务器少一个 Tool就报警。mcp-diff内部代码审查员检查对象纯粹针对 GitHub 仓库里的代码。作用每次代码合并时对比新旧代码。比如发现开发者在代码里删了一个工具Tool B它就会在代码层面发出警告提醒团队注意。remote-mcp-diff线上环境验收员检查对象GitHub 仓库里的代码VS公网上真实运行的 MCP Server。作用拿着仓库里的“标准图纸”去公网服务器上“对实物”。如果发现代码里明明写了 Tool C但公网服务器上的工具列表里却没有它就会立刻报警说明“代码没部署成功”或者“线上环境出了问题”。一句话总结mcp-diff确保的是**“代码变更被记录”而remote-mcp-diff确保的是“线上服务与代码保持绝对一致”**。这两个机制配合在一起就能完美保障 AI 客户端调用的工具永远是最新且正确的6. release.yml例如你执行git tag v1.0.0 git push origin v1.0.0GitHub 自动Build ↓ 打包 ↓ 生成 Release ↓ 上传 zip ↓ 发布 v1.0.0于是别人看到Release v1.0.0 Download ZIP Release Notes不用你手工创建。整个流程举例假设你今天写了一段代码git add . git commit git pushGitHub 会自动执行收到 push ↓ ci.yml ↓ npm install ↓ lint ↓ build ↓ test ↓ 全部通过 ↓ 允许 Merge如果你后来发布版本git tag v1.2.0 git push origin v1.2.0又会自动release.yml ↓ 创建 Release ↓ 上传文件 ↓ 发布版本开发 ↓ 提交代码 ↓ 自动检查CI ↓ 自动测试 ↓ 自动发布 ↓ 自动升级依赖 ↓ 自动生成 Release ↓ AI 辅助开发