缝缝补补---Git使用

本章记录git的学习与巩固,包含基础架构、层级、本地git上传、常见指令(六个常场景)

git架构

核心层级

1、工作区 :你本地电脑上编辑代码 / 文件的文件夹(看得见、能直接修改的地方);

2、暂存区 :工作区和本地仓库之间的过渡区(也叫索引区),本质是 .git/index 文件(记录待提交的文件列表);

3、本地仓库 :隐藏在工作区 .git 文件夹里的核心区域,存储所有 commit 快照、分支、历史记录;

4、远程仓库:托管在服务器上的仓库(如 GitHub/GitLab/Gitee),用于多人协作同步代码

git 的底层核心组件(了解)

1、对象库

存储所有版本数据的核心,包括 4 种对象:

Blob 对象:存储文件内容(只存内容,不存文件名);

Tree 对象:存储目录结构(记录文件名和对应的 Blob/Tree 对象);

Commit 对象:存储版本快照(关联 Tree 对象、父 commit、作者、提交信息等);

Tag 对象:标记重要的 commit(如发布版本 v1.0);

2、引用

简化对 commit hash 的记忆,比如:

refs/heads/master:指向 master 分支的最新 commit;

refs/tags/v1.0:指向标签 v1.0 对应的 commit;

HEAD:指向当前所在的分支

3、配置文件

存储 Git 的全局 / 本地配置

~/.gitconfig:全局配置(git config --global 修改);

.git/config:本地仓库配置(git config 不加 --global 修改)。

从本地代码git代码到仓库

基础操作-创建与上传

本地文件夹右击选择

依次输入

powershell 复制代码
echo "# (仓库名)" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin (刚创建的仓库地址...git)
git push -u origin main

场景异常

1、拉取他人项目无法git到自己仓库 :将项目文件夹下的.gi文件删掉,重新git init
2、文件过大时终止 : 分批上传

powershell 复制代码
# 1. 第一步:添加并提交小文件(提交到本地仓库)
git add 小文件1.txt 小文件2.md  # 只添加小文件
git commit -m "提交第一批小文件"
git push -u origin master       # 推送这批已提交的内容

# 2. 第二步:继续添加并提交下一批文件(无需清空暂存区)
git add 小文件3.py 目录名/      # 添加下一批文件
git commit -m "提交第二批小文件"
git push origin master          # 直接推送,暂存区无需处理

3、找不到远程地址

git remote add origin (刚创建的仓库地址...git) ,这里将http...前的空格手动删去再添加(目前我遇到的是这么解决的)

常见指令与含义

一、仓库初始化与基础配置(建仓 / 关联)

powershell 复制代码
# 初始化本地 Git 仓库(生成 .git 目录)
git init         
 # 克隆远程仓库 
git clone <地址>  

# 关联远程仓库
git remote add <名称> <地址>
# 查看远程仓库关联信息(验证是否配置正确)   
git remote -v     
# 移除远程仓库关联
git remote remove <名称>    

二、日常开发核心指令(修改 / 提交 / 推送)

powershell 复制代码
# 查看仓库状态
git status	  

# 暂存
# 添加 src 目录下所有文件(包括子目录)、*.py 到暂存区
git add src/ *.py  
# 最常用:添加当前目录下所有修改/新增的文件(排除 .gitignore 忽略的)到暂存区
git add .          

# 提交
# 1. 最基础用法:提交暂存区的内容,会弹出编辑器让你写提交说明
git commit
# 2. 推荐用法:直接在命令行写提交说明(-m = message)
# -m 后的字符串可一样,对哈希值不影响,但对于项目管理不友好
git commit -m "修复登录按钮样式问题"
# 3. 跳过暂存区:直接提交工作区的修改(适合少量修改)
git commit -am "更新用户列表接口"

# 推送与拉取
# 推送本地提交到远程仓库,首次必须添加 <远程名> <分支名>   ,后续直接git push
git push [-u] <远程名> <分支名>     
# 拉取远程仓库最新内容并合并到本地
git pull                        

三、分支管理

分支是 Git 核心能力,用于隔离功能开发 / 修复 Bug,避免影响主分支。

powershell 复制代码
# 查看分支
git branch
# 创建分支
git branch <分支名>
# 删除本地已合并的分支
git branch -d <分支名>  

# 切换到指定分支
git checkout <分支名>	
# 创建并切换到新分支(常用)
git checkout -b <分支名>	

# 合并指定分支到当前分支
git merge <分支名> 
# 删除远程分支
git push origin --delete <分支名>

四、版本回溯与撤销(改错 / 回滚)

powershell 复制代码
# 查看提交历史(哈希值 / 作者 / 时间 / 说明)
git log	  

# 回滚到指定版本(清空工作区 / 暂存区修改)
git reset --hard <提交哈希>	 
# 撤销暂存区的文件(保留工作区修改)
git reset HEAD <文件>

# 撤销工作区的修改(恢复到最近提交状态)
git checkout -- <文件>	
# 撤销指定提交(生成新提交,保留历史)
git revert <提交哈希>	

五、仓库清理与优化

释放空间 / 解决大文件

powershell 复制代码
# 清理 Git 垃圾对象(释放磁盘空间)
git gc --prune=now	
# 删除未被追踪的临时文件 / 缓存,谨慎!会删除未 add 的文件
git clean -fdx	
# 初始化 Git LFS(管理大文件),首次使用 LFS 需执行

git lfs install	
# 追踪大文件类型
git lfs track <文件类型>
# 清空 Git LFS 本地缓存	
git lfs prune	

六、协作常用指令

powershell 复制代码
# 拉取远程分支信息(不合并,仅同步)
git fetch	
# 对比两个分支的差异
git diff <分支1> <分支2>
# 暂存当前修改	
git stash	
# 恢复暂存的修改
git stash pop
相关推荐
雮尘1 天前
让 AI Agent 高效并行开发的命令-git worktree
人工智能·git·agent
南果梨2 天前
OpenClaw 完整教程!从安装到使用(官方脚本版)
前端·git·开源
Selicens3 天前
git批量删除本地多余分支
前端·git·后端
闲云一鹤4 天前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
vibecoding日记7 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记7 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger8 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP9 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
红豆子不相思9 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat