2016-02-19 7 views
14

私はこれに特有の何かを見つけることができませんでしたが、私がそれを逃した場合私に知らせてください。Gitを引っ張っても決してファイルをプッシュしない

gitにファイルがある必要があります。いったんプルダウンされると、各個人は自分のクレデンシャルを追加するためにそれを編集する必要があります。個人が編集したときに私たちはレポにクレデンシャルなしでジェネリックファイルを保存したいので、変更されたものとして表示させたくありません。ファイルを「プルしてもプッシュしない」ように設定するオプションはありますか? 現在の設定は、ファイル名がUpload.bat_COPY_EDIT_RENAMEという名前になっているため、何をすべきか分かりやすくしています.GitignoreにUpload.batがあります。私はもっ​​と馬鹿な証拠があることを望みます。

--assume-unchangedのようなオプションがあることは知っていますが、毎回実行する必要はなく、潜在的に後で問題を引き起こす可能性のあるバンド修正のようです。

ありがとうございました!

答えて

5

私は若干異なるアプローチを提案しています... Upload.batを書いて、あなたの選択したフォーマットを使用して設定ファイルから読み込むことができます。あなたはそれをsecrets.txtと呼んでください。その後、.gitignoresecrets.txtを追加し、無防備な状態でUpload.batをコミットすることができます。ユーザーがレポを引き出すと、Upload.batとなり、独自のsecrets.txtを作成できます。

secrets.txtには、改行で区切られたユーザー名とパスワードだけがある場合があります。このように解析するのは簡単ではありません。

+0

私たちが複雑なものを探しているのかどうかはわかりませんが、3 repos(Dev、UAT、Prod)のUpload.batが異なるところで問題が解決し、これらのファイルを最初に編集する時間を節約できますその環境で作業している時間。 – GRobb

2

それぞれの人がファイルの名前を変更する場合は、.gitignoreファイルにUpload.bat *を追加することができます。そうすれば、gitはその命名体系を持つ新しいファイルを追跡すべきではありません。さらに詳しい情報はgitignore

+0

名前を変更すると、Upload.bat_mynameなどの名前に変更され、Upload.batが追加されます。 – DeveloperDemetri

+0

ファイルの実際の内容を編集していて、ファイル名が「Upload.bat」に変更されています。 理想的には、gitの "Upload.bat"をプルダウンしてから編集しますが、プッシュバックしないでください。 – GRobb

+0

プルされる汎用ファイルがUpload.bat_COPY_EDIT_RENAMEの場合は、 'Upload.bat'最後に.gitignore(正確なファイル名を追跡していないと仮定)、Upload.bat_COPY_EDIT_RENAMEを維持しながら、 'Upload.bat'という名前のファイルを無視する必要があります。それを含むコミットを行う前にGitがファイルを適切に無視していることを確認してください。 – DeveloperDemetri

1

私の知る限り、gitには永久的な設定はありませんが、決してファイルをプッシュしません。

テンプレートファイルをgitに保存しておき、ビルドスクリプト(you do have one, right?)でカスタマイズしたファイルを確認することで、より確実な回避策を得ることができます。カスタマイズされたファイルが存在する場合は、ビルドを続けてください。存在しない場合は、開発者に資格情報を要求してセットアップします。その後、ビルドを続けてください。カスタマイズされたファイルのバージョンは、もちろん.gitignoreにあります。

これは本質的なものですが、ビルドスクリプトを追加することで、忘れてしまった、忘れてしまった人間に頼りにして、ファイルシステムのどこかにある、 。

スクリプトがカスタマイズされたファイルの作成を処理するという追加の利点として、テンプレートが変更された場合に自動的に更新される可能性があります。

資格情報によっては、ビルドスクリプトの実行時にログに記録されていないことを確認することができます。これには、ファイルへの出力の配管も含まれます。

1

Upload.batをgitignoreに追加する必要がない方法の1つは、バッチファイルインクルードを使用することです。

username=username_here 
password=password_here 

そして、あなたのバッチファイルで:あなたは、ファイルを追加することができます

は、以下の内容をリポジトリにcredentials.txt.distと呼ば臆面もなくBatch file include external file for variables

から取ら

for /f "delims=" %%x in (credentials.txt) do (set "%%x") 

そして、テストされていません:)

バッチスクリプトはおそらく何らかのエラーチェックを行うべきです。少なくとも、credentials.txtが提供されていない場合は、説明的なエラーメッセージが生成されるはずです。

関連する問題