git pull——git库版本与本地库版本冲突总结

git库版本与本地库版本冲突:个人定义为就是git库版本与本地库版本不匹配,详细地说就是我们从git库clone克隆下来的版本,经过修改后提交并合并成新版本,但是后来又将git库的该版本撤销了,而本地没有撤销该版本,此时就是本地库拥有此版本而git库中没有此版本。这样在使用git pull或git pull origin master可能会出现:“Your local changes to the following files would be overwritten by merge”或"PULL  不可用,因为您尚有未合并的文件“或"自动合并失败,修正冲突后提交修正后的结果"

“Your local changes to the following files would be overwritten by merge”这样的错误,意思就是你的本地修改以下文件将被覆盖合并。

情况一

如果只会提示:“Your local changes to the following files would be overwritten by merge”这样的错误,这样的错误是因为本地库中有修改,但是没有提交到git库中,而现在使用git pull或git pull origin master来更新代码就会提示本地修改的文件会被覆盖合并,虽说会覆盖合并,其实根本就没有合并。以前为了同步git库对应的版本,而使用git checkout -f来撤销自己的修改,这样实在是太愚蠢的做法。原来我们是可以使用git stash暂时搁置当前已做的修改,倒退到改动之前的状态来进行其他的必要操作(比如发布,或者解决一个bug,或者branch,等等)。此时就可以使用git pull或git pull origin master来更新代码,然后使用git stash pop撤销最后的一个搁置(可能有多次搁置,查看搁置使用git stash list)。

情况二

如果通过情况一的解决办法还是不行,如果遇到"PULL  不可用,因为您尚有未合并的文件“或"自动合并失败,修正冲突后提交修正后的结果"。如:

此时就有可能是本地库中拥有git库中没有的版本,到查看git库的版本状态以及本地使用git log查看本地的版本状态,本地查看结果如下:

解决办法就是我们本地也要将"触摸屏跳点问题"这个版本撤销,当然也可以撤销到比它更前的版本。如:

使用git reset --hard 03a280c275bbd48c61417948173cbabf5bc71a69回退到"LCD  PWM背光调节"这个版本。其中03a280c275bbd48c61417948173cbabf5bc71a69为对应版本commit后面的字符串

最后使用git pull origin master成功更新了代码。

git branch:查看分支

git checkout master 切换到分支‘master’

时间: 2024-09-10 09:42:27

git pull——git库版本与本地库版本冲突总结的相关文章

Git强制更新本地库和冲突解决

1.You have not concluded your merge. (MERGE_HEAD exists) 本地有修改和提交,如何强制用远程的库更新.出现这种情况一般是git本地有commit,但是不能更新,也不能cleanup,导致无法push到服务器. 使用git pull -f 强制更新,仍然提示 You have not concluded your merge. (MERGE_HEAD exists). 这种情况,可以做好备份,放弃本地修改,用远程内容reset本地目录,当然新建

解决git pull时冲突办法

多人共同开发项目,可能会遇到git pull时有冲突,此时可以通过以下办法来解决: git stash git pull git stash pop git stash 暂存本地修改 git pull 从远程版本库拉取新的修改 git stash pop 将暂存起来的修改合并到本地工作库,如果有冲突会有相应的提示,解决冲突并提交即可

git使用(公钥私钥产生--远程库添加公钥--本地库关联远程库-使用)

原文1:http://www.cnblogs.com/wangmingshun/p/5424767.html 原文2(指令):http://blog.csdn.net/xiaohanluo/article/details/53214933 到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方. 没错,如果只是在一个仓库里管理文件历史

02_创建Git仓库,克隆仓库,git add,git commit,git push,git pull,同行冲突,不同行冲突的结局方案,git mergetool的使用

1 创建Git资源库,残酷目录信息 创建git资源库的命令: git init –bare 仓库名称 (其中-bare表示的意思是空的库的意思) 进入E:\software\repository\git\itheima28,截图如下: hooks:提交一些脚本文件 info:存放一些个人信息,配置信息 objects:所有数据存放位置 refs:git指针信息,记录了修改了什么等的信息 config:核心的配置信息 description:描述信息 HEAD:存放的分支信息. 2 使用上面创建的

如何团队使用git共用bare库进行版本控制?

问题描述 如何团队使用git共用bare库进行版本控制? 如果两个人以上,使用一个共用的远程bare库提交改动,每次push前,解决好冲突(做pull),编译代码,测试通过后,再push到远程的bare库.这样协作合理吗?需要注意的是什么? 这所以问这个问题,是因为我遇到过这种情况,一个程序员,他进行了本地的merge,但他merge的有问题,一些代码不该被删的删掉了,一些if语句莫名其妙 地嵌套了起来.他进行了编译,测试,就他看来没有问题,他短时间的测试和编译看不出问题,比如有个功能根本就因为

git pull VS git fetch&merge(good)

从图中可以看到,git fetch和git pull的区别, git fetch 不会自动的将结果merge到本地,只是将远程版本同步到本地版本库,而不会merge到本地副本. git pull  将会直接把working directory中的内容覆盖掉. 使用git fetch和git pull都可以更新远程仓库的代码到本地,但是它们之间还是有区别. git fetch  1 git fetch origin master 2 git log -p master..origin/master

idea下git pull的生活 因为一个iml文件,导致pull失败,怎么解决

问题描述 idea下git pull的生活 因为一个iml文件,导致pull失败,怎么解决 解决方案 因为这个文件没有track 你如果不需要合入代码库 那你就删除

真正理解 git fetch, git pull 以及 FETCH_HEAD【转】

转自:http://www.cnblogs.com/ToDoToTry/p/4095626.html 真正理解 git fetch, git pull  要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge .远程repo, branch . commit-id 以及 FETCH_HEAD. 1. [git remote]首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称. 本地的repo仓库要与远程的repo配合完成版本对应必

Git远程04:git fetch & git push & git pull

这三条语句的,完整的命令为: 1 git fetch [远程仓库名] [分支01]:[分支02] 实际使用时,远程仓库名和分支名,在特定的情况下可以省略.一两句话说不清楚,采用脑图的方式展示.请一定要注意当前所在的分支是什么. 如果图片显示太小,请到汪汪的网盘下载(文件夹为/Git),如果有XMind,请直接查看脑图源文件. 2015.08.19更新:git fetch & git push & git pull.png:git fetch & git push & git