Git pull 和 Git fick 之间有什么区别?
当前回答
简单简便的答案是,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) , 否则不要使用此选项 。
其他回答
初学者的简单图形化代表,
调
在这里,
git pull
将会从仓库获取代码 并重新基础与您的本地... 在git拉动中,有 可能性创造新的承诺。
但是在,
git 获取 git 获取
将会从存储库获取代码, 我们需要使用 Git 重新基准来手动重标
eg: 我要从服务器主机取回它, 并在本地主机重标 。
1) git pull( 重基将自动完成) :
git pull origin master
这里的起源是您的远程回购主人 您的分支是您的远程回购主人
2) git 获取( 需要手动重标) :
git fetch origin master
它会从源代码中获取服务器更改。 它会位于本地, 直到您自己重新定位它。 我们需要通过检查代码手动来修正冲突 。
git rebase origin/master
这将会将代码重设为本地代码。 在确保您在正确的分支之前。
我花了一点点时间才明白有什么区别,但这只是一个简单的解释。你的当地主人是个分支。
当您克隆一个仓库时, 您会把整个仓库带回本地主机 。 这意味着在那个时候您有一个源代码/ 源代码/ 源代码指针到 HEAD , 主人指向同一个主目录 。
当您开始工作并承诺将主指针推进到 HEAD + 您的承诺。 但是源指针/主指针仍然指向您克隆时是什么。
因此,区别在于:
如果您做一个 Git 抓取它, 它只会获取远程仓库( GitHub) 的所有更改, 并将来源/ 指针移到 HEAD 。 与此同时, 您的本地分支管理员会一直指向它的位置 。 如果您做一个 Git 拉动, 它基本上会( 如前文所解释的) 抓取并合并您主分支的任何新更改, 并将指针移到 HEAD 。
此图形可能有用 。 git pull 基本上等于 Git 获取然后 git 合并
调
git 将代码从远程服务器拖动到您本地仓库的跟踪分支。 如果您的远程代码被命名为源代码( 默认) , 这些分支将位于源代码/ 内, 例如源代码/ 源代码/ 主管、 源代码/ mybranch-123 等 。 这些不是您当前的分支, 它们是服务器上这些分支的本地副本 。
git pull 进行 git 抓取, 但也同时将代码从跟踪分支合并到您当前本地版本的分支中。 如果您还没有准备好修改, 请先拨入 。
git pull 命令其实是 Git 抓取的快捷键, 后面是 git 合并或 git 重设命令, 取决于您的配置 。 您可以配置您的 Git 仓库, 这样 git pull 是一个抓取, 后面是重置 。
推荐文章
- Windows git“警告:LF将被CRLF取代”,这是警告尾巴向后吗?
- git中的哈希冲突
- git可以自动在空格和制表符之间切换吗?
- Git暂存文件列表
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时
- git reflog和log有什么区别?
- git推挂在Total line之后