I created a bare repo to publish my repository, but I can't figure out how to update the bare repo with the current state of the main repository.
If you want to duplicate all the objects from the main repo, do this inside the main repo:
git push --all <url-of-bare-repo>
Alternatively, do a fetch inside the bare repo:
git fetch <url-of-main-repo>
You cannot do a pull, because a pull wants to merge with HEAD
, which a bare repo does not have.
You can add these as remotes to save yourself some typing in the future:
git remote add <whatever-name> <url-of-other-repo>
Then you can simply do
git push --all <whatever-name>
or
git fetch <whatever-name>
depending on what repo you're in. If <whatever-name>
is origin
, you can even leave it out altogether.
Disclaimer: I'm not a git guru. If I said something wrong, I'd like to be enlightened!
Update: Read the comments!
Update 2022-10-10: if you are fetching inside a bare git repo then you probably need to do a git fetch origin master:master
otherwise your git log
will not show the new commits. Use git fetch origin *:*
to update all local branches. See comments for more info.