私は多くのモジュールを持つ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. Gitをフォークに元のレポをマージする
- 4. Git - いくつかのフォークからブランチを作成する
- 5. Git - ギブスなしのフォーク
- 6. フォーク設定のgitリポジトリ
- 7. gitのクローンは、フォークのgitブランチ
- 8. GITを使って、別のフォークの変更をどのように選択的にプル/マージできますか?
- 9. 他の人のフォークからGitを引き出す
- 10. github.comでプライベートgitリポジトリをフォークする
- 11. フォークGitHubからVSTS?
- 12. 異なる構造のGitフォーク
- 13. 私のフォークからプル
- 14. フォークするか、フォークしないのですか?
- 15. 2 git-svnクローン(元+フォーク)のmerge_baseをgitで見つけるには?
- 16. マスターリポジトリへのコミットをgitlabフォークにマージ/プッシュする方法
- 17. Git - フォークされたレポがフォークされたコマンドラインから判断できますか?
- 18. GitHubについて "フォーク"オプション
- 19. gitは別のリポジトリのブランチにリポジトリの内容をフォークします
- 20. フォーク子供3人ずつ別々のプロセスを実行する
- 21. フォークからgithub同期
- 22. フォークジョイン:すべてのサブタスクをフォークするか、現在のスレッドに1つ残す
- 23. Jenkinsでタグを押すGit Publisher - 複数のGitリポジトリ(フォーク)
- 24. クローンgitリポジトをフォークされたものに変換する
- 25. フォークを最新の状態に保つ
- 26. アップストリームでフォークを同期する:git fetch + git checkout + git mergeとgit checkout + git pull
- 27. 別のファイルにフォークするとEADDRINUSEが発生しますか?
- 28. Windowsのmongodbフォーク
- 29. フォークWEBrickにスタート
- 30. git/githubプロジェクトをフォークにリダイレクトしますか?