Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git-在不丢失工作的情况下恢复分支_Git - Fatal编程技术网

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我确实重置了分支