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


当前回答

所有分支都储存在.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 fetch + git merge 

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 checkout master                                                  
git fetch                                        
git diff origin/master
git rebase origin master

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

git refick 不改变本地分支 。

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