Git 远程操作

http://www.ruanyifeng.com/blog/2014/06/git_remote.html

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

git clone

从远程主机克隆一个版本库,使用git clone 命令

1
$ git clone http://github.com/jquery/jquery.git

若想改变本地库的名字,加第二个参数为名字

git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等.

git remote

为了便于管理,每个远程主机都必须指定一个主机名,git remote用于管理主机名

1
2
3
4
5
6
# 列出所有远程主机
$ git remote
origin # 表示当前只有一台远程主机
# 加 -v 选项,查看远程主机网址
origin git@github.com:brett427/LeetCode-Solution.git (fetch)
origin git@github.com:brett427/LeetCode-Solution.git (push)
1
$ git remote add <主机名> <网址> # 添加远程主机

git fetch

一旦远程主机的版本库有了更新,需要将这些更新取回本地,使用git fetch 命令

1
$ git fetch <远程主机名>

git fetch命令通常用来查看其他人的进程

git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支。

1
2
3
4
5
6
$ git branch -r
origin/master

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

上面命令表示,本地主机的当前分支是master,远程分支是origin/master

取回远程主机的更新以后,可以在它的基础上,使用git checkout命令创建一个新的分支。

1
$ git checkout -b newBrach origin/master

上面命令表示,在origin/master的基础上,创建一个新分支。

此外,也可以使用git merge命令或者git rebase命令,在本地分支上合并远程分支。

1
2
3
$ git merge origin/master
# 或者
$ git rebase origin/master

上面命令表示在当前分支上,合并origin/master

git pull

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。

1
$ git pull <远程主机名> <远程分支名>:<本地分支名>

如果合并需要采用rebase模式,可以使用--rebase选项。

1
$ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>

git push

git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相仿。

1
$ git push <远程主机名> <本地分支名>:<远程分支名>