2016-07-24 3 views
-1

とgitのバージョン管理プロジェクトを作成します。以下のように、私はネストされたgitリポジトリの構造を持っているcookiecutter

outer_repository/ 
|-- outer_dummy_file 
|-- .git 
`-- inner_repository 
    |-- .git 
    `-- inner_dummy_file 

それは外側のリポジトリとバージョン管理inner_repository/.gitを作ることは可能ですか?

動機

私はcookiecutterで新しいプロジェクトのための構造を作ってるんです。新しく開始されるすべてのプロジェクトには、事前に定義された一連のファイルとツールが用意されています。新しいプロジェクトがgitでバージョン管理され、初期コミットがある場合、自動バージョニングシステムの要件の1つ。 inner_repositoryは、新しいプロジェクトの構造です。

+1

見てきました.com/docs/git-submodule)または['git subtree'](https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844#.9sx8mzxcl)? – Sukima

答えて

1

これを実現するには、gitのアクロバットを行う必要はありません。 Cookiecutterにはpost generation hooksを実行するオプションがあります。これにより、プロジェクト作成時にgitリポジトリを作成することができます。

私はcookiecutterリポジトリに以下を追加しました:

post_gen_project.pyがある
hooks/ 
`-- post_gen_project.py 

:// gitの-SCM:あなたは[ `Gitのsubmodule`](HTTPSで

import subprocess 

subprocess.call(['git', 'init']) 
subprocess.call(['git', 'add', '*']) 
subprocess.call(['git', 'commit', '-m', 'Initial commit']) 
0

(初期ファイルなどで)バージョン管理されたテンプレートプロジェクトを作成し、新しいプロジェクトをテンプレートプロジェクトのフォークにするだけですか? .gitのコンテンツをバージョン管理するのは悪い考えです。

+0

一般的にはそうです。これは、すでにgit repoであるcookiecutterプロジェクトを生成する上での特定の質問です。あなたの提案については、私がプロジェクトをクローンするならば、ディレクトリ名はすべて同じままですが、cookiecutterではプロジェクト名とプロジェクト作成時に自動的に割り当てられる他のプロジェクト固有の属性を定義できます。 "割り当て済み"は、ファイルおよびファイル名のテンプレート変数が、そのプロジェクトの適切な文字列に置き換えられることを意味します。 – TheMeaningfulEngineer

関連する問題