私は "foo"という名前のgithubリポジトリ(あるいは "myusername/foo")を持っています。ここで、fooのコードを使用する "bar"という名前のリポジトリを作成したいとします。私はファイルのコピーを作成することができますが、私は更新を取り込む必要はありません - 私はいつも "foo"リポジトリにあるものだけを見たいと思っています。 fooからの更新をコミットしないようにします。私は、サブフォルダが実際に別々のリポジトリであるいくつかのリポジトリに気づいたと思います。私はgitがサブリポジトリやそのようなものをサポートしていることを知っています。では、このような「リポジトリマウント」を実行できますか?もしそうなら、どうですか?私はむしろ、マスター1つのgithubリポジトリを別のリポジトリのサブフォルダとして "マウント"するにはどうしたらいいですか?
答えて
よりも、特定のバージョン、または特定の支店で「マウント」することができ
ボーナスポイント場合は、gitの中のサブプロジェクトを管理するための2つの主要なオプションがあります。
Gitはどの依存関係のマネージャーを持っていないし、最も一般的なオプションは以下のとおりです。
- サブモジュール
- サブツリー
Submodules
は、外部リポジトリをソースツリーの専用サブディレクトリに埋め込むことができます。常に、特定のコミットを指します。
git submodule
サブモジュールの各フォルダは、スタンドアロン・リポジトリになり、別の場所で管理して記憶する使用するために。 Gitは特定のコミット(コミット、バージョン、タグなど)をチェックアウトし、それをサブモジュールのHEADとして使用します。多くの場合、サブモジュールは分離されたHEADに置かれます。
# once you have a repo simply add it to git
git submodule add <url>
投影がレポに追加されたら、それを初期化して更新する必要があります。 のGitのよう
git submodule init
git submodule update
1.8.2オプション--remote
が
git submodule update --remote --merge
を添加し、新しい意志fetch
各サブモジュールの上流から最新の変更、merge them in
、およびcheck out
サブモジュールの最新リビジョン。the docsとして
はそれを説明します。
--remote
このオプションは、更新コマンドに対してのみ有効です。スーパープロジェクトの記録したSHA-1を使用してサブモジュールを更新する代わりに、サブモジュールのリモート追跡ブランチのステータスを使用します。
これは、各サブモジュールでgit pullを実行するのと同じです。
にはどうすれば解決するか、サブモジュール内の変更コードのですか?サブモジュールを使用して
その内容[新しいフォルダ]の一環として、メインプロジェクト内にコードを配置します。
フォルダ内にローカルに置くことと、サブモジュールの一部として持つことの違いは、サブモジュールでは、コンテンツが前述のように別のスタンドアロンリポジトリに管理(コミット)されることです。
これは、各プロジェクトがスタンドアロンプロジェクトである別のプロジェクト内のsubmodule-projectの図です。
git subtree
Gitのサブツリーは、あなたがに非常に類似した別の1
のサブディレクトリとして任意のリポジトリを挿入することができます主な違いは、コードが管理されている場所です。サブモジュールでは、コンテンツは別のレポに配置され、そこで管理され、他のレポにも複製することができます。
subtree
ルートプロジェクトの一環としてではなく、別のプロジェクトでコンテンツを管理しています。
セットアップ方法を書き留めておき、使い方を理解する代わりに、この優れたポストを読んだだけで、すべてを説明することができます。サブモジュールとサブツリーの横に
https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/
git submoduleについて:私は理解していません...(1)いつ「あなたがレポ "?どのCWDでいつサブコマンドを発行するのですか? (2)リストにあるコマンドのどこで、サブモジュールがどのサブフォルダにチェックアウトされているのかを指定するはずです。(3)HEADはブランチ上の最新のコミット以外は何ができますか? Corelibリポジトリの特定のコミットを選択すると、それは私の頭になります。それはリンク先の定義と矛盾しているようです。 – einpoklum
(1):リポジトリを作成したら、元のリポジトリの一部ではないコードに新しいリポジトリを作成します。 (2)サブモジュールの名前がフォルダになるか、追加パラメータを渡して名前を指定することができます。 (3)gitは最新のものだけでなく、どんなコミットにも向けることができます。これを試してください: 'git checkout HEAD〜10' – CodeWizard
、特定のニーズに応じて、あなたもただのロジックおよび管理することなく、別のリポジトリを持っている場合があります。
このような場合、別のリポジトリをサブディレクトリに配置し、そのサブディレクトリを.gitignore
ファイルに追加することができます。
など。
RepositoryA/
- .gitignore (first option)
- SomeDir/
- .gitignore (second option)
- RepositoryB/
.gitignore(最初のオプション)
これらのいずれかを追加します。
SomeDir/RepositoryB/
**/RepositoryB/
.gitignore(第二の選択肢)
この追加:
RepositoryB/
をこのように、私が言ったように、任意のロジック/管理を追加しません。両方のリポジトリのリビジョンを衝突させることなく使用することができます。
- 1. Github:1つのリポジトリから別のリポジトリへの変更をプッシュ
- 2. gitリポジトリからビルドし、別のリポジトリをサブフォルダにクローン化する
- 3. ツリーAPIを使用して1つのGithubリポジトリから別のGithubリポジトリにgitツリーをコピーする
- 4. Git:別のリポジトリのサブフォルダにリポジトリを移動してください。
- 5. リモートgithubリポジトリを1つのaccounから別のリモートリポジトリに同期する方法
- 6. 新しく作成したリポジトリをGithubにプッシュするにはどうしたらいいですか?
- 7. すべての依存関係を持つ成果物を1つのリポジトリから別のリポジトリにコピーするにはどうすればよいですか?
- 8. GitHub GUIのあるリポジトリから別のリポジトリへの移動
- 9. gitリポジトリ:どのように(つまり、サブフォルダが/ .gitた)リポジトリのサブフォルダを無視する
- 10. GitHubリポジトリからアップロードされたファイルを削除するにはどうしたらいいですか?
- 11. プライベートgithubリポジトリからプルする宝石を指定するにはどうしたらいいですか?
- 12. GitHubのリポジトリは、リポジトリ
- 13. githubで空のリポジトリをforkするにはどうしたらいいですか?
- 14. extbase query builder別のリポジトリに1つのリポジトリを挿入する
- 15. GitHubリポジトリを削除して、CNAMEファイルを別のリポジトリに切り替えることはできますか?
- 16. 私のリポジトリのブランチとして2つの他のgitリポジトリを追加するにはどうしたらいいですか?
- 17. 何とか別のリポジトリをGithubにプッシュすることができました
- 18. 1つのリポジトリを親リポジトリとして使用するにはどうすればよいですか?タイトルは右の文言されている場合
- 19. 1つのリポジトリから履歴なしで新しいリポジトリにブランチを移植するには?
- 20. gitリポジトリをサブフォルダとして別のリポジトリに移動して履歴を保存する
- 21. gitリポジトリを別のリポジトリのフォルダ(githubページなど)にプッシュすることは可能ですか?
- 22. SVN:ソースの一部を別のリポジトリにリンクするにはどうしたらいいですか?
- 23. githubリポジトリとgithubデスクトップとの間の相違を修正するにはどうすればよいですか?
- 24. APKからGitHubリポジトリにどのファイルを追加しますか?
- 25. はgithubのの使用について間違ったリポジトリ
- 26. GitHubには別のリポジトリが含まれています
- 27. すべてのプロジェクトを1つのgithubリポジトリにアップロード
- 28. 1つのリポジトリから別のリポジトリへメソッドを呼び出すsymfony2
- 29. TortoiseSVNでリポジトリを移動するにはどうしたらいいですか?
- 30. 水銀サブリポジトリは別のリポジトリのサブフォルダにできますか?
サブモジュールを使用します。彼らは完璧ではありませんが、あなたの問題を解決するかもしれません。 –
@TimBiegeleisen:リンク?そして、それはGitHubの機能かgitの機能なのですか? – einpoklum
ここにあります:http://blog.joncairns.com/2011/10/how-to-use-git-submodules/ –