6

在处理特定于功能的分支(来自“开发”分支)时,我采取了错误的方法(几次:/),并且基本上想在我当前提交之前删除我在这个分支上的所有提交。

在这种情况下,我之前所做的是在git rebase -i development我想要保留的(最新的)之前执行并删除所有提交,然后执行 git push --force 来更新远程仓库以仅包含我最最近的黄金承诺。

完成此操作后,当我提交此 rebase 提交的更改时,看起来 git 对我的请求的响应有点奇怪。它说有几个文件

both modified:      app/helpers/statistics_helper.rb
deleted by us:      app/models/referrals/chart.rb
deleted by us:      app/views/statistics/_referrals.html.haml
deleted by us:      app/views/statistics/_referrals2.html.haml
deleted by us:      app/views/statistics/_referrals3.html.haml

我不知道该如何回应。如果我git add前面有“被我们删除”的文件,它会删除这些文件吗?

4

1 回答 1

1

通过删除提交,就好像它们从未发生过一样。因此,如果您在之前的提交中添加了刚刚删除的任何文件,这些文件也将被删除。那可能是在您看到该消息时。这可能也会删除您想要作为最终结果的一部分的预先存在的文件的更改。我认为您使用的变基不正确。

如果在最后一次提交结束时一切都处于您希望的状态,那么您应该简单地压缩您的最后一次提交。你可以通过几种方式做到这一点。像您一样使用rebase -i并指定sorsquash代替edit除第一个以外的所有提交行将执行此操作。

另一种方法是:

git reset --soft HEAD~<N>
git commit

<N>您需要压缩的提交数量 在哪里。

于 2013-07-01T19:26:14.437 回答