gitで特定の変更をコミットする方法

チェ

インターフェイス(IMooからIKey)とクラスファイル(MooからKey)の名前を変更しました。その後、クラスファイルにメソッド(blob())を作成し、インターフェイスに実装を作成しました。これらの2つの変更をgitで別々にコミットするにはどうすればよいですか?

そのため、最初のコミットには名前変更の変更のみが含まれ、2番目のコミットにはインターフェイスのメソッドと実装が含まれます。

マーク・アデルスバーガー

すべてを組み合わせた後で変更を分離しようとするよりも、変更を加えるときに個別にコミットする方がはるかに簡単です。

つまり、インタラクティブなステージングなどをいじるよりも、最初の変更をやり直してコミットしてから、完全な変更を再適用する方が簡単な場合があります。

やり直しアプローチ

したがって、たとえば、現在の変更を保存して取っておくこともできます

git stash

次に、名前変更操作をやり直します。これは簡単なはずです。次に、

git add .
git commit -m "rename class and interface"

次に、完全な変更を元に戻します。起こりうる衝突を避けるために、私は次のようなことをします

git checkout HEAD^
git stash pop
git reset --mixed HEAD@{1}

これで、履歴に名前の変更が表示され、作業ツリーの残りの変更をステージングしてコミットする準備ができているはずです。

やり直しアプローチなし

上記は、クラスの名前変更を簡単にやり直すことができることを前提としています。これは、小さな変更(小さなコードベース、または影響を受けるクラスとインターフェイスを参照するコードベース全体の参照が少ないため)、またはIDEがそれを行うためです。あなた(そうでない場合は、より優れた開発ツールの使用を検討することをお勧めします)。しかし、もっと複雑な変更があった場合はどうなりますか?

理想的にはgit add -i、対話型のステージングセッションを開始し、プロンプトを処理して、クラス名の変更が行われているが、新しいメソッドが行われていないことを指定することができます。それらは別々の変更ハンクでなければならないので、わかりました...

ただし、問題は、プログラミング言語とコードレイアウトによっては、クラスの名前を変更したときにファイルの名前を変更した可能性があることです。インタラクティブなステージングツールは、それをうまく処理できません。

だから、その場合には、あなたは、コミット戻って、前に行くことができるだけでインタラクティブなステージング操作を行い、その後、新しいコミットの上にあなたの変更を復元、その後、ファイル名を変更して、それをコミットします。しかし、それをすべて行うまでに、私の最初の提案のほぼすべてのステップに加えて、インタラクティブなリベースを完了しました。それでも、履歴には余分な/壊れた/おそらく不要なコミットが残っています(おそらく押しつぶしたい)...それで、ポイントは何ですか?

何らかの理由でこの方法で試してみたい場合は、およびオプションにgit add関連するドキュメントを参照してくださいhttps://git-scm.com/docs/git-add-i-p

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

gitの特定の変更のみをコミットする正しい方法は何ですか?

分類Dev

gitが特定のローカル変更のセットをコミットしないようにする方法

分類Dev

Gitで特定のコミットをマージする方法

分類Dev

JGitでコミット間の変更を表示する方法

分類Dev

Gitリポジトリに匿名で変更をコミットする方法

分類Dev

特定のコミットからファイルの変更を削除する方法

分類Dev

Concourseビルドでgitに変更をコミットする方法は?

分類Dev

Git で古いコミットを変更または削除する方法は?

分類Dev

Gitにすでにコミットされているファイルの変更を無視する方法

分類Dev

リモートサーバーで行われたgitの変更をコミットする方法

分類Dev

gitのコミット日を変更することは可能ですか?

分類Dev

Gitでいくつかのコミットを修正して作成者を変更する方法

分類Dev

シェルスクリプトで* n *コミットのgit履歴(コミット日)を変更する

分類Dev

Git:前のコミットでファイルを変更する

分類Dev

Git:HEAD ^^コミットのコンテンツ(コミットメッセージではない)を変更する方法

分類Dev

特定のコミットで作成者/メールを変更する

分類Dev

Git pre-commitフック:特定のファイルを変更するコミットを防止します

分類Dev

Git pre-commitフック:特定のファイルを変更するコミットを防止します

分類Dev

git:コミットによる特定のファイルへの変更を表示する

分類Dev

Gitから特定のコミットを削除する方法は?

分類Dev

git commitがNanoを開いたときにgitの変更をコミットする方法は?

分類Dev

git commitがNanoを開いたときにgitの変更をコミットする方法は?

分類Dev

任意のコミットで変更を元に戻す方法は?

分類Dev

特定のGITコミット以降に変更されないすべてのファイルを一覧表示する方法

分類Dev

特定のファイルへの変更を個別のコミットとして分離するGitコミットポリシー

分類Dev

Git:なぜ他の人の変更をコミットする必要があるのですか?

分類Dev

Git:前のコミットとプッシュの内容を変更する

分類Dev

現在のブランチにコミットを追加して、コンテンツを別のブランチの特定のコミットに変更する方法

分類Dev

TortoiseHgで特定のファイルを変更するすべてのコミットを検索します

Related 関連記事

  1. 1

    gitの特定の変更のみをコミットする正しい方法は何ですか?

  2. 2

    gitが特定のローカル変更のセットをコミットしないようにする方法

  3. 3

    Gitで特定のコミットをマージする方法

  4. 4

    JGitでコミット間の変更を表示する方法

  5. 5

    Gitリポジトリに匿名で変更をコミットする方法

  6. 6

    特定のコミットからファイルの変更を削除する方法

  7. 7

    Concourseビルドでgitに変更をコミットする方法は?

  8. 8

    Git で古いコミットを変更または削除する方法は?

  9. 9

    Gitにすでにコミットされているファイルの変更を無視する方法

  10. 10

    リモートサーバーで行われたgitの変更をコミットする方法

  11. 11

    gitのコミット日を変更することは可能ですか?

  12. 12

    Gitでいくつかのコミットを修正して作成者を変更する方法

  13. 13

    シェルスクリプトで* n *コミットのgit履歴(コミット日)を変更する

  14. 14

    Git:前のコミットでファイルを変更する

  15. 15

    Git:HEAD ^^コミットのコンテンツ(コミットメッセージではない)を変更する方法

  16. 16

    特定のコミットで作成者/メールを変更する

  17. 17

    Git pre-commitフック:特定のファイルを変更するコミットを防止します

  18. 18

    Git pre-commitフック:特定のファイルを変更するコミットを防止します

  19. 19

    git:コミットによる特定のファイルへの変更を表示する

  20. 20

    Gitから特定のコミットを削除する方法は?

  21. 21

    git commitがNanoを開いたときにgitの変更をコミットする方法は?

  22. 22

    git commitがNanoを開いたときにgitの変更をコミットする方法は?

  23. 23

    任意のコミットで変更を元に戻す方法は?

  24. 24

    特定のGITコミット以降に変更されないすべてのファイルを一覧表示する方法

  25. 25

    特定のファイルへの変更を個別のコミットとして分離するGitコミットポリシー

  26. 26

    Git:なぜ他の人の変更をコミットする必要があるのですか?

  27. 27

    Git:前のコミットとプッシュの内容を変更する

  28. 28

    現在のブランチにコミットを追加して、コンテンツを別のブランチの特定のコミットに変更する方法

  29. 29

    TortoiseHgで特定のファイルを変更するすべてのコミットを検索します

ホットタグ

アーカイブ