2017-05-19 6 views
1

私の共通のワークフローはコード編集をして、git add --patchを使って論理的に一貫性のあるコミットに整理することです。git add --patch次のコミットまで追加したくなかったハンクを覚えておいてください。

まで何度も来てシナリオが再びこのです:

  1. 私は意味をなさないいくつかの変更を加える
  2. を作りたいコミットに関係しない変更の束をスキップ
  3. 私はインタラクティブ
  4. が、私は私のエディタに戻って、小さな変更を加える追加し、私は私が終了しqを打つ
  5. を削除するのを忘れてタイプミスやいくつかのコメントアウトされたコードを見つける
  6. 私は、私は非常に慎重に、私は私が私の新しく更新された塊に到達
  7. を含めたくないすべての兄貴のために再び上nを入力して確認して、もう一度設定変更の全体を歩き、再び
  8. git add --patchを開始それを追加するにはyと入力します。
  9. GOTOステップ1

ようやく私のコミットが行く準備ができるまでこのサイクルは何度も繰り返しを果たしています。

gitが明示的に追加を拒否したハンクを覚えているので、次回にgit add --patchを実行すると、再度拒否する必要はありません。

私はgitがこれをサポートしているとは思っていませんが、これを簡単にするツールやワークフローはありますか?

+0

あなたが「頻繁にコミット、早期にコミット」スタイルを信奉していない理由は、任意の理由は? – Makoto

+0

私はかなり頻繁にコミットしますが、特に馴染んでいないコードベースや何かをスパイクしている場合は、私の作業コピーで1つのコミットにまとめるのは意味がありません。 – adamesque

+0

何が価値あるのか、私は再建と浄化が必要な多くのハッキングをした時に、同じような状況にいることに気付きました。 'git add -p'で少しコミットしようとするのではなく、一時的なブランチに大きな変更を加えるだけで、"実際のブランチ "のより小さな、より良い計画された変更からやり直してください。 – torek

答えて

0

これは、私のエディタ(現在のVSCode)のGit統合を使用して実現するのが最も可能です。

変更のあるファイルを表示するにはファイルの領域を選択し、Git: Stage Selected Rangesコマンドを実行してハンクをステージングすることができます。エディタの中にいるので、ステージングする前に変更するのは簡単です。

私のワークフローを変更してこのようにステージングする必要があるかもしれません。

(私はEmacsの中Magitは、ワークフローのこの種をサポートしています信じています。)

関連する問題