I think it also bothers the side of me coming from compiled languages where there is more to a code release then copy files from a to b.
> not clear what code has and has not been deployed
You can have your production machines deploy from specific branches. In other words, master is the development branch, some-version-branch is the production branch. You can also do it vice versa. You can use tags. Lots of solutions.
> code is not explicitly validated (automatically, manually, on a build/test lab)
If you use the structure above, you wouldn't commit to a production branch unless you did that. Another solution is to force validation/testing using hooks before allowing a commit to a production branch on your development machine.
> and it isn't clear who triggered the release.
Not sure what you mean here ... every commit is recorded, so you always know who did what.
Host github-yipit-main
Hostname github.com
IdentityFile ~/.ssh/yipit_main_rsa
then just go about your merry way of: git clone git@github-yipit-main:/yipit/yipit-main.git(Though to be honest, this flow seems overly complex, and I'm not 100% sure what problem it's solving).