如何解释git rebase交互后的“deleted by us”?

6

在从“开发”分支创建的特定功能分支上工作时,我采取了错误的方法(几次 :/),基本上想要删除在当前提交之前该分支上的所有提交。

在这种情况下,我以前所做的是执行git rebase -i development,然后删除我想保留的提交之前的所有提交(最新的提交),然后执行 git push --force 命令来更新远程存储库,使其只包含我最近的提交。

在完成此操作后,当我要为此重新提交提交更改时,看起来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把那些带有“deleted by us”的文件添加进去,它会删除这些文件吗?
1个回答

1
通过移除提交,就好像它们从未发生过一样。所以,如果您在之前的提交中添加了任何文件,而这些文件只是被删除了,那么这些文件也将被删除。这可能就是您看到该消息的原因。这也可能会删除您想要作为最终结果的现有文件的更改。我认为您使用rebase不正确。
如果在您最后一次提交结束时,所有内容都处于您想要的状态,则应该简单地压缩您的最后几个提交。您可以通过几种方式来做到这一点。使用rebase -i并在除第一个提交行外的所有提交行上指定s或squash而不是edit即可实现。
另一种方法是:
git reset --soft HEAD~<N>
git commit

<N>是需要合并的提交数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接