2011-02-11 13 views
1

リモートでプッシュするとディレクトリを無視する方法はありますか?キャッチは私がそれを無視したくないということです。私はまだディレクトリを追跡し、ローカルコミットとブランチを持っています。言う、私はデータベースに依存するプロジェクトに取り組んでいます。このプロジェクトには移行スキーマなどはありません。テスト用のデータが格納されます。私はローカルリポジトリにMySQLのフォルダ/ファイル(MyISAM MYD/MYI)のシンボリックリンクを持っています。私はデータベースとコミットを同期させたいが、データベース(またはアセットなど)をプッシュすることはできない。私は無駄なサブモジュールを試しました - 親リポジトリは子サブモジュールの変更を無視します。私はこれについてどうやって行くのですか?例の構造:ディレクトリをプッシュしても無視しますが、Gitで追跡します

/レポ/私のプロジェクト< - Gitのレポ
/レポ/マイプロジェクト/ srcの< - プッシュは、ルートディレクトリ

としてこれを使用するリモートレポに、このセクションに関連したコミット

/レポ/マイプロジェクト/ mysqlの< - これらを追跡するが、それらに
/repo/my-project/mysql/db_1/table_1.frm
/レポ/マイプロジェクト/ mysqlの/ DB_1 /をプッシュしていませんtable_1.MYD
/repo/my-project/mysql/db_1/table_1.MYI

ありがとう!

答えて

1

はこれを試してみてください。これらのコミットに特定のディレクトリの内容が含まれている場合は、その内容をプッシュします。

あなたの2つのオプションがあります。

  • あなたが押す枝にマージされることはありません支店(または支店)にそのディレクトリを保管してください。もちろん、他の変更をそのブランチに自由にマージすることはできます。

  • このディレクトリは別のリポジトリに保管してください。もっとも簡単なアプローチは、そのディレクトリをリポジトリの実際の場所にシンボリックリンクし、そのパスを無視することです。 (あなたもそのgitignoreエントリを公開避けるために.git/info/excludesでそれを無視することができます。)より詳細な手順:

    cd path/to/project 
    
    # move the directory outside your project 
    mv database-dir .. 
    
    # add an ignored symlink to it 
    echo "database-dir" >> .git/info/excludes 
    ln -s ../database-dir database-dir 
    
    # create a new repo in the directory to track it 
    cd ../database-dir 
    git init; git add .; git commit 
    
+0

最初のオプションは意味があります。私はちょうど 'git add -A'を悪用したいので、非常に慎重にする必要があります。 2番目の選択肢はわかりません。実際のリポジトリ(サブディレクトリ)に.gitがある場合、親の.gitがそのセクションを無視するか、または奇妙な動作をします。 .gitが本当のレポから1レベル上がっていれば良いだろうが、私はリンクの束なしでそのコントロールを持っていない。私は試みます。ありがとう! –

+0

@エリック:第2の選択肢について私が思いついたことの簡単な概要を編集しました。 – Cascabel

+0

私は努力を感謝しますが、上記の構造は例でした。オプション#2の場合は、プロジェクトディレクトリ内にデータベースディレクトリ(またはシンボリックリンク)を置く必要はありません。だからあなたは別々にそれを追跡すると言っていますが、これは退屈で、以下の答えと同じです。私はオプション#1に行くでしょう。ブランチごとの無視は興味深いです(ユーザーごとまたはプロジェクトごと)。ありがとう –

0

データベースをリモートブランチのない別のリポジトリで追跡しないのはなぜですか?

(リモートプッシュすることはありません場合は、ハードドライブに障害が発生した場合、あなたは文句を言わないのバックアップを持っていることに注意してください。)

+0

を私は簡単にDBとコードベースのマッチングリビジョンをチェックアウトしたいです。また、既存のプロジェクト階層を台無しにしないようにする必要があります。 –

1

それは.gitignoreファイルに追加することで、あなたのリポジトリに含めることからファイルを無視することができます - しかし、私はそれがあなたが望むものだとは思わない。あなたが与えられたブランチを押すと、あなたはそのブランチにコミットを押しhttp://book.git-scm.com/4_ignoring_files.html

+0

「キャッチは無視したくない」そうです、それはOPが望んでいるものではありません。あなたがすでにそれを知っていれば、答えを投稿するのはあまり意味がありません。 – Cascabel

+0

トレントンではありません。 –

関連する問題