2014-01-14 36 views
0

我在Bitbucket上有一个仓库。我有点搞砸了提交日志,当我试图壁球提交c2658250a1837e我该如何解决这个git commit log?

enter image description here

试图壁球这些提交导致0942142,这基本上是空的。我的意思是,如果我尝试查看提交,它显示没有更改文件,这对于“合并”提交可能是正常的 - 我不知道。

很显然,我需要向推前到位桶来解决这样的事情,但我怎么能在事后修复它?如果可能,我想压缩0942142,c2658250a1837e,因此它看起来像一个名为“删除未使用的文件”的单个提交。

PS:这是一个私人回购协议(现在),所以没有人已经退出所有这些变化(还)。

编辑: TheBuzzSaw的答案是正确的,因为从0a1837e开始压缩每一个提交。 (我只想压缩这三个提交并保留其余的历史,但是(截图是一个模型 - 并不代表实际的变化)。所以,我不得不这样做:

git reset --hard HEAD~7 
git cherry-pick -n 0a1837e..c265825 
git cherry-pick -n -m 1 0942142 
git commit -m "Removed unused files" 
git cherry-pick 8f8308b 
git cherry-pick f7b14f5 
git cherry-pick bb90ff9 
git cherry-pick 976985d 
git cherry-pick 6f4d0c2 

现在我的提交日志美化:

enter image description here

回答

2
git branch area51 
git reset --hard HEAD~7 
git merge --squash --no-commit area51 
git commit -m "My new commit message." 
git push -f 
git branch -D area51 

根据需要调整。

+0

我应该提到自从合并后('0942142')我有五个额外的提交。这会改变什么吗? –

+0

是的,但它们应该是微小的调整。你可以'git reset'回到你的安全区域,然后'git cherry-pick'单独提交(再次传递'--no-commit'选项以简单地将更改应用到当前状态)。 – TheBuzzSaw

+0

对不起,我很困惑。你可以看看我的文章中更新的日志,并告诉我我需要做什么? –