Syncing your branch

As commits are pushed to your project on GitHub, you can keep your local copy of the project in sync by pulling from the remote repository.

About branch synchronization

You can sync your local branch with the remote repository by pulling any commits that have been added to the branch on GitHub since the last time you synced. If you make commits from another device or if multiple people contribute to a project, you will need to sync your local branch to keep the branch updated.

When you pull to your local branch, you only update your local copy of the repository. To update your branch on GitHub, you must push your changes. For more information, see "Pushing changes to GitHub."

To add changes from one branch to another branch, you can merge the branches. To apply changes to your branch from another branch in the same repository, you can merge the other branch into your branch on GitHub Desktop. To request that changes from your branch are merged into another branch, in the same repository or in another repository in the network, you can create a pull request on GitHub Desktop. For more information, see "Merging another branch into your project branch" and "About pull requests."

Some workflows require or benefit from rebasing instead of merging. By rebasing you can reorder, edit, or squash commits together. For more information, see "About Git rebase" and "Rebasing your project branch onto another branch."

Pulling to your local branch from the remote

  1. In GitHub Desktop, use the Current Branch drop-down, and select the local branch you want to update.
  2. To check for commits on the remote branch, click Fetch origin The Fetch origin button
  3. To pull any commits from the remote branch, click Pull origin or Pull origin with rebase. The Pull origin button
  4. Resolve any merge conflicts in your preferred way, using a text editor, the command line, or another tool. For more information, see "Addressing merge conflicts."

Merging another branch into your project branch

  1. In GitHub Desktop, click Current Branch. Current Branch drop-down menu

  2. Click Choose a branch to merge into BRANCH. Choose a branch option in the list of branches menu

  3. Click the branch you want to merge into the current branch, then click Merge BRANCH into BRANCH.

    Note: If there are merge conflicts, GitHub Desktop will warn you above the Merge BRANCH into BRANCH button. You will not be able to merge the branches until you have resolved all conflicts.

    The Merge button

  4. Click Push origin to push your local changes to the remote repository. The Push button

Rebasing your project branch onto another branch

  1. In the menu bar, use the Branch drop-down and click Rebase Current Branch. Rebase Current Branch in branch dropdown
  2. Click the branch you want to rebase into the current branch, then click Start rebase. Start rebase button
  3. If you're sure you want to rebase, click Begin rebase. Begin rebase button
  4. Resolve any merge conflicts in your preferred way, using a text editor, the command line, or another tool. For more information, see "Addressing merge conflicts."
  5. To push your local changes, click Force push origin. Force push origin
  1. Use the Branch drop-down and click Rebase Current Branch. Rebase Current Branch in branch dropdown
  2. Click the branch you want to rebase into the current branch, then click Start rebase. Start rebase button
  3. If you're sure you want to rebase, click Begin rebase. Begin rebase button
  4. Resolve any merge conflicts in your preferred way, using a text editor, the command line, or another tool. For more information, see "Addressing merge conflicts."
  5. To push up your local changes, click Force push origin. Force push origin

Squashing and merging another branch into your project branch

  1. Use the Branch drop-down and click Squash and Merge into Current Branch. Squash and merge in branch dropdown

  2. Click the branch you want to merge into the current branch, then click Squash and merge. Squash and merge  button

    Note: If there are merge conflicts, GitHub Desktop will warn you above the Squash and merge button. You will not be able to squash and merge the branch until you have resolved all conflicts.

  3. Click Push origin to push your local changes to the remote repository. The Push button

Further Reading

  • "Pull" in the GitHub glossary
  • "Merge" in the GitHub glossary
  • "Rebase" in the GitHub glossary

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.