code: func (s *Action) GitCredentialStore(ctx context.Context, c *cli.Context) error {
  	cred, err := parseGitCredentials(termio.Stdin)
  	if err != nil {
  		return ExitError(ctx, ExitUnsupported, err, "Error: %v while parsing git-credential", err)
  	}
  	path := "git/" + fsutil.CleanFilename(cred.Host) + "/" + fsutil.CleanFilename(cred.Username)
  	// This should never really be an issue because git automatically removes invalid credentials first
  	if s.Store.Exists(ctx, path) {
  		fmt.Fprintf(os.Stderr, ""+
  			"gopass: did not store \"%s\" because it already exists. "+
  			"If you want to overwrite it, delete it first by doing: "+
  			"\"gopass rm %s\"\n",
  			path, path,
  		)
  		return nil
  	}
  	secret := secret.New(cred.Password, "")
  	if cred.Username != "" {
  		_ = secret.SetValue("login", cred.Username)
  	}
  	err = s.Store.Set(ctx, path, secret)
  	if err != nil {
  		fmt.Fprintf(os.Stderr, "gopass error: error while writing to store: %v\n", err)
  	}
  	return nil
  }
docs: // GitCredentialStore stores a credential got from git