2011-08-05 18 views
4

svnの背景から来ていますが、高度なユーザーではありませんが、私はgitのディレクトリ構造について混乱しました。gitディレクトリ構造の混乱

C++プロジェクトでは、オンラインである本のpro gitの最初の3つの章を読みました。私はそれが説明を容易にする多くの数字を持つかなり良い本だと思います。

ここで問題は、svnが私のヘッダーとソースコードが配置されているトランクディレクトリを作成していることです(より正確には、svnコマンドで作成していました)、includeディレクトリとsrcディレクトリです。最初の3章では、その後私はこのような構造を見ませんでした。問題は、このようなディレクトリの下で作業を構造化するための最良の戦略は、異なるディレクトリを作成し、これらのディレクトリの下に別々にファイルを追加して制御を追跡するか、全体としてこれを行うためのより構造化された方法ですか?

私はあなたが望む任意のフォルダ構造を使用することができます

答えて

8

...私は非常にほとんどありません一つの場所ですべてのものを維持する必要はありませんね。

あなたは大丈夫です

myproject 
    |-- src 
    |-- include 

を持っているしたい場合。 あなたは(もちろん)1つの場所にすべてを保持する必要はありません

唯一のことは、あなたのレポデータが格納されているが.gitフォルダがあります(myprojectを仮定すると、あなたのレポのルートである)ということである:SVN作業コピーのすべてのフォルダ内.svnのフォルダとは異なり

myproject 
    |-- .git 
    |-- src 
    |-- include 

をGitはこの1つのフォルダだけを使ってレポを追跡します。

+0

オハイオ州オオカミ私は誤解されているので、スナップショットの概念の権利とインラインです、それはmyprojectの下にあるもののスナップショットを取る、そしてそれはこれらのスナップショットの世話をします、そうですか? –

+0

@Umut:あなたのrepo *はあなたの作業コピーです。コミットすると、情報は '.git'フォルダに保存されます。これはあなたの質問に答えますか? – eckes

+0

eckes、確かに、私はディレクトリ全体を追加する必要がありますし、そのディレクトリの下にあるものが自動的に追跡されるようになります。 –

7

svnには実際のタグとブランチがありません。すべてが別のファイルやフォルダのコピーです。 gitは実際のブランチをサポートしており、svnに似たディレクトリ構造は必要ありません。

3

Gitが中に配置されている改正の内容(ファイル間の明確な違いは(Subversionのsvn copyコマンドではなく)それぞれ分岐し、使用git branchgit tagをタグ付けするため - は、単にあなたのプロジェクトのために必要なディレクトリ構造を作成しますディレクトリツリー)とリビジョン履歴とあなたのブランチ。

典型的なgitユーザーは、トランクやブランチのようなディレクトリを作成しません。 1つのコミットには、実際にこのリビジョンに属するファイルのみが含まれます。それはあなたのコンテンツに依存しています.Gitブックは、それがどのようなものかを推薦するものではありません。

リビジョンの履歴を見るには、ツールgitkを使用します。

本当にしたいのであれば、ディレクトリtrunk、branchesなどを作成することができます。gitは文句を言わないでしょう。 SVNのユーザーはこのようなレポを見て幸せかもしれませんが、gitユーザーはそれほど多くはないでしょう。