Git-在不丢失工作的情况下恢复分支
对于这个特殊的项目,我在“开发”和“大师”两个分支工作。我一直在做一些关于“开发”的工作,并致力于改变。客户随后告诉我,他们不想接受这些变化 我需要返回,而不影响这些更改,因为在启用之前,我还要对存储库进行其他更改。有没有一种优雅的方法可以让我不损失任何工作 我在想:Git-在不丢失工作的情况下恢复分支,git,Git,对于这个特殊的项目,我在“开发”和“大师”两个分支工作。我一直在做一些关于“开发”的工作,并致力于改变。客户随后告诉我,他们不想接受这些变化 我需要返回,而不影响这些更改,因为在启用之前,我还要对存储库进行其他更改。有没有一种优雅的方法可以让我不损失任何工作 我在想: 分支“开发”,因为它目前具有此功能 重置“开发”,使以前的更改不在 一旦功能准备就绪,就可以合并回develop 编辑: 我现在有三个分支机构: 掌握,开发新 “新”包含了我目前还不想使用的所有新功能 开发包含工作副本 我运行
- 分支“开发”,因为它目前具有此功能
- 重置“开发”,使以前的更改不在
- 一旦功能准备就绪,就可以合并回develop
掌握
,开发
新
“新”包含了我目前还不想使用的所有新功能
开发包含工作副本
我运行了git重置--硬[数字]
这已将develope
恢复到new
我在develope
上做了一些小改动,然后运行:
git添加。
git commit-m“Fix-Contact form”
git推源开发
但是得到:
![拒绝]开发->开发(非快进)
更新被拒绝,因为您当前分支的提示落后于
首先:除非您真的想删除分支,从reflog
删除提交并执行Git gc
,否则您永远不会丢失任何东西
如果我了解你的情况,你有:
* 3456789 (master)
| * 2345678 What I dont want yet (develop)
| * 1234567 What I want
* |
|/
*
因此,您希望创建一个新分支develop2
将您的分支development
重置为1234567
,并将其合并到master
:
$ git checkout -b develop2 develop
$ git checkout develop
$ git reset --hard 1234567
$ git merge master
你最终会得到这个:
* 5678912 (master, develop)
|\
* |
| | * 2345678 What I dont want yet (develop2)
| |/
| * 1234567 What I want
* |
|/
*
您好,这很有效,我已将
开发
重置为重大更改之前的提交。然而,它仍然说我落后了什么落后于什么?你不能还原这里的任何东西。不要与git revert命令混淆。要做的是reset
branch@nowox我确实重置了分支