782

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?

1
  • 35
    Its 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. help.github.com Commented Sep 18, 2009 at 8:33

11 Answers 11

1085

Probably:

either:    git pull origin master

    or:    git pull origin main 
12
  • 33
    It 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
    Commented Jan 9, 2014 at 18:40
  • 8
    git pull origin master Commented Dec 2, 2014 at 20:36
  • 2
    do 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
    Commented Feb 20, 2015 at 19:38
  • 11
    I 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
    Commented Jan 7, 2016 at 18:58
  • 4
    2021 update: git pull origin main Many repos are moving away from master - and Github repo's default is now main
    – Troper
    Commented Jun 2, 2021 at 18:31
142

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
2
  • 3
    Not really. fatal: Couldn't find remote ref master Commented Feb 4, 2015 at 22:36
  • 4
    @Eijkhout probablt in Your repo case there is no master branch, and some other branch is set as default Commented Jun 12, 2015 at 7:00
80
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

1
  • 6
    If 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. Commented May 21, 2014 at 22:44
29

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.

1
17

With an already-set origin master, you just have to use the below command -

git pull "https://github.com/yourUserName/yourRepo.git"
13

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>

7

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

1
  • 1
    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
    Commented Mar 15, 2021 at 12:48
4

git pull origin master // Change in github, it take effect in local reprository

NB: Working Fine

All about git: https://gist.github.com/subrotoice/b27f7d20617bb3da04827a223faf6450

Complete Documentation
googel>>Install Git
https://git-scm.com/book/en/v2/Getting-Started-Installing-Git // Type "git" to check it work or not?

#Basic Windows command like cd
cd\  = back to root directory c drive does not metter where its current postion 
cd .. = One step back
cd /d D: = C Drive to D drive
dir or ls(LS)  = List all file and folder of current directory. "ls" is more clear to read
mkdir mynewfolder = Create New Folder
cd "folderName" = To enter Folder for doing some task
cls = Clear Screen

#Upload A full new project (Make sure no file there even readme.md to avoid error)--Working==========
git config --global user.name "subrotoice"
git config --global user.email "[email protected]"

git init    // Basically 3 steps, 1. add, 2. Commit, 3. Push
git add .   // Add to local repositories
git commit -m "first commit"  // Commit to local repositories
git remote add origin https://github.com/subrotoice/ccn.git  // ("origin user-defined", origin=url.git, variable e value assign korar moto)
git push -u origin master  // push,  origin user define name like variable contain url. (master default brunch name, you can create brunch like, https://prnt.sc/26pq9x2

#master(default),  If you want to create other brunch not master(default), here brunch name is "main", user-defined name
git branch -M main // Create new branch main
git remote add origin https://github.com/subrotoice/33sfdf.git  // origin(any name) is variable name contain url, age url assing thakle ei line dorkar nai
git push -u origin main

git branch // Show current branch
git checkout master // Switched to branch 'master'

#Work on existing Project----------------
First you have to download project otherwise it will not work
git clone https://github.com/Tilotiti/jQuery-LightBox-Responsive.git   // Pull
cd folder_name // Need to change to inside folder
git add . For all new file and folder (git add file_names.exten  it is for single file)
git status  // to check the status of git files [optional]
git commit -m "committed message" For asingle file(git commit -m "committed message" file_names.exten)
git push -u origin master
git pull origin master // Change in github, it take effect in local reprository. 'Synchronization'

# Clone a Specic Brunch, in stade of main brunch master
git clone --branch <branchname> <remote-repo-url>
git clone -b <branchname> <remote-repo-url>
git clone -b main9 https://github.com/subrotoice/test9.git  // Working, Here brunch name main9
git push -u origin main9 // Push to main9, Error: if use master as brunch name
git pull origin master // Change in github, it take effect in local reprository 

#VS Code--- Command dorkar nai, Sob visually kora jai
https://www.youtube.com/watch?v=2oihkInZ880  (Hindi)
1st time step: -----(Local: 1-3, Remote: a-d)--------------
1. Initialize Repository // https://prnt.sc/V7oDXeeOi9CO
2. Commit  // Visually Commit
3. COnfig Git(If ask)

a. Add Remote  // Visually Commit https://prnt.sc/-IWSFNeadc1H
b. Push  // Commit and push option ase vscode
c. Github Auth
d. Push Again (If required)

2nd Time (Old Project):
1. Pule (clone) // https://prnt.sc/K2us0_eYZFuq
2. Commit

a. Push
# https://prnt.sc/5ii9wCPT9Qut // Change in github, it take effect in local reprository
1

Use this to update your local repo with the updated one in remote repo like Gitlab, Github, etc.

git pull origin master
1
  • 3
    This exact answer has already been provided multiple times. Please upvote existing answers instead of adding new answers, unless you have a new approach. Commented Jul 16, 2022 at 19:36
1

The first thing you should do is determine which branch you need to pull from GitHub. Borrowing a graphic from the Viewing branches in your repository document from GitHub, you can explore all the available branches by clicking the button that's contained in the red box shown in the graphic below. The label on the button might be main, it might be master - or it might be something else. If it's a relatively simple GitHub site, this button will likely be labeled main or master.

You can click on the "branch button" to expand the list of branches - or go to the bottom of the list and choose View all branches.

enter image description here

If you're still unsure, you can go into your local repository and find the name of your current branch. Most likely this will be the branch you should update from:

$ cd ./mylocalgitrepo 
$ git branch --show-current
master           # or main, or ...
# alternatively, to see all available branches:
$ git branch
... 

Once you've discovered which branch (i.e. the <branch-of-interest>), the rest of the task is fairly trivial:

$ git pull origin <branch-of-interest>

# perhaps: 'git pull origin master', or 'git pull origin main', or ...
0

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.