[解決済み] Git で特定のコミットをマージする方法
2022-03-13 21:47:44
質問
GitHubのあるリポジトリからブランチをフォークして、自分専用のものをコミットしています。今、私は元のリポジトリが良い機能を持っていることを発見しました。
HEAD
.
前のコミットを削除してマージしたいのですが。どうしたらいいでしょうか?すべてのコミットをマージする方法は知っています。
git branch -b a-good-feature
git pull repository master
git checkout master
git merge a-good-feature
git commit -a
git push
解決方法は?
'
git cherry-pick
が答えになるはずです。
既存のコミットで導入された変更を適用します。
を忘れずにお読みください。
ブドンラン
の回答は、この記事の中でチェリーピックの結果について述べています。
"あるブランチからすべてのコミットを引き出し、指定したコミットを別のブランチにプッシュする"。
を、ここで。
A-----B------C
\
\
D
になります。
A-----B------C
\
\
D-----C'
このコミットの問題は、git がコミットにはそれ以前のすべての履歴が含まれると考えていることです。
C'が異なる
SHA-1
IDです。
同様に、あるブランチから別のブランチへのコミットをチェリーピックすると、基本的にパッチを生成してそれを適用することになるので、そのように歴史も失います。このようにコミットIDを変更すると、gitのマージ機能などが壊れてしまいます(ただし、控えめに使用すれば、これを回避するヒューリスティック機能があります)。
もっと重要なことですが。 機能的な依存関係を無視する - CがBで定義された関数を実際に使用した場合、あなたは決して知ることができない .
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] git rebase の取り消し
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] 現在のGitブランチをmasterブランチにする
-
[解決済み】ローカルの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 pop の取り消し
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] あるブランチから別のブランチへコミットをコピーするには?
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
-
[解決済み] ある範囲のコミットを選んで、別のブランチにマージする方法は?
-
[解決済み】Gitで、あるブランチの特定のコミットを別のブランチにマージするにはどうすればいいですか?
-
[解決済み】どのようなGitブランチングモデルが有効ですか?
-
[解決済み] マージ Hg/Git vs. SVN