I've got a project checked locally from GitHub, and that remote repository has since had changes made to it. What's the correct command to update my local copy with the latest changes?
-
34Its worth noting that github have produced a set of very informative and helpful guides for using git and github. I found them invaluable when I first made the move to git. https://help.github.com/ – Mark Embling Sep 18 '09 at 08:33
8 Answers
Probably:
was: git pull origin master
now: git pull origin main
- 453
- 1
- 4
- 14
- 13,759
- 3
- 31
- 42
-
32It complained: "You asked to pull from the remote 'origin', but did not specify a branch. Because this is not the default configured remote for your current branch, you must specify a branch on the command line." So I tried "$ git pull origin master" and it worked fine. – Juan Lanus Jan 09 '14 at 18:40
-
8
-
1I deleted some files and it is not bringing them again, any idea? – Aquarius Power Feb 14 '15 at 02:44
-
2do we do a git commit before running this? everytime i run this command, i end up with 18347213846 modified files that i didnT even touch!!! – Orkun Ozen Feb 20 '15 at 19:38
-
8I just learned the hard way that pulling a new remote repository branch does not create a branch of that name locally, but instead pulls that remote branch into whatever local branch happens to be checked out. I'm not sure how to undo this short of ditching and re-cloning the repository. In any case, it seems that the local branch is independent of the remote branch and one should always make sure you're in the intended local branch before pulling. – Joe Lapp Jan 07 '16 at 18:58
-
Why we want to do merge ,but I think fetch is OK .What if code is diseased or not healthy contribution? Is git pull one is safe command? – TheExorcist Oct 30 '17 at 08:21
-
If I made changes lokally but don't want them be merged, just get the exact copy of the remote repo, then I have to delete or rename my lokal repo and just clone it again, right? – franc Mar 06 '18 at 12:49
-
@JuanLanus why additional origin master required? won't git pull will be sufficient? – Ankush Jain Jun 18 '18 at 05:24
-
@Ankush: for most of us there is no need to name a branch because we work on a single branch "master", but multi-developer teams usually work in many branches at once, thus the requirement to identify it. For Git, the "master" name is not special, is just another branch name. – Juan Lanus Jun 19 '18 at 11:20
-
franc I always try to remember to take a full copy of my current local directory, because I don't know git arcana well enough to undo anything strange - like Joe Lapp's problem above – WillC Oct 24 '18 at 11:36
-
1`git remote -vv` and `git branch -vv` might help you understand what's going on too: first one gives you the details of the 'remote' repository - the repository on the server, not your local/working repository: second one gives you the details of the branch from your local repository you have checked out, and the details of the corresponding branch from the remote repository . – WillC Oct 24 '18 at 11:48
-
12021 update: `git pull origin main` Many repos are moving away from master - and Github repo's default is now `main` – Sam T. Jun 02 '21 at 18:31
This should work for every default repo:
git pull origin master
If your default branch is different than master, you will need to specify the branch name:
git pull origin my_default_branch_name
- 117
- 5
- 10,194
- 7
- 37
- 37
-
3
-
3@Eijkhout probablt in Your repo case there is no master branch, and some other branch is set as default – Andrzej Rehmann Jun 12 '15 at 07:00
git fetch [remotename]
However you'll need to merge any changes into your local branches. If you're on a branch that's tracking a remote branch on Github, then
git pull
will first do a fetch, and then merge in the tracked branch
- 124,675
- 36
- 145
- 155
-
6If you are using the `git fetch` method, you'll also want to fetch tags with `git fetch -t`. If you're satisfied with the changes (`git log HEAD..FETCH_HEAD`), you can then merge them in with `git merge FETCH_HEAD`. – Brad Grissom May 21 '14 at 22:44
This question is very general and there are a couple of assumptions I'll make to simplify it a bit. We'll assume that you want to update your master branch.
If you haven't made any changes locally, you can use git pull to bring down any new commits and add them to your master.
git pull origin master
If you have made changes, and you want to avoid adding a new merge commit, use git pull --rebase.
git pull --rebase origin master
git pull --rebase will work even if you haven't made changes and is probably your best call.
- 3,136
- 20
- 31
- 231
- 2
- 8
-
1Rebase, and the dangers of rebase: https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase. Paragraphs 2 and 3 of the "Understanding the dangers of rebase" really make me miss SVN's command set. – WillC Oct 24 '18 at 11:42
With an already-set origin master, you just have to use the below command -
git pull "https://github.com/yourUserName/yourRepo.git"
- 30,030
- 21
- 100
- 124
- 179
- 1
- 3
To pull from the default branch, new repositories should use the command:
git pull origin main
Github changed naming convention of default branch from master to main in 2020. https://github.com/github/renaming
- 91
- 1
- 6
-
Regardless of GitHub's policy change, main might not be the GitHub default branch. The user can specify a default branch name. If your goal is to pull from the GitHub default branch then there is no need to specify a branch...main, master, or otherwise. "git pull" will act on the default remote and the default branch. – K. hervey Mar 15 '21 at 12:48
Complete Workflow for check out a branch and pull changes from master
Pull all remote branches
git pull --all
List all branches now
git branch -a
Download your branch
git checkout -b
<feature branch name copied from list of branches above>
Shows current branch. Must show <feature branch> with * In front of it
git branch
Checkout changes from master to current branch
git pull origin master
OR checkout any other <feature branch> into current branch
git pull origin
<feature-branch>
- 38,157
- 14
- 182
- 142
After Git Clone, if want to get the remote branches use
git fetch --all
Then checkout to the branch you want
git checkout the-branch-you-need
- 238
- 2
- 7