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


当前回答

git pull 尝试在获取承诺后自动合并 。 这是上下文敏感, 所以所有被拉过的承诺都将合并到您当前活动的分支中 。 git pull 自动合并承诺而不让您首先审查它们。 如果您不小心管理您的分支, 您可能会遇到经常的冲突 。 git 获取从目标分支中收集当前分支中不存在的任何承诺, 并将其存储在您的本地仓库中 。 但是, 它不会与当前分支合并 。 如果您需要更新您的仓库, 这特别有用 。 如果您需要更新文件, 但它正在处理一些可能中断的任务 。 要将承诺整合到当前的分支中, 您以后必须使用 Git 合并 。

其他回答

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

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

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

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

初学者的简单图形化代表,

在这里,

git pull  

将会从仓库获取代码 并重新基础与您的本地... 在git拉动中,有 可能性创造新的承诺。

但是在,

git 获取 git 获取

将会从存储库获取代码, 我们需要使用 Git 重新基准来手动重标

eg: 我要从服务器主机取回它, 并在本地主机重标 。

1) git pull( 重基将自动完成) :

git pull origin master

这里的起源是您的远程回购主人 您的分支是您的远程回购主人

2) git 获取( 需要手动重标) :

git fetch origin master

它会从源代码中获取服务器更改。 它会位于本地, 直到您自己重新定位它。 我们需要通过检查代码手动来修正冲突 。

git rebase origin/master

这将会将代码重设为本地代码。 在确保您在正确的分支之前。

简单简便的答案是,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) , 否则不要使用此选项 。

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

以下是Oliver Steele的画面,