2018年5月14日月曜日

SourceTreeは, 既存の配下リポジトリを自動でサブモジュール処理してくれない

既存のフォルダを, SourceTreeでローカルリポジトリ化した際, フォルダ内に, すでに別モジュールとして, リポジトリが存在していた場合,
あたかもちゃんと認識したかのごとく, SourceTree上では, サブモジュールに表示される. 
しかし, サブモジュールとしてただしく処理されるためには, .gitmodulesというファイルが生成されている必要があり, この段階では作成されていないし, ここからファイルを自動で作成する方法もなさそうだ. 
これをそのままコミット, githubなどにpushしても, サブモジュールとして正しく管理されない. 
こういった場合は, 手動で.gitmodulesを作成してやる必要がある. 

[サブモジュール名]
      path = (相対パス)
      url = (リモートリポジトリアドレス)

というフォーマットで書きこんでいく. そうすると, ただしくサブモジュールとして認識される. 
また, サブモジュールを含むリポジトリをクローンする場合は, 詳細オプションにおいて, 
サブモジュールを再帰にチェックを入れると, クローン時に, すべてのサブモジュールを自動でupdateしてくれる. 
もし, これをしなかった場合は, 最初は, ローカルリポジトリが空っぽになる. このときは, SourceTree上で, サブモジュールを開く(ダブルクリック or 右クリックから開く)ことで, リポジトリがupdateされる. 

0 件のコメント:

コメントを投稿