【给初学者的指南】关于git fetch、git merge、git pull的区别【初学者的指南】解释git fetch、git merge、git pull的不同之处【面向初学者】解说git fetch、git merge、git pull的区别【初学者专用】简要介绍git fetch、git merge、git pull之间的区别
当你在使用Git遇到困难时,经常会在网上搜索各种东西,然后”git fetch”和”git pull”会变得混乱不清,所以我会总结一下。
总结来说,”fetch”和”pull”都是将远程存储库的最新信息获取到本地存储库的操作,但是它们之前的步骤有所不同,接下来将进行解释。
拉取git获取
从远程获取最新信息,但是它会被合并到 “origin/master” 分支而不是 “master” 分支上。
起初会说”这是什么东西,我不知道”,具体来说就是
「master」ブランチ…ローカルの中心となる統合ブランチで、他のローカルの作業ブランチと繋がったもの。
「origin/master」ブランチ…ローカルにある、リモートのmasterブランチを追跡するリモート追跡ブランチ。
这是什么。
在两个本地分支中都很难理解,但通过图示来想象的话就是这个样子。
在本地的“master”分支之前(靠近远程)有一个“origin/master”分支,通过git fetch可以获取这个“origin/master”分支的最新信息。
执行git fetch → git merge,可以获取本地的“master”分支,将最新信息从“origin/master”合并到“master”分支。通过执行这些操作,本地文件将被更新为最新状态。
总结一下,
git fetch…リモートの「master」ブランチ → ローカルの「origin/master」ブランチ
git merge…ローカルの「origin/master」ブランチ → ローカルの「master」ブランチ
以下是中文的同义句:「就是这样。」
从远程仓库拉取最新代码。
git pull命令是同时执行git fetch和git merge的命令。因此,它会通过本地的”origin/master”分支从远程的”master”分支将最新信息一次性更新到本地的”master”分支上。
由于一口气合并到了主分支,所以容易出现本地分支和冲突,这就是原因。
总结起来,
git pull…リモートの「master」ブランチ →(ローカルの「origin/master」ブランチ→)
ローカルの「master」ブランチ
這將是如下。
指令示例
$ git fetch origin master
$ git merge origin/master
$ git pull origin master
返还的方式 de
我认为有很多种方法,但在陷入恐慌之前,暂时解决的命令是一个选项。
首先,
$ git fetch
当出现错误需要恢复到原始状态时,
因为还没有更新到本地的”master”分支(还没有合并),所以
$ git reset --hard HEAD
回到之前的commit状态,把它归于不存在。
这很容易。
并且,
$ git pull
当遇到错误需要恢复到原始状态,想要解决冲突时,
首先,由于”pull”等同于”fetch + merge”,所以选择进行合并操作。
$ git merge --abort
取消这一操作。随后按照相同的方式进行。
$ git reset --hard HEAD
所以,我們回到最近的commit,就當作沒發生過。
了解冲突原因,并成功解决并合并是最好的选择,不过这将在以后的文章中另行说明。
请看这篇文章
Git fetch的理解以及git merge和pull的作用
origin master和origin/master的区别