The git pull command is used to fetch and download content from a remote repository and immediately update the local repository to match that content. Merging remote upstream changes into your local repository is a common task in Git-based collaboration work flows.
Issue the following command in your Acme
repo. It adds a new remote repository named upstream
that points to the Generic
repo.
git remote add upstream https://location/of/generic.git
You can then merge any changes made to Generic
into the current branch in Acme
with the following command:
git pull upstream
If you just want it to download the changes without automatically merging, use git fetch
instead of git pull
.
If you want to disable pushing to that repository, set the push URL to an invalid URL using something like
git config remote.upstream.pushurl "NEVER GONNA GIVE YOU UP"
Git will now yell at you about not being able to find a repo if you try to push to upstream
(and sorry about the Rickroll, but it was the first random string that popped into my head).
In order to pull a particular branch from different repo you can use the below git command.
git pull <git_url> <branch> --allow-unrelated-histories
As @vin mentioned you can pull directly from another repo without adding a new origin (assuming a pull from another repo's master
branch to the local master
branch):
git pull https://some-other-repo.git master:master
If the commit histories of the two repos are not linked then --allow-unrelated-histories
will be needed but use it with caution, as it implies you know what you are doing.
You can also push
a local repo to another repo without adding it as a remote (the remote branch doesn't have to exist so you can use anything you want, e.g. master:new_branch
):
git push https://some-other-repo.git master:master
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With