[解決済み] git: あるレポのコミットによる変更を別のレポに適用する
質問
私は
repo1
と
repo2
をローカルマシンで表示します。これらは非常によく似ていますが、後者はある種の他のブランチ (
repo1
はもうメンテナンスされていません)。
/path/to/repo1 $ git log HEAD~5..HEAD~4
<some_sha> Add: Introduce feature X
コミットによる変更の適用方法
<some_sha>
で
repo1
から
repo2
?
何かパッチを用意する必要があるのでしょうか、それともいくつかの
cherry-pick
を行うことは可能でしょうか?
同じことをコミット範囲に対して行うのはどうでしょうか?
どのように解決するのですか?
ハックとして GitTips のページにある、異なるふたつのリポジトリでのコミットを比較するためのレシピ を修正してみてください。
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo/.git/objects \
git cherry-pick $(git --git-dir=../repo/.git rev-parse --verify <commit>)
ここで
../repo
は他のリポジトリへのパスです。
最近のGitでは、複数のリビジョンやリビジョンレンジを チェリーピック .
は
$(git --git-dir=../repo/.git rev-parse --verify <commit>)
は、ここで翻訳された
<commit>
(例えば
HEAD
または
v0.2
または
master~2
はコピー元の2つ目のリポジトリでの値)をコミットのSHA-1識別子に変換します。 選びたい変更のSHA-1がわかっている場合は、必要ありません。
注意 しかし、Git はソースリポジトリからのオブジェクトのコピーをスキップすることができます。なぜなら、代替オブジェクトリポジトリが一時的なものであり、一回の操作に過ぎないことを知らないからです。2番目のリポジトリからオブジェクトをコピーする必要があるかもしれません。
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo/.git/objects git repack -a -d -f
これは、2番目のリポジトリから借用したオブジェクトを元のリポジトリのストレージに入れるものです
テストされていません。
それほどハチャメチャではない解決策は、以下の通りです。 ニットルアンサー :
-
コミットをコピーしたい2番目のリポジトリに移動し、必要なコミットからパッチを生成するために
git format-patch
- オプションで、パッチ (0001-* など) を自分のリポジトリにコピーします。
-
使用方法
git am --3way
でパッチを適用します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み] git rebase の取り消し
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] Git でファイルの一部分のみをコミットする
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] 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:コミットに何も追加されていないが、未追跡のファイルが存在する
-
[解決済み] git pull リモートブランチがリモートの参照先を見つけることができない
-
[解決済み】Githubの認証に失敗した - ... GitHubはシェルアクセスを提供しない
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] Git - node_modules フォルダをどこでも無視するようにしました。
-
[解決済み] 他のgitリポジトリからコミットをチェリーピックすることは可能ですか?
-
[解決済み】ローカルレポを追加してリモートレポとして扱う方法
-
[解決済み] git merge: 別のファイルに移動したコードに変更を適用する
-
[解決済み] ある Git リポジトリから別のリポジトリにコミットをコピーするには?