code: func (c *Config) Unmarshal(b []byte) error {
  	r := bytes.NewBuffer(b)
  	d := format.NewDecoder(r)
  
  	c.Raw = format.New()
  	if err := d.Decode(c.Raw); err != nil {
  		return err
  	}
  
  	c.unmarshalCore()
  	if err := c.unmarshalPack(); err != nil {
  		return err
  	}
  	unmarshalSubmodules(c.Raw, c.Submodules)
  
  	if err := c.unmarshalBranches(); err != nil {
  		return err
  	}
  
  	return c.unmarshalRemotes()
  }
docs: // Unmarshal parses a git-config file and stores it.