![](/img/trans.png)
[英]Can't push to Heroku using git push heroku master (Could not read from remote repository)
[英]Heroku (and similar services): clone, commit and push to Git Repository
我希望我的Rails應用程序在訪問者在Web應用程序上輸入一些值后提交並推送git更改。 在開發過程中,我使用Ruby Gem來提交和推送更改,這會將存儲庫克隆到文件系統上。 更改將寫入這些文件,然后由Gem提交和推送。
Heroku僅提供只讀文件系統。
有沒有辦法
我是否忘記了在遠程git存儲庫上實現更改的任何明顯方法?
我決定使用亞馬遜雲來解決這個問題。 使用'aws-sdk'gem,可以輕松地將文件更改寫入S3在線空間。
然后我使用我的CIS下載最新文件並將它們提交到存儲庫,這是一個簡單的ruby腳本:
require 'git'
require 'aws-sdk'
require 'fileutils'
folder_name = "configs"
begin
g = Git.open(folder_name)
rescue
puts "Cloning repo..."
system("mkdir #{folder_name}")
g = Git.clone("git@url...", folder_name, :path => ".")
end
g.config("user.name", "GitBot")
g.config("user.email", "...")
g.pull
FileUtils.rm_rf(Dir.glob("#{folder_name}/*"))
s3 = AWS::S3.new
bucket = s3.buckets["bucket name"] if not bucket
bucket.objects.each do |obj|
if obj.content_length > 0
# only files
puts "Writing #{obj.key}"
File.write("#{folder_name}/#{obj.key}", obj.read)
else
puts "Creating folder #{obj.key}"
FileUtils.mkdir_p "#{folder_name}/#{obj.key}"
end
end
begin
g.add(:all => true)
g.commit("Automatic commit from GitBot")
g.push
puts "Successfully pushed updates"
rescue
puts "Nothing to commit"
end
它不是一個完美的解決方案,但對我的用例非常有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.