2013-03-26 48 views
6

私は間違ったアプローチをとっていました。私の現在のコミットの前にこのブランチにコミットします。git rebaseインタラクティブの後に "deleted by us"と解釈する方法

このタイプの状況でこれまでにやったことは、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「私たちによって削除された」ファイルの前にある場合、これらのファイルは削除されますか?

答えて

1

コミットを削除することによって、まったく起こらないかのようになります。したがって、削除されたばかりの前回のコミットにファイルを追加した場合、そのファイルも削除されます。それはおそらくあなたがそのメッセージを見ている間です。これはおそらく、あなたが最終結果の一部として望んでいた既存ファイルへの変更を削除するでしょう。私は間違ってrebaseを使用していると思います。

最後のコミットの終わりにすべてが元の状態になったら、スカッシュ最後にコミットする必要があります。あなたはこれをいくつかの方法で行うことができます。 rebase -iを使用し、editの代わりにsまたはsquashを指定すると、最初のコミット行以外のすべてのコミット行に適用されます。

それを行うための他の方法は次のようになります。

<N>はあなたがスカッシュする必要がコミットの数バックアップされ
git reset --soft HEAD~<N> 
git commit 

関連する問題