2013-07-05 13 views
7

私はgitで新しいですので、私に同行してください。gitリポジトリにダミーファイルを配置するにはどうすればよいですか?

私には機密データを含むバージョン管理下のファイルがあります。確かに、私は自分の.gitignoreファイルにそのファイルを置くので、リポジトリにプッシュされません。問題は今私のプロジェクトのどこかにあります。

#include <sensitivedata> 

など、あなたの選択した言語はどれですか? 問題は、そのリポジトリの誰かがクローンを作成したときに、そのファイルが見つからず、ソリューションをビルド/コンパイルしようとすると致命的なエラーになります。

ので、代わりに私はこれを行うだろうか

// replace the next line with the sensitive data!!! 

のようなコメントを置き、私は実際に私が代わりに同じ名前でいくつかのダミーファイルをプッシュする上で働いているファイルを、プッシュしますか?

答えて

7

あなたは内容をフィルタリングするために.gitatrributesを使用することができます。私は 'を投げた

  • .gitattributes

    secrets.h filter=secret merge=keepMine 
    
  • .git/configの

    [filter "secret"] 
    clean = echo "// replace the next line with the sensitive data" 
    smudge = cat 
    
    [merge "keepMine"] 
        name = always keep mine during merge 
        driver = /bin/true %O %A %B 
    

をkeepMine 'は、偶発的なマージを防ぐためにマージします。しかし、AFAIKマージは、cleanフィルタステップのために、ローカル変更が効果的に「見えない」ため、開始する必要はありません。かかわらずsecrets.hで実際に何があるかの、レポファイルが常に含まれています:

// replace the next line with the sensitive data 

例えば:

/tmp/work$echo '// agent 007 reporting for duty' > secrets.h
/tmp/work$git status -s
M secrets.h
/tmp/work$git diff
/tmp/work$git cat-file -p HEAD:secrets.h
// secret contents not in repo

+0

awesome!ありがとう! – lightxx

+2

ヘッドアップ: '.git/config'ファイルはローカルです。 '.gitattributes'がリポジトリにあるので、このリポジトリのすべてのユーザにフィルタ定義があることを確認する必要があります。詳細については、[git-attributes man page](https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html)を参照してください。 – sehe

0

私はC++プリプロセッサは、これを行うことができれば(私は上記のコードは、いくつかのC形式のプリプロセッサのためであると仮定)を知っているが、ここにありません私は似たようなケースで何をすべきか:

はgitのにコミット:

  • default.config
  • user.config。gitignoreでテンプレート

プット:

  • user.config

、その後、私は基本的にないコードがあります。

if (file_exists(user.config)): 
    use user.config 
else: 
    use default.config 

そのように私は、いくつかの賢明なデフォルトを供給することができますがそれを無効にするシンプルでクリーンな方法があります。

+1

あなたのご意見ありがとうございます。私はあなたと同じラインに沿って何かを考えていましたが、実際のコードからソースコントロールの問題を完全に分離したいと思っていました。他の誰かがそのルートに行きたいと思っているなら、それはmakefileの中で次のようなものを使って行うことができます:http://stackoverflow.com/a/142926/899260 – lightxx

関連する問題