Here is my workflow for my packages with vignettes on GitHub that I develop on RStudio. I'm assuming you in the situation where you don't want user to have to rebuild your vignettes when installing from GitHub. Mine for example would take forever to build and depend on many packages (in Suggests) that I would never want users to have to install.
That means I want all my vignette files in the inst/doc folder in my GitHub package repo. The originals are in the vignettes folder.
devtools::build_vignettes() is going to rebuild your vignettes but put them at the base level in doc which is not where you need them. It will also create the Meta folder which you don't need.
devtools::build() will make a tar.gz file with the vignette files in inst/doc but you don't want the tar.gz for your GitHub package repo. You want the inst/doc folder filled with the vignette files.
I use this code when I have changed my vignettes and need to update them in a GitHub package repo:
tools::buildVignettes(dir = ".", tangle=TRUE)
dir.create("inst/doc")
file.copy(dir("vignettes", full.names=TRUE), "inst/doc", overwrite=TRUE)
Then push the changes to GitHub. Also this will mean that when you use Install and Restart on the Build tab, your vignettes will now be there too.
Be aware that RStudio's default Check package behavior on the Build tab is to delete your inst/doc folder. If you don't notice and push changes to GitHub, you've just deleted all your vignettes from your GitHub package. They are still there in the vignettes folder but you'd have to use the build_vignettes=TRUE in install_github() to see them. The deletion is happening because you need to use devtools:check(vignettes=FALSE) and there is no way to set that from the Build Options in RStudio. But you can uncheck the use devtools package functions and stop RStudio from using devtools. You may want to add --no-manual to the R CMD check options box since building the manual can be time consuming.