code: func (a *Attribute) set(gitConfig *git.Configuration, key, value string, upgradeables []string, opt *FilterOptions) error {
  	var currentValue string
  	if opt.Local {
  		currentValue = gitConfig.FindLocal(key)
  	} else if opt.System {
  		currentValue = gitConfig.FindSystem(key)
  	} else {
  		currentValue = gitConfig.FindGlobal(key)
  	}
  
  	if opt.Force || shouldReset(currentValue, upgradeables) {
  		var err error
  		if opt.Local {
  			_, err = gitConfig.SetLocal(key, value)
  		} else if opt.System {
  			_, err = gitConfig.SetSystem(key, value)
  		} else {
  			_, err = gitConfig.SetGlobal(key, value)
  		}
  		return err
  	} else if currentValue != value {
  		return fmt.Errorf("The %q attribute should be %q but is %q",
  			key, value, currentValue)
  	}
  
  	return nil
  }
docs: // set attempts to set a single key/value pair portion of this Attribute. If a
  // matching key already exists and the value is not equal to the desired value,
  // an error will be thrown if force is set to false. If force is true, the value
  // will be overridden.