回购分支重组后将已提交的更改从已删除的分支移动到新分支
Move Committed changes from deleted branch to new branch after repo branch reorganization
我的场景如下。我从主分支创建了一个功能分支,在本地对其进行了更改并提交了更改。在此之后,在我可以推送和合并我的更改之前,对 Repo 进行了重组。现在,功能分支将从新创建的开发分支创建,而不是主分支。作为重组的一部分,我的分支已从服务器中删除。我还没有从服务器获取(编辑)/拉(编辑)。
我想尝试的是将我提交的更改从现在删除的分支移动到我将从开发分支创建的新功能分支。我正在使用比特桶。
master --> 有更改的旧分支(从服务器中删除但在本地可用)
到
开发 --> 新功能分支(待创建)
假设您本地的旧分支是 old-branch
,您要创建的新功能分支是 new-branch
(您尚未创建它),旧的基础分支是 master
并且新的基本分支是 dev
并且假设您的工作目录是干净的并且远程名称是 origin
最后,我们假设您在 old-branch
中的第一次提交的哈希是 [first-hash]
并且您的最后一次提交是 [last-hash]
(您可以通过 运行 git log old-branch
找到它们)。所以这应该可以解决您的问题:
git fetch origin;
git checkout dev;
git pull origin dev;
git checkout -b new-branch;
git cherry-pick [first-hash]^..[last-hash]; # pay attention to the ^ sign!
现在 new-branch
是 old-branch
的精确副本。
我的场景如下。我从主分支创建了一个功能分支,在本地对其进行了更改并提交了更改。在此之后,在我可以推送和合并我的更改之前,对 Repo 进行了重组。现在,功能分支将从新创建的开发分支创建,而不是主分支。作为重组的一部分,我的分支已从服务器中删除。我还没有从服务器获取(编辑)/拉(编辑)。 我想尝试的是将我提交的更改从现在删除的分支移动到我将从开发分支创建的新功能分支。我正在使用比特桶。 master --> 有更改的旧分支(从服务器中删除但在本地可用) 到 开发 --> 新功能分支(待创建)
假设您本地的旧分支是 old-branch
,您要创建的新功能分支是 new-branch
(您尚未创建它),旧的基础分支是 master
并且新的基本分支是 dev
并且假设您的工作目录是干净的并且远程名称是 origin
最后,我们假设您在 old-branch
中的第一次提交的哈希是 [first-hash]
并且您的最后一次提交是 [last-hash]
(您可以通过 运行 git log old-branch
找到它们)。所以这应该可以解决您的问题:
git fetch origin;
git checkout dev;
git pull origin dev;
git checkout -b new-branch;
git cherry-pick [first-hash]^..[last-hash]; # pay attention to the ^ sign!
现在 new-branch
是 old-branch
的精确副本。