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


当前回答

简单简便的答案是,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/refs中。

所有地方分支机构都储存在.git/refs/heads中。

所有远程分支都储存在.git/refs/remotes中。

git 获取命令下载承诺、 文件、 从远程仓库获取 refs 到您的本地 repo 。 获取是您想要看到其他人的工作内容时要做的事情 。

所以当您在 Git 获取所有文件、 承诺和 ref 时, 在

此目录. git/ refs/ remotes

您可以切换到这些分支以查看变化 。

另外,如果你愿意,你可以把它们合并起来。

git pull 只是下载这些修改, 并合并到当前分支 。

示例示例示例示例

如果您想要看到远程分支 Dev/jd/feature/auth 的工作, 您只需要做

git 获取源于 dev/jd/ feature/auth

看到变化或工作进展做,

git 检出 dev/jd/feature/auth

但如果您也想要获取它们并将其合并到当前分支,

git 拉力源dev/jd/feature/auth

如果您选择了 Git 获取源代码分支_ name, 它将会获取分支, 现在您可以切换到您想要的分支, 并查看这些变化。 您的本地主子或其他本地分支不会受到影响 。 但 Git pull 源代码分支_ name 将会获取分支, 并同时合并到当前分支 。

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

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

要理解这一点,你首先需要明白,你所在的本地数据库不仅维护着您的本地存储库,而且还维护着远程存储库的本地副本。

git 抓取时将您本地的远程仓库副本带来最新 。 例如, 如果您的远程仓库是 GitHub - 您可能想要将远程仓库中所做的任何更改 转到您的本地副本 远程仓库 。 这将允许您执行比较或合并等操作 。

Git pull 另一方面会将远程存储库的更改降低到您保存自己的代码的位置。 通常, git pull 将首先进行 Git pull 获取, 以更新远程存储库的本地副本, 然后将修改合并到您自己的代码存储库中, 并可能合并到您的工作副本中 。

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


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

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

Git Pull 的 Git 文档 :

git pull 运行 git 获取带有给定参数的 Git 抓取, 然后根据配置选项或命令行旗帜, 将调用 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" ,因为有人一直在标记 一些文章在这里。