画星星高手

It nerver rains but it pours.

git fetch 的简单用法:更新远程代码到本地仓库

前言

Git中从远程的分支获取最新的版本到本地方式如下。

查看远程仓库

$ git remote -v
eoecn   https://github.com/eoecn/android-app.git (fetch)
eoecn   https://github.com/eoecn/android-app.git (push)
origin  https://github.com/com360/android-app.git (fetch)
origin  https://github.com/com360/android-app.git (push)
su@SUCHANGLI /e/eoe_client/android-app (master)

从上面的结果可以看出,远程仓库有两个,一个是eoecn,一个是origin

从远程获取最新版本到本地

方法一

$ git fetch origin master
From https://github.com/com360/android-app
 * branch            master     -> FETCH_HEAD
su@SUCHANGLI /e/eoe_client/android-app (master)

$ git fetch origin master 从远程的origin仓库的master分支下载代码到本地的origin master

方法二

$ git fetch origin master:temp
From https://github.com/com360/android-app
 * [new branch]      master     -> temp
su@SUCHANGLI /e/eoe_client/android-app (master)

git fetch origin master:temp 从远程的origin仓库的master分支下载到本地并新建一个分支temp

比较本地的仓库和远程

第一种

$ git diff temp
su@SUCHANGLI /e/eoe_client/android-app (master)

第二种

$ git log -p master.. origin/master
su@SUCHANGLI /e/eoe_client/android-app (master)

本地仓库和远程仓库代码相同所以没有其他任何信息

把远程下载下来的代码合并到本地仓库,远程的和本地的合并

$ git merge origin/master
Already up-to-date.
su@SUCHANGLI /e/eoe_client/android-app (master)

本地代码和远程代码相同,所以是Already up-to-date

合并temp分支到master分支

$ git merge temp
Already up-to-date.
su@SUCHANGLI /e/eoe_client/android-app (master)

如果不想要temp分支了,可以删除此分支

$ git branch -d temp
Deleted branch temp (was d6d48cc).
su@SUCHANGLI /e/eoe_client/android-app (master)

如果该分支没有合并到主分支会报错,可以用以下命令强制删除:git branch -D <分支名>

使用temp分支的方法更安全,对于pull也可以更新代码到本地,相当于fetch+merge,多人写作的话不够安全。

点赞

发表评论