"git push" doing the same as "git fetch" from the remote
My question is the same as this one, but the answer is not clear to me.
I have two git repos A and B in sync (corresponding to the two machines I work on). When I start working in B, I would normally do git fetch A
(assuming the remote A in B points to repo A).
But I want instead being able to push from A to the remote branch A inside B whenever I work in A. I want to be sure that it is safe, because of the warnings concerning pushing to a non-bare repo. My settings 开发者_Python百科(in file A/.git/config) would be:
[remote "B"]
fetch = +refs/heads/*:refs/remotes/B/*
push = +refs/heads/*:refs/remotes/A/*
url = ssh://<machine_B>/home/project/B
With this setting, do I get exactly the same result with this two commands? :
- in A:
git push B
- in B:
git fetch A
If you do git push B
in A, you already update refs in B (only the ones you actually pushed), so that a subsequent git fetch A
in B is not be required to update the specific updated refs.
I found the exact answer to my question on kerneltrap mail archive, by one of the main git developers. So yes, both commands are equivalent.
精彩评论