Which push Refspec (Git) is correct? Or both are correct? What is the difference?
refs/heads/*:refs/heads/origin/*refs/heads/*:refs/heads/*
I prefer (1) because it references remote name (origin), and I don't understand what (2) means (but I see it used in some manuals!).
With
refs/heads/*:refs/heads/origin/*,git push origin masterwould be expanded togit push origin refs/heads/master:refs/heads/origin/master. It will create or update a branch namedorigin/masterin the remote repository. It's valid, butrefs/heads/origin/masterwould be ambiguous withrefs/remotes/origin/master. In some situations, it might cause errors.The 2nd is valid. With
remote.origin.push=refs/heads/*:refs/heads/*,git pushis expanded togit push origin refs/heads/master:refs/heads/master refs/heads/dev:refs/heads/dev, andgit push origin mastertogit push origin refs/heads/master:refs/heads/master.