缝缝补补---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
相关推荐
Alkaid:11 小时前
GIT常用命令
大数据·git
我命由我1234519 小时前
Android Studio - 在 Android Studio 中直观查看 Git 代码的更改
android·java·开发语言·git·java-ee·android studio·android jetpack
无证驾驶梁嗖嗖19 小时前
git_lab_事故恢复全过程(ubuntu_22
linux·git·ubuntu
何中应19 小时前
CentOS7安装Git
运维·git·centos·开发工具
微尘hjx20 小时前
【GitHub 代码仓 02】git命令操作示例
git·elasticsearch·github
阿正的梦工坊1 天前
Git提交中的perf和chore是什么?
git
Fly feng1 天前
git rebase 变基操作教程
git
laoliu19961 天前
开源 FRP GUI 客户端
git·开源·github
YanaDH1 天前
前端开发新机环境部署(带链接)
git·vscode·npm·node.js