0

問題:アップストリーム( git pull _)から同期して元のリポジトリに同期(pull request )する可能性を維持しながら、特定のファイルをGithubリポジトリからデタッチして開発リポジトリ(またはブランチ)を分離する方法。

ユースケース: GitHubでライブラリをフォークし、さまざまな改善や変更などに取り組んでいます。問題は、フォークされたリポジトリが実際にはlibを含む完全なデモサイトであるということです。実際に別のデモサイトで作業しています。私にとって最適な解決策は、デモサイトのライブラリにコミットし、元のデモサイトファイルを削除したり、私のものをコピーしたりせずに、元のリポジトリへの接続を維持できることです。

はい、ファイルをコピーするmake / buildスクリプトでそれを実行できると思いますが、エレガントな(そして保守可能な)ソリューションのようには見えません。

これが解決策である場合、その仕事に最適なツールは何でしょうか?gitフックについて聞いたことがありますが、実際に使用したことはありません。多分TraviCIは救助に来ることができますか?他に何かありますか?

助けていただければ幸いです

編集:ここでいくつかのアドバイスに従って、私はgitremoteについてチェックしまし。しかし、これはレポ全体で機能します。特定のファイル(または特定のファイルを除くすべて)を分離して、彼女と彼女だけが元のレポとのリモートプッシュ/プル接続を維持する必要があります。

別の編集: gitサブモジュールの使用に関する提案に従って)明確にしたい:サブモジュールは問題の半分を解決しているようです-デモサイトからライブラリを分離することについての半分、そして実際、私が元のメンテナーであれば、それを行うことができます他の人はデモサイトなしでlibだけをフォークします。私はメンテナではないので(正しく理解していれば)、ライブラリをサブモジュールに分離しても、デモサイトの残りの部分を同期せずに元のライブラリと同期し続けるという問題は解決されません。

4

3 に答える 3

1

Gitはあなたがやりたいことをサポートしていません。Gitには多くの柔軟性がありますが、別々のものを別々のフォルダーに保持する必要があります。いくつかのシェルスクリプトを記述し、多くのgitコマンドをカプセル化すると、計画を機能させることができますが、それはお勧めしません。

できることは、他のリポジトリをサブモジュールとして独自のフォルダに配置することです。そのファイルが別の場所にも必要な場合は、シンボリックリンクしてください。

于 2012-12-05T08:03:22.483 に答える
0

私が理解したことから、あなたが探しているのはリモートリポジトリを持つことです。あなたが探しているのはこのようなものかどうかを確認してください:http://gitref.org/remotes/

于 2012-12-04T14:40:07.580 に答える
0

私はこの問題への正しい道を見つけたと思います。サブモジュールに似て いますが、この問題により固有です:サブブランチ(フィルターブランチ)を使用します。

于 2013-02-23T16:39:10.903 に答える