2011-01-20 14 views
4

私のマシンには、私たちのGitリポジトリにあるものとは異なるいくつかのファイルがあります。私のローカルボックスの設定が異なるASP web.configファイルプロダクションサーバー、およびレポートサーバーに接続するための個別の資格情報を持つサービスを報告するための.rdsファイル)。このシナリオでGitを使って作業する場合は、何をお勧めしますか?Gitから決してコミットされないファイルを管理する

コミットするたびにこれらのファイルを隠すことをやりたくありません。これらの2つのファイルを含むブランチを作成したいのではなく、最初にコミットするたびにメインブランチにコミットし、そこからdcommitを使用してメインSVNリポジトリにコミットするためです。 これらのファイルを無視するのは良いことではありません。なぜなら、他のファイルが必要な変更を加える可能性があるからです。

最後に、これらの2つのファイルを除いて常に他のすべてをインデックスに追加するのではなく、いつでもすべてをコミットできるようにしたいと思います。

+0

あなたは何をやったのですか? –

+0

私はそれらのファイルを含んでいない別のブランチを作成してしまいました。私はそこからコミットし、すべてが私のためのものです。おそらく最もエレガントな解決策ではないでしょう。 – kd7iwp

答えて

4

これを処理するには、スマッジ/クリーンスクリプトが便利です。基本的にチェックアウトされると、空の接続文字列がdev接続文字列に置き換えられます。コミットすると、接続文字列は2番目のスクリプトで「クリーン」になり、リポジトリに空の文字列を含むバージョンがあります。

alt text

alt text

あなたは差分を行うと、そのファイルに変更があるとき今、彼らは決して変わらないものになります。

デプロイするときには、私はこれに頼っていません。あなたは、ITシステム部門が処理し、あなたの開発ワークフローの外にあるスクリプトを展開したいと思う。

あなたはここで、この詳細を読むことができます:https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_keyword_expansion

は、このことができます願っています。

1

バージョン管理されていない、.gitignore-dローカル設定で修正された一般設定ファイルをチェックインします。これは標準のやり方です。

+0

私はこのアイデアが気に入っていますが、Reporting Servicesのデータ接続ファイルを使用してそれを行う方法がわかりません。それを修正するためのスクリプトが必要なようです(@ adymitrukの注記では、私はむしろそうしたいと思います)。 – kd7iwp

+0

ああ、データファイルがある場合はちょっと違う - 機密データやコンピュータ固有のデータのために空白を含むファイルのテンプレートをチェックインしてから、ローカル設定(または他のコード)がテンプレートを読み込み、ローカルの設定に基づいて詳細を表示し、完成したデータファイルを他のサブシステムに公開します。 (私はここにテキストデータファイルを仮定しています) –

+0

スクリプトは難しいことではありません。ウェブにはたくさんの例があります。あなたはgitフックで話しているスクリプトを貼り付けることもできます。あなたはそれを賢明に見逃し、偶然に機密データを犯す可能性が高いです。 –

0

.gitignoreファイルを使用して、リポジトリにチェックインします。

http://git-scm.com/docs/gitignore

ただし、web.configファイルを始めるために、新たな開発者はすぐにファイルをコピーすることができますサンプルweb.config.sampleで確認してください。簡単なスクリプトやREADMEファイルをプロジェクトのルートに書き込んで、プロジェクトの開始方法を説明することもできます。 .suoファイルのように、プロジェクトにとって重要でない他のユーザー固有のファイルを置くこともできます。

関連する問題