タグ付けされた質問 「subtree」

2
上流のプロジェクトフォースがマスターにプッシュされた後、どうすればgitサブツリーを修正できますか?
私はgitサブツリーを使用して実験しており、次の状況に遭遇しました。 私はgitサブツリーを使用して外部プロジェクトをリポに追加しました。プロジェクトの履歴を参照したり、後で上流プロジェクトに貢献したりするために、上流プロジェクトのすべての履歴を意図的に保持しました。 結局のところ、上流プロジェクトの別の貢献者が誤って大きなファイルをマスターブランチにプッシュしました。これを修正するために、上流プロジェクトは履歴を書き直し、強制的にマスターにプッシュしました。「monorepo」を作成するときに、このコミットを含めたので、それも削除したいと思います。 サブツリーの新しい履歴を反映するようにリポジトリを更新するにはどうすればよいですか? 私の最初の試みは、フィルターブランチを使用して、サブツリーとすべての履歴を完全に削除することでした。 git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch upstream-project-dir' --prune-empty HEAD 古いバージョンのサブツリーが削除されたら、新しいアップストリームマスターを使用してサブツリーを再度追加できます。ただし、何らかの理由でコミット履歴がまだgitログ出力に表示されているため、これは機能しませんでした。 更新 最小限の再現可能な例を作成するための手順を書きました。 最初に空のgitリポジトリを作成します。 git init test-monorepo cd ./test-monorepo 初期コミットを作成します。 echo hello world > README git add README git commit -m 'initial commit' 次に、外部プロジェクトのサブツリーを追加します。 git remote add thirdparty git@github.com:teivah/algodeck.git git fetch thirdparty git subtree …
13 git  subtree 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.