From: Junio C Hamano Date: Sun, 22 Jan 2006 21:31:00 GMT Subject: Re: [RFC] Reverting "git push logic change"? Message-ID: <7vu0bw9ch7.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <7vr770c8db.fsf@assigned-by-dhcp.cox.net> Junio C Hamano writes: > ... This is a user error but that is not their fault. It > means that we need to document this better: I hope something like this is clear enough? -- >8 -- [PATCH] Recommend to remove unused `origin` in a shared repository It is a common mistake to leave an unsed `origin` branch behind if a shared public repository was created by first cloning from somewhere else. Subsequent `git push` into it with the default "push all the matching ref" would push the `origin` branch from the developer repository uselessly. Signed-off-by: Junio C Hamano --- diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt index b8fa299..35579cc 100644 --- a/Documentation/tutorial.txt +++ b/Documentation/tutorial.txt @@ -1667,6 +1667,26 @@ complain, telling you that the remote `m fast forward. You need to pull and merge those other changes back before you push your work when it happens. +The `git push` command without any explicit refspec parameter +pushes the refs that exist both in the local repository and the +remote repository. So the last `push` can be done with either +one of these: +------------ +$ git push origin +$ git push repo.shared.xz:/pub/scm/project.git/ +------------ +as long as the shared repository does not have any branches +other than `master`. +[NOTE] +============ +If you created your shared repository by cloning from somewhere +else, you may have the `origin` branch. Your developers +typically do not use that branch; remove it. Otherwise, that +would be pushed back by the `git push origin` because your +developers' repository would surely have `origin` branch to keep +track of the shared repository, and would be counted as "exist +on both ends". +============ Advanced Shared Repository Management -------------------------------------