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 调用, 您不需要将数据合并到本地 。 如果您运行 Git 抓取, 这意味着您必须运行 Git 合并才能将最新代码获取到本地机器 。 否则, 本地的机器代码不会在不合并的情况下被更改 。
所以在 Git Gui 中, 当您获取时, 您必须合并数据 。 获取本身不会在本地修改代码 。 您可以检查当您通过一次获取并查看来更新代码时, 是否更新了代码; 代码不会改变 。 然后您将合并... 您将会看到修改后的代码 。
使用 git 抓取的一个实例是, 以下会告诉您自上次拉动以来远程分支的任何变化... 这样您就可以在实际拉动之前检查, 这样就可以改变您当前分支和工作副本中的文件 。
git fetch
git diff ...origin
见 git diff 关于双点... 和三点... 语法的文件。
我花了一点点时间才明白有什么区别,但这只是一个简单的解释。你的当地主人是个分支。
当您克隆一个仓库时, 您会把整个仓库带回本地主机 。 这意味着在那个时候您有一个源代码/ 源代码/ 源代码指针到 HEAD , 主人指向同一个主目录 。
当您开始工作并承诺将主指针推进到 HEAD + 您的承诺。 但是源指针/主指针仍然指向您克隆时是什么。
因此,区别在于:
如果您做一个 Git 抓取它, 它只会获取远程仓库( GitHub) 的所有更改, 并将来源/ 指针移到 HEAD 。 与此同时, 您的本地分支管理员会一直指向它的位置 。 如果您做一个 Git 拉动, 它基本上会( 如前文所解释的) 抓取并合并您主分支的任何新更改, 并将指针移到 HEAD 。
Git pull 和 Git fick 之间唯一的区别是:
git 拉从远程分支拉拉并合并。
git 只从远程分支获取从远程分支获取的抓取, 但不会合并
i. e. git pull = 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 合并
推荐文章
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 为什么要把Gradle Wrapper提交给VCS?
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- Git错误:遇到7个文件应该是指针,但不是
- GitHub克隆与OAuth访问令牌