Git操作备忘与原理记录

Git 是分布式版本控制系统,核心用于代码版本管理、回溯及多人协作。本文作为个人备忘,聚焦核心操作的原理与关键命令,精简实用,方便快速查阅。

前置准备:安装Git后,终端输入 git --version 显示版本号即安装成功(Windows用Git Bash,Mac/Linux用终端)。

一、基础配置:身份与认证(必做)

原理:Git无统一“登陆”概念,配置本地身份用于标识提交者,绑定远程认证用于本地与远程仓库同步,未配置会导致提交/推送失败。

1. 本地用户名/邮箱配置(身份标识)

提交记录会关联该信息,建议与远程仓库账户一致,分全局(所有仓库)和局部(单个仓库)配置。

# 全局配置(推荐新手)
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

# 局部配置(多账户场景,需先进入仓库目录)
git config user.name "你的用户名"
git config user.email "你的邮箱"

# 验证配置
git config --list

2. 远程仓库认证(密码/Token/SSH)

原理:远程仓库(GitHub/Gitee)需身份认证,确认操作权限,密码认证已基本废弃,优先Token,频繁操作推荐SSH。

  • Token认证:远程仓库个人设置生成Token(勾选repo权限),首次推送时,密码处粘贴Token即可。

  • SSH认证:生成密钥对,公钥配置到远程仓库,无需重复输入凭证。
    `# 生成密钥(替换邮箱)
    ssh-keygen -t rsa -b 4096 -C "你的邮箱"

验证(GitHub/Gitee分别执行)

ssh -T [email protected]
ssh -T [email protected]`

二、本地仓库:创建与删除(本地版本管理基础)

原理:本地仓库是Git版本管理的核心,本质是存储代码版本信息的目录(含隐藏.git文件夹,不可手动删除)。

1. 创建本地仓库(两种场景)

# 场景1:从零创建(新建项目)
mkdir 项目文件夹 && cd 项目文件夹
git init  # 初始化仓库,生成.git文件夹

# 场景2:克隆远程仓库(已有远程项目)
git clone 远程仓库HTTPS/SSH地址  # 自动生成本地仓库,无需git init

2. 删除本地仓库

原理:删除仓库即删除对应文件夹(含.git),本地版本记录全部丢失,谨慎操作。

# 退出仓库目录,删除文件夹(Mac/Linux)
cd 上级目录 && rm -rf 仓库文件夹
# Windows(Git Bash)
cd 上级目录 && rd /s/q 仓库文件夹

# 仅取消Git管理(保留项目文件)
cd 仓库目录 && rm -rf .git

三、远程关联:本地与远程同步桥梁

原理:通过关联远程仓库地址,实现本地代码推送(备份)和远程代码拉取(同步),origin是远程仓库默认别名。

# 1. 首次关联(进入本地仓库)
git remote add origin 远程仓库地址

# 2. 核心辅助命令
git remote -v  # 验证关联(显示origin对应地址)
git remote set-url origin 新地址  # 修改远程地址
git remote rm origin  # 解除关联
git pull origin main  # 拉取远程main分支最新代码

四、分支操作:多任务并行开发

原理:分支相当于独立开发线,可在分支开发新功能/修Bug,不影响主分支稳定,开发完成后合并。

核心命令(备忘重点)

# 查看分支(*表示当前分支)
git branch  # 本地分支
git branch -a  # 本地+远程分支

# 创建/切换/创建并切换分支
git branch 分支名
git switch 分支名(或git checkout 分支名)
git switch -c 分支名(或git checkout -b 分支名)

# 合并分支(例:dev合并到main)
git switch main && git merge dev

# 删除分支
git branch -d 分支名(已合并)
git branch -D 分支名(强制删除)

# 远程分支操作
git push origin 分支名  # 推送本地分支到远程
git pull origin 分支名  # 拉取远程分支到本地

合并冲突解决

原理:两个分支修改同一文件同一部分,Git无法自动判断,需手动干预。

# 1. 合并提示冲突后,打开冲突文件,删除标记并修改内容
# 冲突标记:<<<<<<< HEAD(当前分支)、=======(分隔)、>>>>>>> 分支名(待合并)

# 2. 标记解决并提交
git add 冲突文件名
git commit -m "fix: 合并冲突"

五、提交操作:本地与远程同步核心

原理:提交流程为「工作区→暂存区→本地仓库→远程仓库」,每一步均为版本记录的关键节点。

1. 本地提交(三步曲)

# 1. 查看文件状态(红色未暂存,绿色已暂存)
git status

# 2. 工作区→暂存区
git add 单个文件  # 单个文件
git add -A  # 所有修改(推荐)

# 3. 暂存区→本地仓库(提交说明必填)
git commit -m "提交说明"(例:feat: 新增功能,fix: 修复Bug)

# 补充:补充最近一次提交(未推送远程)
git commit --amend -m "修改后的提交说明"

2. 远程提交(推送)

# 1. 优先拉取远程最新代码,避免冲突
git pull origin 分支名

# 2. 推送本地分支到远程
git push -u origin 分支名  # 首次推送,绑定分支
git push origin 分支名  # 非首次推送

六、其他必备操作(备忘)

1. 版本回退(误操作救星)

原理:通过提交哈希值或简化命令,回溯到历史稳定版本,--hard会彻底删除回退后续修改。

# 查看提交历史(获取哈希值,前7位即可)
git log --oneline

# 回退操作
git reset --hard 哈希值  # 回退到指定版本
git reset --hard HEAD^  # 回退到上一版本

# 已推送远程,需强制推送(谨慎,会覆盖远程记录)
git push -f origin 分支名

2. 忽略文件(.gitignore)

原理:指定无需Git管理的文件/文件夹(如日志、编译产物),避免误提交。

# 新建.gitignore文件,添加忽略规则(示例)
node_modules/  # 文件夹
*.log  # 所有.log文件
.vscode/  # IDE配置文件夹
test.txt  # 单个文件

# 提交.gitignore
git add .gitignore && git commit -m "docs: 添加忽略文件"

3. 暂存工作区(git stash)

原理:临时保存未完成的修改,方便切换分支处理紧急问题,后续可恢复。

git stash save "暂存描述"  # 暂存
git stash list  # 查看暂存记录
git stash pop  # 恢复最近暂存并删除记录
git stash clear  # 清空所有暂存

七、核心备忘总结

  1. 核心流程:本地配置→仓库操作(本地/远程)→分支开发→提交同步;

  2. 关键原则:未配置身份不可提交,推送前优先拉取,删除仓库/强制推送需谨慎;

  3. 备忘重点:核心命令无需死记,重点理解操作原理,按需查阅即可。

(注:文档部分内容可能由 AI 生成)

posted @ 2026-02-11 13:48  adgk07  阅读(1)  评论(0)    收藏  举报