2017-03-27 11 views
2

サブツリーに関する質問があります。私はサブツリーの仕組みを使って追加したlibを使うプロジェクトを持っています。それ以前は、自分が何をしているのかを知っていれば、常にうまくいくサブモジュールを使用しています。しかし、私は別のプロジェクトのサブツリーを試してみたい。BitbucketまたはGithubにプッシュするとGit Subtree

サブツリーも非常にうまくいきますが、私のレポをgithubまたはbitbucketにプッシュすると問題はありません。誰か他の人がレポをクローンしています...サブツリーのリモート情報がありません。

サブツリーで多くのライブラリを追加した場合、私はマスターを失った場合、サブツリーのすべてのリモートを手動で追加する必要があります...またはここで正しいワークフローは何ですか?

私はLinuxがたくさんのサブツリーから構築されていることを知っているので、私はいつもそのLinuxがどのように管理されているのか疑問に思っています。

ありがとう

答えて

0

これはBitbucketの主な欠点です(と私はgithubを想定しています)。リンクがBitbucketにプッシュアップされないのは、サブツリーリンクがリポジトリの外部に格納されているためです。例えば

は、Sourcetreeで、サブツリーのリンクは、.git/sourcetreeconfig

<RepositoryCustomSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <AutoRefresh>true</AutoRefresh> 
    <AutoRefreshRemotes>true</AutoRefreshRemotes> 
    <DraftCommitMsg /> 
    <IncomingSavedCount>0</IncomingSavedCount> 
    <LastCheckedRemotes>2017-11-29T10:37:38.3041741-05:00</LastCheckedRemotes> 
    <LastUsedView>FileStatus</LastUsedView> 
    <LogBranchFilterIndex>0</LogBranchFilterIndex> 
    <OutgoingSavedCount>0</OutgoingSavedCount> 
    <SidebarExpandedItems> 
    <string>File Status</string> 
    <string>Branches</string> 
    <string>Remotes</string> 
    </SidebarExpandedItems> 
    <SidebarWidth>210</SidebarWidth> 
    <SubtreeLinks> 
    <SubtreeLink> 
     <SourcePathUrl>http://URL_TO_YOUR_BITBUCKET/scm/l20/00-0000-xx-eclipseutils.git</SourcePathUrl> 
     <Prefix>00-0000-xx-eclipseutils</Prefix> 
     <Refspec>master</Refspec> 
    </SubtreeLink> 
    </SubtreeLinks> 
</RepositoryCustomSettings> 

に格納されているが、このファイルはSourcetreeツールによって維持され、実際にリポジトリ自体に格納されていません。

潜在的な回避策は、レポジトリにファイル.git/sourcetreeconfig(例:)を保存し、リポジトリをチェックアウトするたびにファイルを.gitにコピーすることです。

サブツリーは実際にBitbucketの組織的な欠点を多く修正しているので、本当に残念です。

-1

サブツリーを変更する場合は、リモート情報が必要です。ほとんどのユーザーにとっては、特に気にする必要のない通常のファイル/ディレクトリとして機能します。

リモートトラッキング情報が実際に必要な唯一の実用的なケースは、サブツリーをそれぞれのリモートレポの最新コミットに更新する必要がある場合です。これを行う各人は、リモートアドレスを手動で追加する必要があります。

関連する問題