# File lib/grit/index.rb, line 79
    def commit(message, parents = nil, actor = nil, last_tree = nil, head = 'master')
      tree_sha1 = write_tree(self.tree, self.current_tree)

      # don't write identical commits
      return false if tree_sha1 == last_tree

      contents = []
      contents << ['tree', tree_sha1].join(' ')
      parents.each do |p|
        contents << ['parent', p].join(' ')
      end if parents

      if actor
        name  = actor.name
        email = actor.email
      else
        config = Config.new(self.repo)
        name   = config['user.name']
        email  = config['user.email']
      end

      author_string = "#{name} <#{email}> #{Time.now.to_i} -0700" # !! TODO : gotta fix this
      contents << ['author', author_string].join(' ')
      contents << ['committer', author_string].join(' ')
      contents << ''
      contents << message

      commit_sha1 = self.repo.git.put_raw_object(contents.join("\n"), 'commit')

      self.repo.update_ref(head, commit_sha1)
    end