Git remote operation detailed

Source: Internet
Author: User
Tags git commands

Git is by far the most popular version management system, and learning git is almost a necessary skill for developers.

One of the advantages of git is that it's very easy to operate remotely. This article details 5 git commands, their concepts and usage, and you'll get a complete grasp of git remote operations.

    • git clone
    • Git remote
    • git fetch
    • Git pull
    • git push

For beginners, this article starts with the simplest, but requires a reader to understand the basic uses of Git. At the same time, this article covers almost all of the above 5 commands of common use, so for the skilled users also have reference value.

One, Git clone

The first step in a remote operation is to clone a repository from a remote host and use the git clone command.

<版本库的网址>

For example, clone the repository of jquery.

$ git clone https://github.com/jquery/jquery.git

The command generates a directory on the local host with the same name as the remote host's repository. If you want to specify a different directory name, you can use the directory name as git clone the second parameter of the command.

<版本库的网址> <本地目录名>

git cloneSupport for a variety of protocols, in addition to HTTP (s), but also support SSH, Git, local file protocol, and so on, here are some examples.

$ git clone http[s]://example. com/path/to/repo.git/$ git clone ssh://example. com/path/to/repo.git/$ git clone git://example. com/path/to/repo.git/$ git clone/opt/git/project.git $ git clone file:///opt/ git/project.git$ git clone ftp[s]://example .com/path/to/repo.git/$ git clone rsync:/< Span class= "token operator" >/example.com/path/to/repo.git/       

There is another way of writing the SSH protocol.

[[email protected]]example.com:path/to/repo.git/

In general, the GIT protocol is the fastest to download and the SSH protocol is used for applications requiring user authentication. For a detailed discussion of the pros and cons of the various protocols, please refer to official documentation.

Second, git remote

For ease of administration, GIT requires that each remote host must specify a host name. git remotecommand is used to manage host names.

With no options, the git remote command lists all remote hosts.

$ git remoteorigin

Use the -v option to see the URL of the remote host.

-vorigin  [email protected].com:jquery/jquery.git (fetch)origin [email protected].com:jquery/jquery.git (push)

The above command indicates that there is currently only one remote host, called Origin, and its URL.

When cloning a repository, the remote host used is automatically named by Git origin . If you want to use a different host name, you need to specify it with git clone the option of a command -o .

-o jQuery https://github.com/jquery/jquery.git$ git remotejQuery

The above command indicates that when cloning, the specified remote host is called jquery.

git remote showcommand with the host name, you can view the details of the host.

<主机名>

git remote addcommand to add a remote host.

<主机名> <网址>

git remote rmcommand to delete a remote host.

<主机名>

git remote renameThe command is used for renaming the remote host.

<原主机名> <新主机名>
Third, git fetch

Once the repository for the remote host has been updated (the git term is "commit"), the updates need to be retrieved locally, using the git fetch command.

<远程主机名>

The above command retrieves the updates for a remote host locally.

git fetchCommands are often used to view other people's processes because the code they retrieve does not affect your local development code.

By default, git fetch all branches (branch) are retrieved for updates. If you want to retrieve only updates for a particular branch, you can specify a branch name.

<远程主机名> <分支名>

For example, retrieve origin the branch of the host master .

$ git fetch origin master

The retrieved updates are read in the form of a "remote hostname/branch name" on the local host. For example origin , the host master , you need to origin/master read.

git branchThe options for the command -r can be used to view the remote branch, -a options to view all branches.

-rorigin/master$ git branch -a* master  remotes/origin/master

The above command indicates that the current branch of the local host is master , the remote branch is origin/master .

After retrieving the update for the remote host, you can git checkout create a new branch using the command on its basis.

-b newBrach origin/master

The above command indicates that, on origin/master the basis of, a new branch is created.

Alternatively, you can use git merge commands or git rebase commands to merge remote branches on the local branch.

$ git merge origin/master# 或者$ git rebase origin/master

The above command represents the merge on the current branch origin/master .

Iv. git Pull

git pullThe purpose of the command is to retrieve updates from a branch of a remote host and merge with the local specified branch. Its full format is slightly more complex.

<远程主机名> <远程分支名>:<本地分支名>

For example, retrieving origin a host's next branch and merging it with a local master branch would need to be written as follows.

$ git pull origin next:master

If the remote branch is merged with the current branch, the part following the colon can be omitted.

$ git pull origin next

The above command indicates that the origin/next branch is retrieved and then merged with the current branch. In essence, this is equivalent to doing it first git fetch and doing it again git merge .

$ git fetch origin$ git merge origin/next

In some cases, Git automatically creates a tracking relationship (tracking) between the local branch and the remote branch. For example, at git clone the time, all local branches default to the remote host with the same name branch, establishing a tracking relationship, that is, the local master branch automatic "tracking" origin/master branch.

Git also allows you to manually establish tracking relationships.

--set-upstream master origin/next

The above command specifies the master branch tracking origin/next branch.

If the current branch has a tracing relationship with the remote branch, the git pull remote branch name can be omitted.

$ git pull origin

The above command indicates that the local current branch is automatically merged with the corresponding origin host "Trace Branch" (Remote-tracking Branch).

If the current branch has only one trace branch, even the remote host name can be omitted.

$ git pull

The above command indicates that the current branch is automatically merged with the only one tracking branch.

If merging requires rebase mode, you can use --rebase options.

--rebase <远程主机名> <远程分支名>:<本地分支名>

If a remote host deletes a branch, by default, the git pull corresponding local branch is not deleted when the remote branch is pulled. This is to prevent the local branch from being inadvertently deleted because other people have manipulated the remote host git pull .

However, you can change this behavior, plus the parameter -p will delete the remote deleted branch locally.

-p# 等同于下面的命令$ git fetch --prune origin $ git fetch -p
Five, Git push

git pushThe command is used to push updates to the local branch to the remote host. Its format is similar to the git pull command.

<远程主机名> <本地分支名>:<远程分支名>

Note that the branch push sequence is written in < source >:< destination, so git pull it is < remote branch >:< local branch, and git push is < local branch >:< remote branch >.

If you omit the remote branch name, it means that the local branch is pushed to the remote branch with which the trace relationship exists (usually the same name), and if the remote branch does not exist, it is created.

$ git push origin master

The above command indicates that the local master branch is pushed to origin the branch of the host master . If the latter does not exist, it will be created.

If you omit the local branch name, it means that the specified remote branch is deleted because it is equivalent to pushing an empty local branch to the remote branch.

:master# 等同于$ git push origin --delete master

The above command indicates origin the branch that removed the host master .

If there is a tracing relationship between the current branch and the remote branch, both the local branch and the remote branch can be omitted.

$ git push origin

The above command indicates that the current branch is pushed to origin the corresponding branch of the host.

If the current branch has only one trace branch, the host name can be omitted.

$ git push

If the current branch has a tracking relationship with more than one host, you can use the -u option to specify a default host so that you can use it later without any parameters git push .

-u origin master

The above command pushes the local master branch to the origin host and designates it origin as the default host, which can be used without any parameters git push .

With no arguments, the git push default is to push only the current branch, which is called the simple method. In addition, there is a matching method that pushes all local branches that have corresponding remote branches. Prior to Git version 2.0, the default is to use the matching method, which now defaults to Simple mode. If you want to modify this setting, you can use the git config command.

--global push.default matching# 或者$ git config --global push.default simple

In another case, the option is required to push all local branches to the remote host, regardless of whether there is a corresponding remote branch --all .

--all origin

The above command indicates that all local branches are pushed to the origin host.

If the version of the remote host is newer than the local version, Git will give an error when pushed, requiring that the merge differences be made locally before being git pull pushed to the remote host. At this point, if you must push, you can use the --force options.

--force origin 

The above command uses --force the option, resulting in an overwritten version of the update on the remote host. Unless you are sure you want to do this, you should try to avoid using --force options.

Finally, the git push tag is not pushed unless the option is used --tags .

--tags

Finish

Git remote operation detailed

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.