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


当前回答

初学者的简单图形化代表,

在这里,

git pull  

将会从仓库获取代码 并重新基础与您的本地... 在git拉动中,有 可能性创造新的承诺。

但是在,

git 获取 git 获取

将会从存储库获取代码, 我们需要使用 Git 重新基准来手动重标

eg: 我要从服务器主机取回它, 并在本地主机重标 。

1) git pull( 重基将自动完成) :

git pull origin master

这里的起源是您的远程回购主人 您的分支是您的远程回购主人

2) git 获取( 需要手动重标) :

git fetch origin master

它会从源代码中获取服务器更改。 它会位于本地, 直到您自己重新定位它。 我们需要通过检查代码手动来修正冲突 。

git rebase origin/master

这将会将代码重设为本地代码。 在确保您在正确的分支之前。

其他回答

实际上 Git 保有一份您自己的代码副本和远程仓库 。

命令 git 抓取时通过从远程仓库获取数据更新本地副本。 我们需要这个数据的原因是, 其他人可能对代码做了一些修改, 您想要不断更新自己 。

命令 Git 拖动将远程仓库的更改带到您保存您自己的代码的位置。 通常, git 拖动这样做的方式是先做一个“ git 抓取” , 将远程仓库的本地副本更新为最新版本, 然后将修改合并到您自己的代码仓库, 并有可能将您的工作副本合并到您自己的代码仓库中 。

Git允许在较新的承诺之后适用按时间顺序排列的旧承诺。 因此,存放库之间转移承诺的行为分为两步:

从远程分机复制新承诺副本到本地分机内的远程分机 。 (repo to repo operation) 主机@ remote {% text/ text/ text/ text/ progin/ master@ local 集成新承诺给本地分机( 内部分机操作) 远程/ text/ master@ local

第二步有两种方法,你可以:

在上一个共同祖先之后, 将本地分支方叉, 并添加与本地仓库独特的承诺平行的新承诺, 最终通过合并承诺完成, 关闭叉子 。 在上次共同祖先后插入新承诺, 并重新应用本地仓库独有的承诺 。

在 Git 术语中, 第1 步是 Git 抓取, 第 2 步是 Git 合并或 Git 重新基准

git pull 是 Git 抓取和 Git 合并

git-pull - Fetch from and merge with another repository or a local branch
SYNOPSIS

git pull   …
DESCRIPTION

Runs git-fetch with the given parameters, and calls git-merge to merge the 
retrieved head(s) into the current branch. With --rebase, calls git-rebase 
instead of git-merge.

Note that you can use . (current directory) as the <repository> to pull 
from the local repository — this is useful when merging local branches 
into the current branch.

Also note that options meant for git-pull itself and underlying git-merge 
must be given before the options meant for git-fetch.

如果你想要合并历史,你会拉拉, 你会拉拉,你会拉拉拉,如果你只是"想要的cotz" ,因为有人一直在标记 一些文章在这里。

用最简单的术语来说, git pull 是一个 Git 抓取, 然后是 git 合并 。


git 在 refs/ remotes/ <remote> / 下获取远程跟踪分支的更新。 此操作随时可以安全运行, 因为它不会在 refs/ head 下更改您的本地分支 。

git 拉动使当地的一个分支能够更新其远程版本,同时更新其他远程跟踪分支。

Git Pull 的 Git 文档 :

git pull 运行 git 获取带有给定参数的 Git 抓取, 然后根据配置选项或命令行旗帜, 将调用 git 重新基准或 Git 合并以调和不同的分支 。

Git 获取

帮助您从 Git 仓库获取最新更新信息 。 假设您在一个使用 GitFlow 的团队中工作, 该团队在多个分支( 功能) 上工作 。 有了 Git 抓取 -- 所有的指令, 您都可以了解仓库中所有新的分支 。

多数情况下, git 抓取程序都与 git 重置一起使用。 例如, 您想要将全部本地更改恢复到当前仓库状态 。

git fetch --all // get known about latest updates
git reset --hard origin/[branch] // revert to current branch state

Git 拉着

此命令以当前仓库分支状态更新您的分支处 。 让我们继续使用 GitFlow 。 多个特性分支已被合并来开发分支, 当您想要为项目开发新特性时, 您必须前往开发分支处, 并做一个 Git pull 以获取当前开发分支的状态

GitFlow 的文件 https://gist.github.com/peterdeweese/4251497