指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

关于git的reset无效的场景:

关于 git reset --hard HEAD^ 无效的一种场景:
commit a5e7e31afcef015ee0d26e714a9233e8a450a42b (HEAD -> feat/HUIYI-1156_base-feature-event-settings-registration, origin/feat/HUIYI-1156_base-feature-event-settings-registration)
Merge: b9acf56a 2c3e3942
Author: guoshipeng <shipeng.guo@qinhong.com>
Date:   Thu Nov 28 13:40:32 2024 +0800

    fix(): merge conflict

commit 2c3e394267c2a55c3aca2bdc87509d20ed1932a0 (origin/version_1_0_0, version_1_0_0)
Author: Shipeng Guo <shipeng.guo@qinhong.com>
Date:   Thu Nov 28 03:34:14 2024 +0000

    Resolve HUIYI-1494 "Feat/ update mui version"

commit 3b678c619b9ce372a7ec4d944be6562144c96271
Author: Yaqi Deng <yaqi.deng@qinhong.com>
Date:   Tue Nov 26 13:17:33 2024 +0800

    feat: HUIYI-1288 add presentation video settings

commit b9acf56a23962c2c7cc6baea003a8c5c021545d3
Author: Shipeng Guo <shipeng.guo@qinhong.com>
Date:   Thu Nov 28 01:48:55 2024 +0000

    Resolve HUIYI-1206 "Feat/ registration tickets"
  
分析:
commit a5e7e31afcef015ee0d26e714a9233e8a450a42b (HEAD -> feat/HUIYI-1156_base-feature-event-settings-registration, origin/feat/HUIYI-1156_base-feature-event-settings-registration)
Merge: b9acf56a 2c3e3942
  
从提供的 Git 提交记录:
  

commit a5e7e31afcef015ee0d26e714a9233e8a450a42b (HEAD -> feat/HUIYI-1156_base-feature-event-settings-registration, origin/feat/HUIYI-1156_base-feature-event-settings-registration) Merge: b9acf56a 2c3e3942

我们可以解析出以下信息:
  
### 1. **当前的 `HEAD`**
- `HEAD -> feat/HUIYI-1156_base-feature-event-settings-registration`:
  - `HEAD` 指向的是 `feat/HUIYI-1156_base-feature-event-settings-registration` 分支。
  - 这个分支当前处于提交 `a5e7e31afcef015ee0d26e714a9233e8a450a42b`,并且是 `origin/feat/HUIYI-1156_base-feature-event-settings-registration`(即远程分支)的当前状态。
  
### 2. **合并提交(Merge Commit)**
- `Merge: b9acf56a 2c3e3942`:
  - 这表明 `a5e7e31afcef015ee0d26e714a9233e8a450a42b` 是一个 **合并提交**(merge commit),它有两个父提交:
    - 第一个父提交是 `b9acf56a23962c2c7cc6baea003a8c5c021545d3`,这是一个之前的提交,可能来自分支 `feat/HUIYI-1156_base-feature-event-settings-registration`。
    - 第二个父提交是 `2c3e394267c2a55c3aca2bdc87509d20ed1932a0`,这可能来自另一分支(如 `version_1_0_0`)或是被合并的分支。
  
### 3. **远程和本地分支**
- `origin/feat/HUIYI-1156_base-feature-event-settings-registration` 表示远程仓库的 `feat/HUIYI-1156_base-feature-event-settings-registration` 分支,指向同一个提交(`a5e7e31afcef015ee0d26e714a9233e8a450a42b`)。
- `HEAD` 指向本地分支 `feat/HUIYI-1156_base-feature-event-settings-registration`,这表明你正在该分支上工作。
  
### 结论
- 当前的 `HEAD` 指向 `feat/HUIYI-1156_base-feature-event-settings-registration` 分支的合并提交 `a5e7e31afcef015ee0d26e714a9233e8a450a42b`。
- 合并提交有两个父提交:`b9acf56a23962c2c7cc6baea003a8c5c021545d3` 和 `2c3e394267c2a55c3aca2bdc87509d20ed1932a0`。
  
为什么 git reset --hard HEAD^ 可能无效
合并提交有多个父提交:当你执行 git merge 时,它会生成一个合并提交,该提交通常有两个父提交。在这种情况下,HEAD^ 只会回退到合并提交的第一个父提交,而不是你希望回退到的版本。
回退到更早的提交:如果你想回到合并操作之前的状态,并且合并提交的第一个父提交已经包含了许多更早的提交,HEAD^ 可能会把你带到一个意外的提交,而不是直接回到你预期的版本。
  
解决办法明确指定你希望回退到的提交哈希值,通过 git reset --hard <commit-hash> 来回退到正确的提交。git log --oneline 查看完整的hash值。