On Jul 28, 10:00 pm, joe ehass...@gmail.com wrote:
When going through several articles/tutorials about git I see the
following being done for the initial push to a new branch:
git push origin branchname:refs/heads/branchname
Is this necessary for subsequent pushes or does git push do the same
thing? I just tested this with a couple of dummy repo's and it seems
to do the same thing. I've actually been doing this each time I need
to add/push something new to branches that aren't touched by
developers:
** add files **
git add .
git commit -am added foo
git push origin branchname:refs/heads/branchname
** checkout branch that is worked on and pull new data from branchname
**
git checkout devbranch
git pull . branchname
git push origin devbranch:refs/heads/devbranch
So, if anyone could clarify this for me that would be awesome :)
First, the refs/heads/ prefix is superficial for most cases and is
only really needed when you have ambigous names (say, tag names
clashing with branch names). See the SPECIFYING REVISIONS section in
git-rev-parse manual page for the precise description of how such an
unprefixed name is revolved.
In other words, you usually just do `git push origin
devbranch:devbranch`.
Second, in most cases you will also omit the part after : (and the
colon itself) because if you do this, the destination ref name is
assumed to be the same as source. In other words, this usually can be
stripped down to `git push origin devbranch`.
Both refspecs are only needed when you want to update a remote ref
with a local ref which has different name, say, you fetched branch
foo from the remote, forked a local branch bar off it, made
several commits on it and then want to update the remote foo with
the fresh stuff in bar; in this case you do `git push origin
bar:foo`.
About the second question: no, nothing is saved automatically (which
is good).
On the one hand, you should be careful about what you push and so
naming refs explicitly is good, not hard. On the other hand, if you
need mirror mode, just use --mirror or other means. git-push
manual is your friend; read in thoroughly.
Also you can modify the behaviour of push in some ways, see
push.default parameter and parameters starting with branch. in git-
config manual.
--
You received this message because you are subscribed to the Google Groups Git
for human beings group.
To post to this group, send email to git-us...@googlegroups.com.
To unsubscribe from this group, send email to
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/git-users?hl=en.