[解決済み] コミット全体ではなく、1つのファイルの変更のみをチェリーピックする方法
2022-09-03 04:57:18
質問
あるブランチで行われた変更を別のブランチに適用する必要があります。 そのためにチェリーピックを使用することができます。しかし、私の場合、1 つのファイルにのみ関連する変更を適用したいので、コミット全体をチェリーピックする必要はありません。 どうすればいいのでしょうか?
どのように解決するのですか?
何を実現したいかに応じて、さまざまな選択肢があります。
ファイルの中身をターゲットブランチと同じにしたい場合は
git checkout <branch> -- <filename>
. しかし、これは一つのコミットで起こった変更を「チェリーピック」するのではなく、単にそのファイルの結果としての状態を取得するものです。ですから、あるコミットで一行を追加したが、前のコミットではもっと変更されていて、他の変更を加えずにその行だけを追加したい場合、チェックアウトはあなたが望むものではありません。
それ以外の場合、コミットで導入されたパッチを単一のファイルだけに適用したい場合、複数の選択肢があります。例えば
git cherry-pick -n
を実行する、つまりコミットせずにコミットを編集する (たとえば、すべてのファイルを
git reset -- .
を使ってすべてのファイルをリセットし、実際に変更したいファイルだけを
git add <filename>
). または、そのファイルの diff を作成し、その後に diff を適用することもできます。
git diff <branch>^..<branch> -- <filename> | git apply
関連
-
[解決済み] GitHubでフォークされたリポジトリを更新または同期するにはどうすればよいですか?
-
[解決済み] git rebase の取り消し
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git でファイルの一部分のみをコミットする
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] ステージングされた変更を表示するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
-
[解決済み】ローカルの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 occurs このリポジトリで別のgitプロセスが動作しているようです。例えば、.NETで開いたエディタなど。エラー
-
[解決済み】特定のファイルへの変更のみをgit-cherry-pickする方法は?
-
[解決済み] チェリーピックのコンフリクトを解決するにはどうしたらいいですか?
-
[解決済み] 単一ファイルのマージをやり直す
-
[解決済み] 現在のブランチにあるファイルをメインブランチにある同じファイルに上書きしますか?
-
[解決済み] stash@{1}は曖昧?
-
[解決済み] Gitでは、これらの言葉はどのような意味ですか?リポジトリ、フォーク、ブランチ、クローン、トラック?
-
[解決済み] gitは "サイレントモード "で動作しますか?
-
[解決済み] GitとSSH、どちらのキーを使うか?
-
[解決済み] ファイル変更時のDockerコンテナの再構築