Git pull 和 Git fick 之间有什么区别?
当前回答
我们简单地说:
git pull == git fetch + git merge
如果您运行 Git 调用, 您不需要将数据合并到本地 。 如果您运行 Git 抓取, 这意味着您必须运行 Git 合并才能将最新代码获取到本地机器 。 否则, 本地的机器代码不会在不合并的情况下被更改 。
所以在 Git Gui 中, 当您获取时, 您必须合并数据 。 获取本身不会在本地修改代码 。 您可以检查当您通过一次获取并查看来更新代码时, 是否更新了代码; 代码不会改变 。 然后您将合并... 您将会看到修改后的代码 。
其他回答
更简短
git 获取获取更新, 但不会合并 。
git pull 会在引擎盖下抓一个小东西 然后合并
简简
git 抓取类似拉动, 但不合并 。 也就是说, 它会获取远程更新( 参考和对象) , 但您所在的本地保持相同( 即源/ 主机得到更新, 但主机保持相同 ) 。
Git拉拉从一个遥控器拉下来, 并立即合并。
更多
git 克隆克隆克隆 复制 。
git rebase 将不属于上游分支的当前分支保存为临时区域。 您的分支现在和您开始修改之前一样。 因此, git pull - rebase 将拉下远程修改, 倒带您的本地分支, 将您的变化一一重放到您当前分支的顶部, 直到您更新 。
并且,Git 分支 -a 将展示你所有分支的准确情况, 本地和远程。
这个博客文章很有用:
Git 拉拉、 Git 抓取和 Git 克隆( 和 Git 重新基底) - Mike Pearce 的区别
并覆盖 Git 拉, git 抓取, git 克隆和 Git 重新基底。
最新更新
我想我应该更新这个 来显示你是如何实际使用这个的。
从远程更新您的本地副本( 但不要合并 ) : git flick 在下载更新后, 让我们来看看差异: git diff 主源/ master 如果您对这些更新满意, 那么合并: git pull
注:
第2步:更多关于本地和远程之间的 diffs , 见: 如何比较本地 Git 分支与远程分支 。
第3步:也许更准确(例如快速变化的回邮)是在这里进行基底重置。见 @Justin Ohms在另一个答案中的评论。
另见:http://logair.net/blog/2009/04/16/git-fetch-and-merge/
注意: 我在拉动时提到过合并, 但是您可以配置拉动来使用重设 。
git pull 命令其实是 Git 抓取的快捷键, 后面是 git 合并或 git 重设命令, 取决于您的配置 。 您可以配置您的 Git 仓库, 这样 git pull 是一个抓取, 后面是重置 。
您可以从远程仓库获取, 查看差异, 然后拉动或合并 。
这是被称作起源的远程存储库和名为“跟踪远程分支来源/主管”的分支的分支的一个例子:
git checkout master
git fetch
git diff origin/master
git rebase origin master
此图形可能有用 。 git pull 基本上等于 Git 获取然后 git 合并
调
所有分支都储存在.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 将会获取分支, 并同时合并到当前分支 。