如何删除git上末了一次提交,Git一样平常使用操作阐明。 ...

打印 上一主题 下一主题

主题 1886|帖子 1886|积分 5658

要删除 Git 上的末了一次提交,根据是否已推送到远程堆栈可分为两种情况处理惩罚:

情况一:仅当地未推送的提交

办理方案:
  1. # 保留工作区修改(仅撤销提交记录)
  2. git reset --soft HEAD~1
  3. # 或完全丢弃最后一次提交(包括代码修改)
  4. git reset --hard HEAD~1
复制代码

情况二:已推送到远程堆栈的提交

办理方案:
  1. # 1. 本地回退到上一个提交
  2. git reset --hard HEAD~1
  3. # 2. 强制覆盖远程仓库(危险操作!)
  4. git push --force-with-lease origin 分支名
复制代码

⚠️ 紧张注意事项


  • 强制推送风险
    --force-with-lease 比 --force 更安全,但仍会覆盖远程历史记录
    ▶️ 实用于个人分支/私有堆栈
    ❌ 避免在多人协作的主分支使用
  • 团队协作场景替代方案
    1. # 使用 revert 创建反向提交(保留历史记录)
    2. git revert HEAD
    3. git push origin 分支名
    复制代码
  • 同步其他成员的当地堆栈
    如果他人已拉取旧提交,需执行:
    1. git fetch
    2. git reset --hard origin/分支名
    复制代码

操作流程对比

操作范例命令实用场景历史记录影响当地取消提交git reset HEAD~1未推送的错误提交完全删除提交强制覆盖远程git push --force私有分支/紧急修复重写远程历史安全取消(保举)git revert + 正常推送团队协作分支新增反向提交 建议优先使用 git revert 方案,除非明确需要修改历史记录。
更多Git使用方法拜见:

以下是 Git 使用中 最常用的指令及使用方法,涵盖一样平常开发的大部分场景:

一、堆栈管理

命令阐明示例git init初始化新堆栈git initgit clone <url>克隆远程堆栈git clone https://github.com/user/repo.git
二、基础操作

命令阐明示例git add <file>添加文件到暂存区git add . (添加全部文件)git commit -m "message"提交暂存区内容git commit -m "Fix bug"git status查看工作区状态git statusgit log查看提交历史git log --oneline (简洁模式)
三、分支管理

命令阐明示例git branch查看当地分支git branch -a (查看所有分支)git checkout <branch>切换分支git checkout devgit checkout -b <new-branch>创建并切换新分支git checkout -b feature-logingit merge <branch>合并分支git merge devgit branch -d <branch>删除当地分支git branch -d old-feature
四、远程堆栈操作

命令阐明示例git remote -v查看远程堆栈地址git remote -vgit pull拉取远程更新git pull origin maingit push推送当地提交git push origin devgit fetch获取远程更新(不合并)git fetch --all
五、取消与回退

命令阐明示例git restore <file>取消工作区修改git restore index.htmlgit reset --soft HEAD~1取消提交(保存修改)回退到上一个提交git reset --hard HEAD~1彻底丢弃末了一次提交慎用!会丢失修改git revert <commit-id>创建反向提交取消历史记录git revert abc123
六、查看差异

命令阐明示例git diff查看未暂存的修改git diffgit diff --staged查看已暂存的修改git diff --stagedgit diff <commit1> <commit2>比较两个提交的差异git diff abc123 def456
七、临时生存修改

命令阐明示例git stash暂存当前修改git stash save "WIP"git stash pop恢复最近暂存的修改git stash popgit stash list查看暂存列表git stash list
八、标签管理

命令阐明示例git tag查看所有标签git tag -l "v1.*"git tag <tagname>创建轻量标签git tag v1.0.0git push origin <tagname>推送标签到远程git push origin v1.0.0
九、配置文件

命令阐明示例git config --global user.name "name"设置全局用户名git config --global user.name "John"git config --global user.email "email"设置全局邮箱git config --global user.email "john@example.com"
十、忽略文件配置


  • 创建 .gitignore 文件
  • 添加需要忽略的文件模式:
    1. # 示例
    2. *.log
    3. node_modules/
    4. .env
    复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表