Re: [RFC] Reverting "git push logic change"?
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:17
Junio C Hamano [off-list ref] 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 <redacted> ---
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 -------------------------------------