我有一个名为
develop
的分支,我正在其中提交 c08e2887
。我必须返回到旧的提交6a73b96e
,对旧的提交进行一些更改,再次提交(我们称之为abc
)并将其推送到我的远程分支develop
。稍后,我需要在本地和远程返回我的(当前)提交c08e2887
。
我推送提交的远程分支
abc
应该具有相同的名称develop
,它不能是不同的,因为我需要运行一些依赖于它的其他进程。
最好的方法是什么?
或者,以下内容可以完成这项工作吗?
从当前分支
develop
在提交c08e2887
开始,我在想:
new_version
的新分支作为当前状态的备份develop
,git checkout 6a73b96e
返回到所需的提交develop
:现在本地和远程分支都在提交abc
develop
develop
提交 abc
,创建一个名为 old_version
的新分支作为备份develop
new_version
,创建一个(现在是新的)分支develop
(这将等于我在所有此过程之前拥有的分支)develop
推送到远程分支 develop
以远程返回我之前的分支 new_version
您的建议可以完成工作,但涉及一些不必要的步骤。这是一个较短的版本:
git checkout -b quickfix 6a73b96e # create a new branch from your old commit
# make changes
git commit -m 'these are my changes for commit abc'
git push +quickfix:develop # force-push quickfix over develop
# run whatever things you need to run in your remote repository
git push +develop:develop # force-push to restore your original develop