Git pull 和 Git fick 之间有什么区别?
当前回答
Git使用两个命令从远程到本地获取最新版本的分支 :
git 获取 : Git 会从远程获取最新版本到本地版本, 但不会自动合并 。 git 获取来源母版 master git log -p master. 来源/ master git 合并来源/ master 。 上面的命令意味着从远程下载主分支的最新版本, 从原始到来源母分支。 然后比较本地主分支和源母母分支。 最后, 合并 。 git pull : Git 会从远程获取最新版本并合并到本地 。 git pull 源母版 。 上面的命令相当于 git 获取和 git 合并 。 在实践中, git 获取可能更安全一些, 因为合并前我们可以看到这些修改并决定是否合并 。
其他回答
用最简单的术语来说, 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" ,因为有人一直在标记 一些文章在这里。
我们简单地说:
git pull == git fetch + git merge
如果您运行 Git 调用, 您不需要将数据合并到本地 。 如果您运行 Git 抓取, 这意味着您必须运行 Git 合并才能将最新代码获取到本地机器 。 否则, 本地的机器代码不会在不合并的情况下被更改 。
所以在 Git Gui 中, 当您获取时, 您必须合并数据 。 获取本身不会在本地修改代码 。 您可以检查当您通过一次获取并查看来更新代码时, 是否更新了代码; 代码不会改变 。 然后您将合并... 您将会看到修改后的代码 。
git pull 命令其实是 Git 抓取的快捷键, 后面是 git 合并或 git 重设命令, 取决于您的配置 。 您可以配置您的 Git 仓库, 这样 git pull 是一个抓取, 后面是重置 。
OK,这里有一些关于 Git pull 和 Git fick 的信息, 以便您能够理解实际差异... 几个简单的字, 获取最新数据, 但代码不会修改, 并且不会与您当前的本地分支代码发生混乱, 但是拉动代码修改, 并合并您的本地分支, 阅读以获得更多关于每个代码的细节 :
git 获取 git 获取
它会下载所有参考文献和对象 以及任何新的分支 到您的本地仓库...
从一个或多个其他仓库获取分支和(或)标记( 统称“ refs” ) , 以及完成历史所需的对象 。 远程跟踪分支会更新( 见下文关于控制此行为的方法的描述 ) 。 默认情况下, 任何指向所获取历史的标记也会被获取; 效果是从您感兴趣的分支获取标记。 这种默认行为可以通过使用 -- tags 或 -- no- tags 选项或配置远程来改变 。 tagOpt 。 通过使用直截取标记的重新检查, 您可以获取不指向您感兴趣的分支的标记 。 git 抓取标记可以一次从一个命名的仓库或 URL 中获取, 或从多个仓库中获取标记, 如果给定了, 并且有远程 。 配置文件中的条目。 (见 git- configg ) 。 当没有指定远程的遥控时, 除非为当前分支配置了上游分支。 正在获取的 ref 名称, 连同对象名称一起被您感兴趣的分支, 或脚本指令 可能被写入。
git 拉
它将应用本地从远程到当前分支的更改...
包含从远程仓库到当前分支的更改。 在默认模式下, git pull 是 Git 抓取的短手, 之后是 git 合并 FETCH_HEAD 。 更准确地说, git pull 以给定参数抓取 git 和调用 git 合并将回收的分支头合并到当前分支。 有了 -- rebase, 它会运行 git 重新基准而不是 git 合并 。 应该是被传送到 git- fetch1 的远程仓库的名称 。 它可以指定任意的远程 ref( 例如标签名称) , 或甚至收藏含有相应远程跟踪分支的refs/: heads/: refs/ remotes/genter/) , 但它通常是远程仓库中分支的名称 。 默认值, 由 git- branch 设定的当前分支的“ remote” 和“ merge” 配置, 从中读取 。
我还创建了下面的视觉图 来展示你们如何拼凑和拼凑在一起...
调
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别