# The googlegolangorg program needs a fairly short list of things
# from the golang.org/x/website repository that probably doesn't
# change often. Filter everything else out implicitly as long as
# this approach needs less maintenance.
**
!go.mod
!go.sum
!cmd/
!cmd/googlegolangorg/**

.gcloudignore
