git pull覆盖文件问题 2020-03-04

git pull覆盖文件问题

git pull究竟干了什么

git pull 是将【远程仓库版本库中某个分支的更新】拉取到本地,并【与本地版本库对应分支的更新进行merge合并】
git fetch + git merge == git pull

如果当前本地的版本库对应分支的更新 >= 远程仓库版本库中该分支的更新,那么执行git pull会提示Already up to date.

明白了git pull的工作原理,现在看看下面几种情况会发生什么

  • 本地仓库和远程仓库保持同步,处于一致的状态。然后在本地的working tree中修改/删除文件A,后执行git pull,执行完毕后文件A的修改/删除仍然存在,也就是说此时git pull未对文件A进行覆盖
    因为在本地的working tree中修改文件A,文件状态是modified but not staged and not commited,本地仓库的版本库没有产生任何更新,本地仓库的版本库 = 远程仓库版本库,git pull会显示Already up to date.

  • 本地仓库和远程仓库保持同步,处于一致的状态。通过git add and git commit将文件A状态改为commited,执行git pull,本地仓库的版本库同样没有产生任何更新。因为Your branch is ahead of 'origin/master' by 1 commit.,本地分支比远程分支超前1个提交,本地仓库的版本库 > 远程仓库版本库

  • 本地working tree有untracked的远程仓库对应分支的同名文件,git pull会提示untracked working tree files would be overwritten by merge.Please move or remove them before you merge.,git pull会被中止

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 5,286评论 0 7
  • 1. GIT命令 git init在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个re...
    江边一蓑烟阅读 4,253评论 0 0
  • 查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git sho...
    Swiftor阅读 6,387评论 0 2
  • 这篇博文是自己在学习git过程中的思考总结。本文仅仅代表个人的看法,如有不妥地方还请本文文末留言。 😊 原文链接g...
    Ming_Hu阅读 4,932评论 4 18
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 7,055评论 0 1

友情链接更多精彩内容