How do I use ArgoCD/GitOps to patch an existing resource?

You must use ServerSideApply in order to patch an existing CR.

See the ArgoCD Documentation

A great example is using GitOps to patch the ArgoCD resource itself in order to give OCP groups admin privileges in Argo

argocd-patch-admin-group.yaml

---
apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
  name: openshift-gitops
  namespace: openshift-gitops
  annotations:
    argocd.argoproj.io/sync-options: ServerSideApply=true
spec:
  rbac:
    policy: |
      g, ocp-users, role:admin
      g, system:cluster-admins, role:admin
      g, cluster-admins, role:admin