“如何解释”;“由我们删除”;git rebase交互后

“如何解释”;“由我们删除”;git rebase交互后,git,git-rebase,Git,Git Rebase,在处理特定于特性的分支(来自“开发”分支)时,我采取了错误的方法(有几次:/),基本上希望在当前提交之前删除此分支上的所有提交 在这种情况下,我以前做过的是执行git-rebase-I开发并删除我想要保留的(最新的)提交之前的所有提交,然后执行git-push——强制更新远程回购,以仅包含我最近的黄金提交 完成此操作后,当我提交此rebase提交的更改时,git似乎对我的请求做出了有点奇怪的响应。上面说有几个文件 both modified: app/helpers/statistic

在处理特定于特性的分支(来自“开发”分支)时,我采取了错误的方法(有几次:/),基本上希望在当前提交之前删除此分支上的所有提交

在这种情况下,我以前做过的是执行
git-rebase-I开发
并删除我想要保留的(最新的)提交之前的所有提交,然后执行git-push——强制更新远程回购,以仅包含我最近的黄金提交

完成此操作后,当我提交此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添加前面带有“deleted by us”的文件,它会删除这些文件吗?

通过删除提交,就好像它们从未发生过一样。因此,如果您在以前的提交中添加了刚刚删除的任何文件,这些文件也将被删除。这可能是当你看到这个信息的时候。这可能会删除对先前存在的文件所做的更改,这些更改也是最终结果的一部分。我认为您使用的rebase不正确

如果在最后一次提交结束时,所有内容都处于您希望的状态,那么您只需挤压最后一次提交即可。你可以用两种方法来做。对所有提交行(第一行除外)使用
rebase-i
,并指定
s
squash
而不是
edit
,即可完成此操作

另一种方法是:

git reset --soft HEAD~<N>
git commit
git重置——软头~
git提交
其中
是您需要压缩的提交回数