Git pull 和 Git fick 之间有什么区别?


当前回答

Git使用两个命令从远程到本地获取最新版本的分支 :

git 获取 : Git 会从远程获取最新版本到本地版本, 但不会自动合并 。 git 获取来源母版 master git log -p master. 来源/ master git 合并来源/ master 。 上面的命令意味着从远程下载主分支的最新版本, 从原始到来源母分支。 然后比较本地主分支和源母母分支。 最后, 合并 。 git pull : Git 会从远程获取最新版本并合并到本地 。 git pull 源母版 。 上面的命令相当于 git 获取和 git 合并 。 在实践中, git 获取可能更安全一些, 因为合并前我们可以看到这些修改并决定是否合并 。

其他回答

git pull = = (获取 Git + git 合并)

git refick 不改变本地分支 。

如果您已经拥有一个本地仓库, 并且为所要的工程设置了远程设置, 您可以使用 git 抓取 。 ... Fetch 不改变本地分支 。 因此您需要将远程分支与本地分支合并, 以便从 Github 中引入新获取的更改 。

更简短

git 获取获取更新, 但不会合并 。

git pull 会在引擎盖下抓一个小东西 然后合并

简简

git 抓取类似拉动, 但不合并 。 也就是说, 它会获取远程更新( 参考和对象) , 但您所在的本地保持相同( 即源/ 主机得到更新, 但主机保持相同 ) 。

Git拉拉从一个遥控器拉下来, 并立即合并。

更多

git 克隆克隆克隆 复制 。

git rebase 将不属于上游分支的当前分支保存为临时区域。 您的分支现在和您开始修改之前一样。 因此, git pull - rebase 将拉下远程修改, 倒带您的本地分支, 将您的变化一一重放到您当前分支的顶部, 直到您更新 。

并且,Git 分支 -a 将展示你所有分支的准确情况, 本地和远程。

这个博客文章很有用:

Git 拉拉、 Git 抓取和 Git 克隆( 和 Git 重新基底) - Mike Pearce 的区别

并覆盖 Git 拉, git 抓取, git 克隆和 Git 重新基底。

最新更新

我想我应该更新这个 来显示你是如何实际使用这个的。

从远程更新您的本地副本( 但不要合并 ) : git flick 在下载更新后, 让我们来看看差异: git diff 主源/ master 如果您对这些更新满意, 那么合并: git pull

注:

第2步:更多关于本地和远程之间的 diffs , 见: 如何比较本地 Git 分支与远程分支 。

第3步:也许更准确(例如快速变化的回邮)是在这里进行基底重置。见 @Justin Ohms在另一个答案中的评论。

另见:http://logair.net/blog/2009/04/16/git-fetch-and-merge/

注意: 我在拉动时提到过合并, 但是您可以配置拉动来使用重设 。

人们必须牢记 git 的性质。 您有远程和本地分支( 不一定相同 ) 。 与其他源控制系统相比, 这可能会有点令人困惑 。

通常当您检出远程时,会创建本地副本,跟踪远程。

gitreach 将会与远程分支合作并更新您的信息 。

实际上,如果其他SWES同一个部门工作,就属于这种情况,而小型项目----一个部门----一个项目设想方案的情况很少。

您对本地分支的工作仍然完好无损 。 为了将更改带回您的本地分支, 您必须合并/ 重订远程分支的更改 。

git拉动正好就是这两个步骤(即 -- -- rebase to rebase rebase 而不是合并)

如果您的本地历史和远程历史有冲突, 您将被迫在一小块按键发布您的更改时进行合并 。

因此,这真正取决于你的工作环境的性质和使用经验。

我花了一点点时间才明白有什么区别,但这只是一个简单的解释。你的当地主人是个分支。

当您克隆一个仓库时, 您会把整个仓库带回本地主机 。 这意味着在那个时候您有一个源代码/ 源代码/ 源代码指针到 HEAD , 主人指向同一个主目录 。

当您开始工作并承诺将主指针推进到 HEAD + 您的承诺。 但是源指针/主指针仍然指向您克隆时是什么。

因此,区别在于:

如果您做一个 Git 抓取它, 它只会获取远程仓库( GitHub) 的所有更改, 并将来源/ 指针移到 HEAD 。 与此同时, 您的本地分支管理员会一直指向它的位置 。 如果您做一个 Git 拉动, 它基本上会( 如前文所解释的) 抓取并合并您主分支的任何新更改, 并将指针移到 HEAD 。

这种交互式图形表达方式非常有助于低估数据:http://ndpsoftware.com/git-cheatesheet.html。

git 获取从远程到本地仓库的更改时只“ 下載 ” 。 git 下载这些更改并将其合并到当前的分支中。 “ 在默认模式中, git 拖动是 Git 获取的简称, 然后是 Git 合并 FETCH_HEAD 。 ”