当前位置: 首页 > news >正文

本地git操作

一、初始化与基础操作

1. 初始化仓库
git init                        # 当前目录新建仓库
git init <目录名>               # 指定目录初始化
2. 查看状态
git status                      # 显示工作区和暂存区状态
git status -s                   # 简洁版状态(A=新增, M=修改, D=删除)

二、提交代码

1. 添加文件到暂存区
git add <文件名>                # 添加单个文件
git add .                      # 添加所有修改(不含未跟踪文件)
git add -A                     # 添加所有修改(含未跟踪和删除文件)
git add -p                     # 交互式选择部分修改(按区块添加)
2. 提交到本地仓库
git commit -m "提交描述"        # 简单提交
git commit -am "描述"          # 自动添加已跟踪文件并提交(跳过`git add`)

3. 修改最后一次提交

git commit --amend              # 修改提交信息或内容
git commit --amend -m "新描述"  # 直接替换描述

三、分支管理

1. 分支操作
git branch                      # 查看本地分支(*为当前分支)
git branch <分支名>             # 新建分支
git checkout <分支名>           # 切换分支
git checkout -b <分支名>        # 新建并切换分支
git branch -d <分支名>          # 删除已合并的分支
git branch -D <分支名>          # 强制删除未合并的分支
2. 合并与变基
git merge <分支名>              # 合并指定分支到当前分支
git rebase <分支名>             # 变基(线性历史,慎用!)

四、撤销与回退

1. 撤销工作区修改
git restore <文件名>            # 撤销未暂存的修改(Git 2.23+)
git checkout -- <文件名>        # 旧版Git的撤销命令

2. 撤销暂存区修改

git restore --staged <文件名>   # 将文件移出暂存区(保留修改)
git reset HEAD <文件名>         # 等效旧版命令

3. 回退提交

git reset --soft HEAD~1        # 撤销提交但保留修改到暂存区
git reset --mixed HEAD~1       # 撤销提交并保留修改到工作区(默认)
git reset --hard HEAD~1        # 彻底丢弃最后一次提交(慎用!)
git revert <commit-hash>       # 新建提交来撤销指定提交(安全)

五、查看历史与差异

1. 提交历史
git log                         # 完整提交历史
git log --oneline               # 简洁版提交记录
git log -p                      # 显示提交的代码差异
git log --graph                 # 图形化分支历史
git log -n 3                    # 仅显示最近3条提交
2. 代码对比
git diff                        # 工作区与暂存区的差异
git diff --cached               # 暂存区与最新提交的差异
git diff HEAD                   # 工作区与最新提交的差异
git diff <分支1> <分支2>        # 对比两个分支
git diff <commit1> <commit2>    # 对比两次提交

六、暂存与恢复

1. 暂存临时修改
git stash                       # 暂存当前工作区和暂存区修改
git stash save "描述"           # 暂存并添加描述
git stash list                  # 查看所有暂存记录
git stash pop                   # 恢复最近一次暂存并删除记录
git stash apply stash@{n}       # 恢复指定暂存(不删除)
git stash drop stash@{n}        # 删除指定暂存

七、标签管理

git tag                         # 查看所有标签
git tag v1.0                    # 创建轻量标签
git tag -a v1.0 -m "版本说明"   # 创建附注标签
git push origin v1.0            # 推送标签到远程
git tag -d v1.0                 # 删除本地标签
git push origin --delete v1.0   # 删除远程标签

八、.gitignore 配置

  • 创建 .gitignore 文件,忽略指定文件/目录:

    # 忽略所有 .log 文件
    *.log
    
    # 忽略 node_modules 目录
    node_modules/
    
    # 不忽略特定文件(例外规则)
    !important.log

    九、高频场景示例

    1. 紧急修复 bug(基于主分支)
    git checkout main               # 切换到主分支
    git pull origin main            # 拉取最新代码
    git checkout -b hotfix-bug      # 新建修复分支
    # 修复代码后...
    git add .
    git commit -m "fix: 紧急修复XX问题"
    git checkout main
    git merge hotfix-bug            # 合并修复
    2. 丢弃本地所有修改
    git reset --hard HEAD          # 重置工作区和暂存区
    git clean -fd                 # 删除未跟踪的文件和目录

    十、命令速查表

    场景命令
    初始化仓库git init
    提交代码git add . && git commit -m "描述"
    切换分支git checkout <分支名>
    合并分支git merge <分支名>
    撤销工作区修改git restore <文件>
    查看历史git log --oneline --graph
    暂存临时修改git stash

相关文章:

  • 裂缝检测数据集,支持yolo,coco json,pasical voc xml,darknet格式的标注,1673张原始训练集图片,正确识别率99.4%
  • 趣说区块链隐私智能合约Shielder 实现原理
  • 基于【Lang Chain】构建智能问答系统的实战指南
  • 25.OpenCV中的霍夫圆变换
  • 【多线程-第四天-自己模拟SDWebImage的下载图片功能-看SDWebImage的Demo Objective-C语言】
  • #2 物联网组成要素
  • C# string和其他引用类型的区别
  • Linux下C语言与OpenGL游戏开发指南
  • 第十六天 - SaltStack高级功能 - 状态文件与Grains - 练习:异构环境配置管理
  • 【油猴脚本 0】某动漫网站视频地址解析
  • LabVIEW 控制电机需注意的关键问题
  • CSS 轮廓(Outline)属性学习笔记
  • Qt C++内存泄漏排查方法
  • 【vue】基础
  • 自动化测试工具playwright中文文档-------12.身份验证
  • Spring Boot 自定义商标(Logo)的完整示例及配置说明( banner.txt 文件和配置文件属性信息)
  • Linux的基本指令
  • 在 Ubuntu 系统中安装字符集(字体或语言支持)特殊符号以及输出标点符号的方法
  • 归并排序法排序数组(js版)
  • 安装Istio
  • 做网站用win还是li/网络营销的工作内容包括哪些
  • 修改网站源码连接数据库怎么做/站内优化主要从哪些方面进行
  • 贵阳经济技术开发区网站/上海百度分公司电话
  • 天元建设集团有限公司股份/郑州官网网站优化公司
  • 杭州企业seo网站优化/seo网页优化公司
  • 腾讯云建设网站教程/百度联盟怎么加入赚钱