私は多くのモジュールを持つorigin gitリポジトリ(repo1)をフォークしています(A、B、Cとしましょう) (myname/repo1)。当時、私はforkからorigin repo(repo1)への変更を取り込み、origin repoはリファクタリングされ、各モジュールはgit repo(repoA、repoB、repoC)です。私は今repoAをフォークし、最初のフォーク(myname/repo1 - moduleA)から今回のフォーク(myname/repoA)にマージしたいと思っています。これどうやってするの ?gitを1つのフォークから別のフォークにマージする
1
A
答えて
1
これを処理するにはいくつかの方法があります。コミットIDとファイルの場所が変更されたため、マージすることはできません。おそらく、最も簡単なのは、変更を新しいリポジトリにリベースしてからマージすることです。ファイル名が移動したので、同様の変更を適用する必要があります。
最初の手順では、新しいリポジトリをリモートにすることです。 git remote add repoA url-to-repo-a
およびgit fetch repoA
。
次に、ブランチにrepoAを作成するのと同じファイル名の変更を適用する必要があります。これは--subdirectory-filter
を使用してgit filter-branch
で行うことができます。あなたの支店をチェックアウトした後、git filter-branch --subdirectory-filter moduleA/ master..HEAD
のようなものを実行してください。これにより、ディレクトリmoduleA/
の内容が新しいルートになります。 master..HEAD
はその変更をあなたのブランチだけに制限します。安全のため、フィルタを実行する前に現在のブランチにタグを付けて、フィルタが間違っている場合の回復が容易になります。
これで正常にマージできるようになりました。
関連する問題
- 1. 別のフォークをマージする
- 2. git:プルリクエストをフォークにマージするには?
- 3. 他のフォークからのマージ
- 4. Gitをフォークに元のレポをマージする
- 5. Git - いくつかのフォークからブランチを作成する
- 6. Gitフォークを使用する
- 7. Git - ギブスなしのフォーク
- 8. フォーク設定のgitリポジトリ
- 9. gitのクローンは、フォークのgitブランチ
- 10. GITを使って、別のフォークの変更をどのように選択的にプル/マージできますか?
- 11. 他の人のフォークからGitを引き出す
- 12. github.comでプライベートgitリポジトリをフォークする
- 13. フォークGitHubからVSTS?
- 14. 異なる構造のGitフォーク
- 15. 私のフォークからNugetプルソースコード
- 16. 私のフォークからプル
- 17. フォークするか、フォークしないのですか?
- 18. フォークのフォークに変更を同期する
- 19. 2 git-svnクローン(元+フォーク)のmerge_baseをgitで見つけるには?
- 20. マスターリポジトリへのコミットをgitlabフォークにマージ/プッシュする方法
- 21. Git - フォークされたレポがフォークされたコマンドラインから判断できますか?
- 22. GitHubについて "フォーク"オプション
- 23. gitは別のリポジトリのブランチにリポジトリの内容をフォークします
- 24. フォーク子供3人ずつ別々のプロセスを実行する
- 25. フォークからgithub同期
- 26. フォークジョイン:すべてのサブタスクをフォークするか、現在のスレッドに1つ残す
- 27. Jenkinsでタグを押すGit Publisher - 複数のGitリポジトリ(フォーク)
- 28. GIT:私はリポジトリをフォークし、リモートコンフィギュレーション設定フォークリポジトリから
- 29. クローンgitリポジトをフォークされたものに変換する
- 30. 個別のgit reposを1つにマージする