当我们把代码托管到git远程服务器上的时候,如果有人对代码进行了更新并提交到了远程服务器,这时如果我们需要拉取最新的更新到我们本地的工作区就需要使用 git pull 命令
git pull
的作用拉取远程最新更新并与本地代码合并
现在我将以为在阿里云上搭建的git服务器为例,为大家讲解一下如何使用git pull
命令
首先登录 git 服务器 并查看 git log
如下图
在本地 使用 git clone
命令拉取 test
项目到本地 如下
$ git clone git@<服务器ip或者域名>:/home/git/test.git
Cloning into 'test'...
git@<服务器ip或者域名>'s password:
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 24 (delta 5), reused 0 (delta 0)
Receiving objects: 100% (24/24), done.
Resolving deltas: 100% (5/5), done.
然后我们发现我们现在在 version3.0
我们使用命令 git reset --hard
使版本回退到 version 1.0
$ git reset --hard f692db1b009c5
HEAD is now at f692db1 version 1.0
现在 git 服务器的版本就比我们本地的版本新了 这时我们就可以使用 git pull
来拉取远程服务器的最新更新并合并了 具体操作如下
$ git pull git@<服务器ip或者域名>:/home/git/test.git
git@<服务器ip或者域名>'s password:
From 101.132.96.183:/home/git/test
* branch HEAD -> FETCH_HEAD
Updating f692db1..1ff8b2c
Fast-forward
index.html | 4 ++--
index.php | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
再使用 git log
我们就发现我们已经拉取并合并成功
$ git log
commit 1ff8b2ce4400e9fd8fb566f9a4400e1cf896e138 (HEAD -> master)
Author: lychee <1150400220@qq.com>
Date: Fri Dec 22 14:03:51 2017 +0800
version 3.0
其实 git pull
相当于两个命令的合并 分别是 git fetch
和 git merge
就相当于下面
$ git fetch git@<服务器ip或者域名>:/home/git/test.git
git@<服务器ip或者域名>'s password:
From <服务器ip或者域名>:/home/git/test
* branch HEAD -> FETCH_HEAD
$ git merge FETCH_HEAD
Updating f692db1..1ff8b2c
Fast-forward
index.html | 4 ++--
index.php | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)