git工具的学习

Git 学习与总结

Git 是目前最流行的分布式版本控制系统,用于高效管理项目代码的版本迭代、协作开发和代码追踪。以下从核心概念、常用操作、工作流程及进阶技巧等方面进行总结:


一、核心概念
  1. **工作区(Working Directory)**本地实际编辑代码的目录,即项目文件夹。

  2. 暂存区(Staging Area/Index) 临时存放待提交的修改,通过 git add 将工作区文件添加至此。

  3. 本地仓库(Local Repository) 存储项目历史版本的数据库,通过 git commit 将暂存区内容提交至此。

  4. 远程仓库(Remote Repository) 托管在服务器上的仓库(如 GitHub、GitLab),通过 git push/pull 与本地仓库同步。

  5. **提交(Commit)**版本的快照,每个提交有唯一哈希值(SHA-1),包含修改内容、作者、时间等信息。

  6. 分支(Branch) 独立的开发线,默认主分支为 main(或 master),用于并行开发新功能或修复 Bug。

  7. HEAD指向当前所在分支的最新提交。


二、常用操作
1. 基础配置

bash

运行

复制代码
# 设置用户名和邮箱(全局)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 查看配置
git config --list
2. 仓库初始化与克隆

bash

运行

复制代码
# 初始化本地仓库
git init

# 克隆远程仓库
git clone <远程仓库URL>
3. 工作区与暂存区操作

bash

运行

复制代码
# 查看文件状态
git status

# 将文件添加到暂存区
git add <文件名>          # 添加指定文件
git add .                 # 添加所有修改文件

# 撤销暂存区文件
git reset HEAD <文件名>

# 撤销工作区修改(恢复到最近提交状态)
git checkout -- <文件名>
4. 提交与日志

bash

运行

复制代码
# 提交暂存区内容到本地仓库
git commit -m "提交说明"

# 修改最后一次提交(未推送到远程时使用)
git commit --amend

# 查看提交日志
git log                   # 完整日志
git log --oneline         # 简洁日志
git log --graph           # 图形化分支日志
5. 分支操作

bash

运行

复制代码
# 查看分支
git branch                # 本地分支
git branch -r             # 远程分支
git branch -a             # 所有分支

# 创建分支
git branch <分支名>

# 切换分支
git checkout <分支名>
git switch <分支名>       # Git 2.23+ 推荐用法

# 创建并切换分支
git checkout -b <分支名>
git switch -c <分支名>

# 合并分支(当前分支合并目标分支)
git merge <目标分支>

# 删除分支
git branch -d <分支名>    # 已合并分支
git branch -D <分支名>    # 强制删除未合并分支
6. 远程仓库交互

bash

运行

复制代码
# 关联远程仓库
git remote add origin <远程仓库URL>

# 查看远程仓库
git remote -v

# 拉取远程分支
git pull origin <分支名>

# 推送本地分支到远程
git push origin <分支名>

# 推送新分支到远程
git push -u origin <分支名>

# 删除远程分支
git push origin --delete <分支名>
7. 撤销与回滚

bash

运行

复制代码
# 回滚到指定提交(保留修改,回退到暂存区)
git reset --soft <提交哈希>

# 回滚到指定提交(保留修改,回退到工作区)
git reset --mixed <提交哈希>  # 默认

# 强制回滚到指定提交(丢弃所有后续修改)
git reset --hard <提交哈希>

# 恢复已删除的提交(通过reflog)
git reflog
git reset --hard <提交哈希>

三、典型工作流程
  1. 单人开发流程 git init/git clone编辑代码git addgit commitgit push

  2. 多人协作流程

    • 拉取最新代码:git pull origin main
    • 创建功能分支:git checkout -b feature-xxx
    • 开发并提交:git add && git commit
    • 推送分支:git push origin feature-xxx
    • 合并分支(通过 PR/MR)或本地合并:git checkout main && git merge feature-xxx
  3. Bug 修复流程

    • 从主分支创建修复分支:git checkout -b fix-xxx main
    • 修复后合并回主分支和开发分支:git merge fix-xxx main && git merge fix-xxx develop

四、进阶技巧
  1. **变基(Rebase)**用于线性化提交历史,避免合并产生的分叉:

    bash

    运行

    复制代码
    git checkout feature-xxx
    git rebase main
  2. **交互式变基(Interactive Rebase)**整理提交历史(合并、修改、删除提交):

    bash

    运行

    复制代码
    git rebase -i HEAD~3  # 编辑最近3个提交
  3. **暂存(Stash)**临时保存工作区修改:

    bash

    运行

    复制代码
    git stash              # 暂存
    git stash pop          # 恢复最近暂存
    git stash list         # 查看暂存列表
  4. **子模块(Submodule)**管理依赖的子项目:

    bash

    运行

    复制代码
    git submodule add <子仓库URL> <路径>
    git submodule update --init --recursive  # 克隆子模块
  5. 别名配置简化常用命令:

    bash

    运行

    复制代码
    git config --global alias.st status
    git config --global alias.co checkout

五、常见问题与解决方案
  1. 冲突解决

    • 合并 / 拉取时冲突:手动编辑冲突文件 → git addgit commit
    • 使用可视化工具(如 VS Code、SourceTree)辅助解决冲突。
  2. 忘记提交文件

    bash

    运行

    复制代码
    git add <遗漏文件>
    git commit --amend     # 追加到最后一次提交
  3. 误删分支 通过 git reflog 找到分支最后提交的哈希,重建分支:

    bash

    运行

    复制代码
    git checkout -b <分支名> <提交哈希>

六、学习资源推荐
相关推荐
金融小师妹4 小时前
基于多模态宏观建模与历史序列对齐:原油能源供给冲击的“类1970年代”演化路径与全球应对机制再评估
大数据·人工智能·能源
播播资源5 小时前
OpenAI2026 年 3 月 18 日最新 gpt-5.4-nano模型:AI 智能体的“神经末梢”,以极低成本驱动高频任务
大数据·人工智能·gpt
GJGCY6 小时前
中小企业财务AI工具技术评测:四大类别架构差异与选型维度
大数据·人工智能·ai·架构·财务·智能体
九河云6 小时前
云上安全运营中心(SOC)建设:从被动防御到主动狩猎
大数据·人工智能·安全·架构·数字化转型
武子康6 小时前
大数据-252 离线数仓 - Airflow + Crontab 入门实战:定时调度、DAG 编排与常见报错排查
大数据·后端·apache hive
jinanwuhuaguo6 小时前
OpenClaw、飞书、Claude Code、Codex:四维AI生态体系的深度解构与颗粒化对比分析
大数据·人工智能·学习·飞书·openclaw
Rubin智造社7 小时前
# OpenClaude命令实战|核心控制三剑客/reasoning+/verbose+/status 实操指南
大数据·人工智能
华奥系科技8 小时前
智慧经济新格局:解码社区、园区与城市一体化建设逻辑
大数据·人工智能·科技·物联网·安全
TDengine (老段)8 小时前
TDengine IDMP 组态面板 —— 画布
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
阿里云大数据AI技术9 小时前
阿里云荣获 2025–2026 年度 Elastic中国最佳合作伙伴奖
人工智能·elasticsearch