* Add back changes from prior to purge * Manually fix some invalid Liquid * Updoot render-content * Improve test messages to show correct output * Run el scripto * Pass the remaining test
3.6 KiB
title, intro, redirect_from, versions
| title | intro | redirect_from | versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Getting changes from a remote repository | You can use common Git commands to access remote repositories. |
|
|
These commands are very useful when interacting with a remote repository. clone and fetch download remote code from a repository's remote URL to your local computer, merge is used to merge different people's work together with yours, and pull is a combination of fetch and merge.
Cloning a repository
To grab a complete copy of another user's repository, use git clone like this:
$ git clone https://{% data variables.command_line.codeblock %}/<em>USERNAME</em>/<em>REPOSITORY</em>.git
# Clones a repository to your computer
You can choose from several different URLs when cloning a repository. While logged in to {% data variables.product.prodname_dotcom %}, these URLs are available below the repository details:
When you run git clone, the following actions occur:
- A new folder called
repois made - It is initialized as a Git repository
- A remote named
originis created, pointing to the URL you cloned from - All of the repository's files and commits are downloaded there
- The default branch is checked out
For every branch foo in the remote repository, a corresponding remote-tracking branch
refs/remotes/origin/foo is created in your local repository. You can usually abbreviate
such remote-tracking branch names to origin/foo.
Fetching changes from a remote repository
Use git fetch to retrieve new work done by other people. Fetching from a repository grabs all the new remote-tracking branches and tags without merging those changes into your own branches.
If you already have a local repository with a remote URL set up for the desired project, you can grab all the new information by using git fetch *remotename* in the terminal:
$ git fetch <em>remotename</em>
# Fetches updates made to a remote repository
Otherwise, you can always add a new remote and then fetch.
Merging changes into your local branch
Merging combines your local changes with changes made by others.
Typically, you'd merge a remote-tracking branch (i.e., a branch fetched from a remote repository) with your local branch:
$ git merge <em>remotename</em>/<em>branchname</em>
# Merges updates made online with your local work
Pulling changes from a remote repository
git pull is a convenient shortcut for completing both git fetch and git merge in the same command:
$ git pull <em>remotename</em> <em>branchname</em>
# Grabs online updates and merges them with your local work
Because pull performs a merge on the retrieved changes, you should ensure that
your local work is committed before running the pull command. If you run into
a merge conflict
you cannot resolve, or if you decide to quit the merge, you can use git merge --abort
to take the branch back to where it was in before you pulled.
Further reading
- "Working with Remotes" from the Pro Git book"{% if currentVersion == "free-pro-team@latest" %}
- "Troubleshooting connectivity problems"{% endif %}
