如何在git中将未推送的提交从一个(本地)分支移动到另一个分支?

如何在git中将未推送的提交从一个(本地)分支移动到另一个分支?,git,bitbucket,Git,Bitbucket,我想将尚未推送到远程的本地提交移动到另一个分支 我应该遵循这个工作流程。我们刚开始练习,有点忘了。我们有这个JIRA&Bit桶。我们必须从JIRA项创建一个分支。然后我在本地签出这个分支,处理这个分支并提交(推送)到它,向代码审阅者发出请求,然后它被合并到相应的分支并向上合并到主分支 我忘了为JIRA项目创建分支。相反,我工作并致力于我当地的分支机构,比如说4.10BR。我做了3个单独的提交(关于这3个单独的JIRA项目) 我的git日志显示。。。 关于分支版本/4.10 您的分支比“origi

我想将尚未推送到远程的本地提交移动到另一个分支

我应该遵循这个工作流程。我们刚开始练习,有点忘了。我们有这个JIRA&Bit桶。我们必须从JIRA项创建一个分支。然后我在本地签出这个分支,处理这个分支并提交(推送)到它,向代码审阅者发出请求,然后它被合并到相应的分支并向上合并到主分支

我忘了为JIRA项目创建分支。相反,我工作并致力于我当地的分支机构,比如说4.10BR。我做了3个单独的提交(关于这3个单独的JIRA项目)

我的git日志显示。。。 关于分支版本/4.10 您的分支比“origin/release/4.10”提前3次提交。 (使用“git push”发布本地提交)

现在,我将在(通过)Jira BitBucket中分别为这3个项目创建一个分支,检查这些分支,并将我的提交“移动”到这些分支(比如b1、b2和b3),然后推动这些分支


由于我仍然是git的学习者,我不知道如何在这方面取得进展?

这是一个常见的工作流错误,在过去十年中我已经犯了几十次。我通常的处理方法是执行以下操作:

创建新的实际善意分支机构,您首先应该创建该分支机构:

# from release/4.10
git branch feature/some_name
现在,创建了一个分支
功能/某个名称
,其中包含您的单个提交工作。剩下的唯一问题是
release/4.10
分支,它现在还包含一个不需要的提交。鉴于您尚未推送发布分支,我们可以尝试在该分支上执行硬重置以删除此提交:

# from release/4.0, again
git reset --hard HEAD~1

现在,您拥有了功能分支,并且发布分支处于如果您从一开始就遵循正确的工作流,它将处于的状态。

您可以使用命令
git checkout-b“分支名称”
从当前分支创建一个新分支。这将使您的代码在新分支中保持3次提交。如果已经创建了分支,则可以使用git merge'other branch'

将当前分支与另一个分支合并。如果要将更改移动到现有分支和/或在错误的分支中有多个提交,请尝试以下操作。在我的例子中,当我打算致力于发展时,我致力于掌握,所以看起来是这样的:

git checkout develop
git merge master
git checkout master
git reset --hard [HASH]
其中[HASH]是不需要的修改之前的提交哈希,您也可以使用
HEAD~n
代替[HASH],n是不需要的提交数

如果您的分支不存在,只需使用git checkout-b branchname创建它,然后合并并重置