将提交从 master 移动到独立分支

Move a commit to independent branch from master

我分错了分支,我想将提交移至主分支而不是功能分支。尝试使用 feat2 的 rebase master 但我得到 "Current branch ... is up to date"

基本上我想从这里开始

feat2                   F
                       /
feat1         C - D - E
             /
master A - B 

对此

feat1         C - D - E
             /
master A - B 
             \
feat2         F

当然F不依赖于C-D-E中的任何一个

编辑:强制变基显示不仅在 feat2 上考虑了 F,而且来自 master 的所有提交都变基了 (C-D-E-F)。我需要的是一种在 feat1.

处告诉 "cut" 变基的方法

尝试使用 git rebase --onto:

git checkout feat2
git rebase --onto E B

这表示要在提交 B 之上变基提交 F,其父项是 E。这让 feat2 看起来如你所愿,F 提交直接位于 B.

之上

另一种简单的处理方法是从 master 分支出一个新功能 2 分支 feat2new,然后选择提交 F。在此之后,您可以删除旧的 feat2 分支并将 feat2new 重命名为 feat2:

git checkout master
git checkout -b feat2new
git cherry-pick <SHA-1 for commit F>

现在删除 feat2,并重命名:

git branch -d feat2
git branch -m feat2new feat2