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

git操作0409

git init
git add.
git commit -m "Initial commit"
git checkout 7890abc # 切换到旧版本代码(只读)
git checkout master # 切回最新版本

git checkout -b new_branch 789abcd # 或 git checkout -b new_branch HEAD~3 很重点

git reflog #查看操作记录
git branch <被删分支名> 7890abc
git fetch origin
git checkout -b <分支名> origin/<分支名>
git log --oneline # 查看提交历史
git revert HEAD~2
(撤销 B) A -> B -> C -> D -> E E 是撤销 B 的修改后的新提交
目标:撤销 HEAD~2 这个提交引入的变更(不是撤销最近的两次提交)。

假设当前提交历史为:A -> B -> C -> D (HEAD),则 HEAD~2 指向提交 B。
执行后,会生成一个新的提交 E,其内容是将提交 B 的变更反向应用(即撤销 B 的修改)。
提交历史变为:A -> B -> C -> D -> E (HEAD)。
适用场景:

需要撤销某个旧提交(如提交 B 引入了一个 Bug)。
团队协作时,已推送的提交不可用 reset,只能用 revert
git reset --hard HEAD~2 A -> B 代码完全回退到提交 B 的状态
git revert HEAD~2
git reset --hard HEAD~2

HEAD 表示当前最新的提交。
~2 表示向前回退 2 个提交(即丢弃最近的 2 次提交)。
例如,当前提交历史是 A <- B <- C (HEAD),执行后代码会回退到提交 A。
效果:
代码回退:将代码库(工作目录、暂存区、提交历史)强制重置到 HEAD~2 对应的提交

git reset --hard 7890abc
含义:
7890abc:
某个具体的提交哈希(Commit Hash),例如 7fa6cea 或 ebdeed8。
可以是任意历史提交的哈希(前 7 位即可)。
效果:
精准回退:将代码库强制重置到指定提交 7890abc 的状态。
提交历史变更:
如果 7890abc 是较早的提交(例如比当前提交早 5 次),则所有后续提交都会被丢弃。
例如,提交历史是 A <- B <- C <- D <- E (HEAD),执行 git reset --hard B 后,代码会回退到 B,且提交 C/D/E 会被丢弃。
适用场景:
需要回退到某个特定版本(例如测试某个旧版本的问题)。
4. 风险警告
–hard 是危险操作!
它会永久删除工作目录和暂存区的所有未提交修改,以及回退路径上的提交历史。
如果代码未备份(例如未推送到远程仓库),可能导致数据丢失!
补救措施(如果误操作):
如果刚刚执行了 git reset --hard,但终端未关闭:
用 git reflog 找到之前的提交哈希,再 git reset --hard <旧哈希> 恢复。
如果已关闭终端且未备份:
数据可能无法恢复(取决于 Git 的垃圾回收机制)。

(jizhi) (base) ljsang@user:~/demo_all/jizhi$ git log --oneline
7fa6cea (HEAD -> master) Refactor analysis mechanism to support asynchronous processing. Update DirectMechanismAnalyzer methods to be asynchronous, allowing concurrent analysis of documents. Modify API to utilize the updated analyzer and improve performance. Enhance logging for analysis tasks and results.
f40f314 Implement logging for API requests and analysis in the FastAPI application. Refactor the analysis mechanism to log request details, analysis start and completion times, and errors. Remove print statements and replace them with appropriate logging calls. Update the DirectMechanismAnalyzer to include logging for API calls and analysis results.
ebdeed8 Sure! Pl

---
  1. (HEAD -> master)
    HEAD:
    表示当前你所在的分支或提交位置。HEAD 是 Git 中的一个指针,指向你当前正在操作的提交(类似于“当前位置”的标记)。
    master:
    当前分支的名称(默认主分支)。HEAD -> master 表示你当前位于 master 分支的最新提交上。
  2. 7fa6cea、f40f314、ebdeed8
    这些是 提交哈希(Commit Hash),是 Git 为每个提交生成的唯一标识符。

作用:
用于唯一标识一个提交(例如回退版本、查看差异、合并代码时)。
由 40 位十六进制字符组成(如 7fa6cea… 是前 7 位的缩写,足够唯一标识)。
如何用:
查看提交详情:git show 7fa6cea
比较提交差异:git diff f40f314 ebdeed8

http://www.dtcms.com/a/121222.html

相关文章:

  • ruby self
  • 探索 Shell 中的扩展通配符:从 Bash 到 Zsh
  • ​​AMS行政管理系统:数字化赋能人力资源精益管理​
  • LeetCode 252 会议室题全解析:Swift 实现 + 场景还原
  • Cherry Studio配置MCP server
  • 记录学习的第二十四天
  • 用一个实际例子快速理解MCP应用的工作步骤
  • C++学习之服务器EPOLL模型、处理客户端请求、向客户端回复数、向客户端发送文件
  • Java蓝桥杯习题一:for循环和字符串的应用
  • Windchill开发-WTContainer相关API整理
  • 【项目实训项目博客】prompt初版实践
  • 流浪动物管理系统设计与实现(代码+数据库+LW)
  • 《系统分析师-案例实践篇-16-22章总结》
  • 图灵逆向——题七-千山鸟飞绝
  • 封装方法的辨析
  • MuMu 模拟器过检测技术全解析
  • 牛客 小苯的Z串匹配
  • 隐性需求未识别,项目后期如何补救
  • 这是专业翻译的生产力工具
  • 远程团队协作效率低,如何优化
  • AI开发学习路线(闯关升级版)
  • Kairos 的野望:构建“智能体即服务”生态,让万物皆可 “Agent”
  • Python标准库-logging
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(十二)
  • list的底层:
  • 进度管理__制订进度计划_资源平衡和资源平滑
  • DEM精度、地形图比例尺与卫星遥感分辨率的奇妙关系
  • floyd模板
  • SpringBoot无法访问静态资源文件CSS、Js问题
  • 未来 AI 发展趋势与挑战(AGI、数据安全、监管政策)