On 2020-06-15 at 10:03:27, Pratyush Yadav wrote: > For example, my vim plugins are submodules in the '~/.vim/bundle' > directory. When I want to update them, I run: > > git submodule foreach 'git remote update && git reset --hard origin/master' > > With this change hitting a Git release, more and more people would call > their main branch different names they like. So what is the recommended > way to do something like this now? How do I checkout the tip of the main > branch? How do I push to the main branch? How do I pull from the main > branch? And so on... This is a common issue that's long existed but may become more common as people change their branches. I believe when you clone that it by default pulls down a HEAD reference for the remote. So you can use origin/HEAD (a symref) in this case to use the correct default branch, whatever it may be called. Then your code doesn't have to care about the actual name, which is probably better anyway. If you want to know the actual name, you can use this: git rev-parse --abbrev-ref origin/HEAD. If the owner of the repository chooses to change that name or if you lack the HEAD reference for a remote, you can fix it with "git remote set-head origin -a". I'll see if I can find time this week to work up a FAQ entry about how to do this, since it seems to be a common question folks have. I myself wasn't aware of "git remote set-head" until the other day, so I don't expect others to be familiar with it, either. -- brian m. carlson: Houston, Texas, US OpenPGP: https://keybase.io/bk2204