在处理特定于功能的分支(来自"开发"分支)时,我采取了错误的方法(几次:/)并且基本上想要在我当前提交之前删除此分支上的所有提交.
我之前在这种情况下所做的是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
Run Code Online (Sandbox Code Playgroud)
我不知道如何回应这个.如果我git add之前被"我们删除"的文件,它会删除这些文件吗?
通过删除提交,就好像它们从未发生过一样。因此,如果您在之前的提交中添加了刚刚删除的任何文件,这些文件也将被删除。那可能是在您看到该消息时。这可能会删除您想要作为最终结果一部分的对现有文件的更改。我认为您错误地使用了 rebase。
如果在最后一次提交结束时,所有内容都处于您想要的状态,那么您应该简单地压缩最后一次提交。您可以通过几种方式做到这一点。rebase -i像您一样使用并为除第一行之外的所有提交行指定sor代替即可。squashedit
另一种方法是:
git reset --soft HEAD~<N>
git commit
Run Code Online (Sandbox Code Playgroud)
<N>您需要压缩的提交数量在 哪里?