15

私のアプリは Heroku でホストされており、公開の github リポジトリも持っています。

私のアプリには、Amazon S3 資格情報を含む構成ファイルがあります。ファイルが github ではなく heroku にプッシュされるようにすることが重要です。

そのため、マスター ブランチを heroku にプッシュして別の github ブランチを作成し、.gitignore ファイルが s3.yml ファイルを参照していることを確認できると考えていました。次に、「git push origin github:master」を実行して、github ブランチを github.com にプッシュします。

これは、最初のコミットではうまく機能します。

しかし、その後 master ブランチに切り替え、すばらしいコードを書いてから、すべてを heroku にプッシュします。次に、自分の github ブランチに戻り、"git merge master" を実行して、新しいコードがブランチに追加されるようにします。ただし、これにより、master ブランチの s3.yml および gitignore ファイルが github ブランチにコピーされます。頭から机への強打セッションをキューに入れます。

追跡されていないファイルが追跡されないままであることを保証しながら、ブランチの同期を維持する方法について何かアドバイスはありますか? 不要な S3.yml ファイルと別の .gitignore ファイルをマージしないように git に指示できますか?

ここで死んだ馬をむち打ちですか?プライベートの github アカウントにお金を払うことをまだ正当化することはできませんが、答えとしては、それを行うか、projectlocker に切り替える必要があると思います。

この問題が私のがらくたのgitスキルに起因するものであり、方法があることを願っています....事前に感謝します

編集:::受け入れられた答えは素晴らしい解決策ですが、私はもっと好きな新しいものを見つけました。ここでそれについて読んでください: http://docs.heroku.com/config-vars - Heroku の賢い人たちは、すべてに対して答えを持っています... 本当に素晴らしい

4

4 に答える 4

10

ただし、これにより、master ブランチの s3.yml および gitignore ファイルが github ブランチにコピーされます。

github ブランチの .gitignore ファイルが master からマージされたものよりも常にそのコンテンツを保持するようにするカスタム マージ ドライバーを使用すると、これを回避できます。

特定のファイルで競合するマージに対して常にローカル バージョンを選択するように git に指示するにはどうすればよいですか? を参照してください。

于 2010-02-12T06:55:17.873 に答える
2

SVN では、これは「ファイルを無視する」と呼ばれているため、GIT でも似たようなものになると思います - 私は GIT を使用していないので、これについて引用しないでください。

http://github.com/guides/ignore-for-git

それが役立つことを願っています

于 2010-02-12T06:35:35.843 に答える
1

「危険な」ファイルをgitから完全に移動することもできます。たとえば、〜/.yourappなどにファイルを配置します。(これは実際には質問に直接答えるものではありませんが、多くのソフトウェアが行うことです-.fetchmail、.ssh、...)そして他のユーザーが同じことをすることを許可します。

于 2010-02-12T08:20:11.257 に答える
0

「代替マスター」ブランチ (機密データを含む) として heroku という名前のブランチを使用し、機密データを含まない古いマスター ブランチを使用する場合は、いつでも実行できます。

git merge master

したがって、heroku ブランチを master ブランチではなく heroku にプッシュできます。

于 2010-02-12T06:41:07.097 に答える