本地git操作

一、初始化与基础操作

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

二、提交代码

1. 添加文件到暂存区
bash 复制代码
git add <文件名>                # 添加单个文件
git add .                      # 添加所有修改(不含未跟踪文件)
git add -A                     # 添加所有修改(含未跟踪和删除文件)
git add -p                     # 交互式选择部分修改(按区块添加)
2. 提交到本地仓库
bash 复制代码
git commit -m "提交描述"        # 简单提交
git commit -am "描述"          # 自动添加已跟踪文件并提交(跳过`git add`)
  1. 修改最后一次提交
bash 复制代码
git commit --amend              # 修改提交信息或内容
git commit --amend -m "新描述"  # 直接替换描述

三、分支管理

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

四、撤销与回退

1. 撤销工作区修改
bash 复制代码
git restore <文件名>            # 撤销未暂存的修改(Git 2.23+)
git checkout -- <文件名>        # 旧版Git的撤销命令
  1. 撤销暂存区修改
bash 复制代码
git restore --staged <文件名>   # 将文件移出暂存区(保留修改)
git reset HEAD <文件名>         # 等效旧版命令
  1. 回退提交
bash 复制代码
git reset --soft HEAD~1        # 撤销提交但保留修改到暂存区
git reset --mixed HEAD~1       # 撤销提交并保留修改到工作区(默认)
git reset --hard HEAD~1        # 彻底丢弃最后一次提交(慎用!)
git revert <commit-hash>       # 新建提交来撤销指定提交(安全)

五、查看历史与差异

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

六、暂存与恢复

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

七、标签管理

bash 复制代码
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 文件,忽略指定文件/目录:

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

    九、高频场景示例

    1. 紧急修复 bug(基于主分支)
    bash 复制代码
    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. 丢弃本地所有修改
    bash 复制代码
    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
相关推荐
虔城散人7 小时前
C语言 |位域结构体
c语言
Susea&7 小时前
数据结构初阶:队列
c语言·开发语言·数据结构
序属秋秋秋8 小时前
算法基础_数据结构【单链表 + 双链表 + 栈 + 队列 + 单调栈 + 单调队列】
c语言·数据结构·c++·算法
mldl_9 小时前
(个人题解)第十六届蓝桥杯大赛软件赛省赛C/C++ 研究生组
c语言·c++·蓝桥杯
杜小暑9 小时前
冒泡排序与回调函数——qsort
c语言·算法·排序算法
双叶83611 小时前
(51单片机)点阵屏LED显示图片(点阵屏LED教程)(74Hc595教程)
c语言·开发语言·单片机·嵌入式硬件·51单片机
码见愁11 小时前
Git分布式版本控制工具
分布式·git
程序猿chen12 小时前
JVM考古现场(十九):量子封神·用鸿蒙编译器重铸天道法则
java·jvm·git·后端·程序人生·java-ee·restful
混血哲谈12 小时前
如何安装git?
git