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


当前回答

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 pull 自动合并承诺而不让您首先审查它们。 如果您不小心管理您的分支, 您可能会遇到经常的冲突 。 git 获取从目标分支中收集当前分支中不存在的任何承诺, 并将其存储在您的本地仓库中 。 但是, 它不会与当前分支合并 。 如果您需要更新您的仓库, 这特别有用 。 如果您需要更新文件, 但它正在处理一些可能中断的任务 。 要将承诺整合到当前的分支中, 您以后必须使用 Git 合并 。

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


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

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

Git Pull 的 Git 文档 :

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

有时视觉表现会有所帮助。

简单简便的答案是,Git拉动只是git抓取,然后是git合并。

必须指出, git pull 将自动合并, 不管你喜不喜欢。 当然, 这可能导致合并冲突 。 假设您的远程是源头, 您的分支是主人 。 如果您在拉动前跳过 diff 源/ master , 您应该知道潜在的合并冲突, 并据此为您所在的分支做好准备 。

除了拉拉之外,一些工作流程还涉及重设基准,例如这一项,我从相关条款中转述如下:

git pull origin master
git checkout foo-branch
git rebase master
git push origin foo-branch

如果你发现自己处于这种情况,你可能会被诱惑去拉拉 - rebase。除非你真的知道自己在做什么,否则我建议你不要这样做。这个警告是从git-pull的网页上发出的,版本2.3.5:

这是一个潜在危险的操作模式。 它重写历史, 当您已经发布历史时, 历史并不是好兆头。 除非您仔细阅读了 git- rebase(1) , 否则不要使用此选项 。

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

git refick 不改变本地分支 。

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