2010-02-12 41 views
14

我的應用託管在Heroku上,並且我也有一個公共github回購。使用github託管公共git存儲庫,同時確保敏感數據文件保持未被跟蹤

我的應用程序有一個包含我的亞馬遜S3憑證的配置文件。確保文件被推送到heroku而不是github是很重要的。

所以我在想,我能我的master分支推送到Heroku的,並創建一個單獨的github分行,並確保它的.gitignore文件引用我s3.yml文件。然後,我可能只是這樣做「混帳推起源github上:大師」推GitHub的分支github.com

也能正常工作的第一次提交。

但後來我切換到我的主分支,寫一些真棒代碼,然後將其全部推到Heroku的。然後我切換回我的github分支,並執行「git merge master」,以便將新代碼添加到它。但是這會導致master分支的s3.yml和gitignore文件被複制到github分支中。提示頭對桌撞擊會議。

是否有關於如何保持同步的了,同時確保未跟蹤文件保留未經跟蹤分行的任何建議。我可以告訴git不要在不需要的S3.yml文件和不同的.gitignore文件中合併嗎?

我在這裏鞭打死馬嗎?我不能證明支付私人github帳戶,但我想答案會涉及做只是....或切換到projectlocker

我希望這個問題只是我的廢話混帳技巧和有一個辦法....在此先感謝

編輯:::接受的答案是一個很好的解決方案,但我剛剛發現了一個新的,我喜歡更多。在這裏閱讀關於它:http://docs.heroku.com/config-vars - 在Heroku的那些聰明的人有一個答案的一切...嚴重真棒

+0

+1 for heroku的解決方案 – Jimmy

+0

如果您關心的只是您的S3憑證等參數,則Heroku config var解決方案可以正常工作。但是我可以看到一種情況,比方說,您想要使用相同的回購進行開發並推向Heroku。你想發送你的node_modules文件夾到Heroku(因爲建議Heroku重建所有內容),而不是Github或Gitlab。另外,你可能有幾個文件夾,你不需要在Heroku上進行部署,就像預先構建源代碼一樣。爲此,您需要一個自定義合併驅動程序和多個分支。 – neverfox

回答

10

但是這將導致從主分支s3.yml和gitignore文件被複制到GitHub的分支

可以防止含有定製合併司機這將確保到github分支的.gitignore文件將始終保留其內容,而不是從master中合併的內容。

How do I tell git to always select my local version for conflicted merges on a specific file?

+0

謝謝!自定義合併驅動程序正是我想要的!順便寫一下。 – stephenmurdoch

+1

請注意,這可能不會達到你想要的 - 分支的頭部會有正確的文件,但如果你使用Git進行合併,那麼頭部提交將有兩個父母,都可以訪問。一個來自你的github分支,另一個來自主分支,仍然包含你的密碼。 –

2

在SVN這被稱爲'忽略文件',所以我認爲這將是東西類似的GIT - 我不使用GIT所以不要引用我,但我已經找到了GitHub的網站上此引用:

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

希望幫助

+0

我一直在使用該鏈接詳細的方法一段時間了,但無論如何感謝:) – stephenmurdoch

0

如果使用Heroku的命名爲您的「另類分支主「分支(具有敏感數據)和舊主分支,而不具有敏感數據你總是可以做

git merge master 

所以你可以把heroku分支推到heroku不是主分支。

+0

謝謝,但這仍然導致同樣的問題。如果我在新的heroku分支中開發,我總是需要將更改合併到master(github)分支中,這意味着配置文件會被複制過來,如果我在主分支上開發,那麼我需要配置文件可用,否則我的應用程序將無法在開發過程中。不過謝謝。 – stephenmurdoch

1

也許你可以遠離混帳移動「危險」的文件完全 - 比如讓他們在〜/ .yourapp或類似的東西。(這並不直接回答這個問題,而是它的許多軟件 - .fetchmail,.ssh,...),並允許其他用戶也這樣做。

相關問題