所以,这是我的解决方案:
git rebase\ -ix "git rev-parse --short HEAD > tmp && \ echo 'from: $ ' > tmp && \ git commit --amend -F tmp"
请确保branch_shortid
是正确的,你想变基含量分支产生的.
免责声明:我不确定这是否适用于所有情况,特别是如果你有一些奇怪或复杂的参考系统.我在一个非常简单的git repo上运行了这个:
$ git init $ echo "a" > a.txt && git add . && git commit -m "first commit" $ git checkout -b "feature1" $ echo "b" > b.txt && git add . && git commit -m "second commit" $ echo "c" > c.txt && git add . && git commit -m "third commit" $ feature1id=$(git rev-parse --short HEAD) $ git checkout master $ git rebase feature1 \ -ix "git rev-parse --short HEAD > tmp && \ echo 'from: $feature1_id' > tmp && \ git commit --amend -F tmp"
这是相应的输出:
如前所述,我认为您使用的git reflog
是一个更好的解决方案,用于调查哪个分支合并到所需分支上的提交.
重新定位的关键是将提交应用到另一个分支的顶部,就好像这是首先提交结构:
重新生成产生线性历史.