[解決済み] Git でファイルの一部分のみをコミットする
2022-03-15 11:10:05
質問
Git でファイルに変更を加えたとき、どうすれば一部の変更だけをコミットできますか?
例えば、あるファイルで変更された30行のうち、15行だけをコミットするにはどうしたらよいでしょうか?
どのように解決するのですか?
を使用することができます。
git add --patch <filename>
(または
-p
と入力すると、git はファイルを適切な大きさの塊 (hunks) に分解し始めます。) そして、このような質問が表示されます。
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
以下は、各オプションの説明です。
- y 次のコミットのためにこのハンクをステージングします。
- n 次のコミットのためにこのハンクをステージングしない
- q quit; このハンクや残りのハンクをステージングしないでください。
- a このハンクと、それ以降のファイル内のすべてのハンクをステージ化します。
- d このハンクやそれ以降のハンクをステージングしないでください。
- g 移動するハンクを選択する
- / 与えられた正規表現にマッチするハンクを検索します。
- j このハンクを未決定のままにして、次の未決定のハンクを参照してください。
- J このハンクは未決定のまま、次のハンクを見る
- k このハンクは未定にして、前の未定のハンクを参照してください。
- K このハンクは未決定のまま、前のハンクを参照
- s 現在のハンクをより小さなハンクに分割する
-
e
現在のハンクを手動で編集する
-
次に、ハンクを手動で編集するために
+
/-
によって#
(感謝 ベクセン )
-
次に、ハンクを手動で編集するために
- ? ハンクヘルプを表示
ファイルがまだリポジトリにない場合は、まず、以下のようにします。
git add -N <filename>
. その後で
git add -p <filename>
.
その後、使用することができます。
-
git diff --staged
正しい変更をステージングしたことを確認するために -
git reset -p
誤って追加されたハンクのステージを解除するために -
git commit -v
を使えば、コミットメッセージを編集している間に自分のコミットを見ることができます。
とは大きく異なることに注意してください。
git format-patch
このコマンドの目的は、コミットデータをパースして
.patch
ファイルを作成します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] ファイルをリセットしたり、特定のリビジョンに戻したりするにはどうすればよいですか?
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[解決済み】gitが「変更をコミットするか、マージする前にstashしてください」と言うのを解決するには?
-
[解決済み】ローカルに変更があるにもかかわらず、git pushが「すべて最新」と言う
-
[解決済み】gitの「not something we can merge」エラーの解決方法
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] SourceTree error:1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1警告プロトコルバージョン
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。
-
[解決済み] git にコミットする前に、ファイルの変更点を確認するにはどうすればよいですか?
-
[解決済み】ファイルの特定の行をgitにコミットする [重複]。