git checkout master问题

如下图所示,当我从dev分支切换到master分支时,报如图错误

图片描述

补充信息:dev分支中原来有一个Header.php文件,我把它改名为header.php了,但是master分支还是叫Header.php。

详细补充,如下图

图片描述

对 snovey 朋友回答的补充(其他朋友的回答我已试验过,故略过,见谅)

图片描述

阅读 4.8k
5 个回答

你截一下git status的图吗

你dev分支下面有修改的东西没提交吧

请看仔细后再进行提问吧

你是想移除 master 分支的 Header.php 文件,但是现在切不过去么?
如果你没有提交的话,先提交一下再试试:

git add header.php
git commit -m 'commit message'
git checkout master

跟大小写识别有关系,工作区和暂存区都干净的话这样试试:

git mv header.php foo.php
git add foo.php
#git status //如果失败在这里 log 一下贴出来
git stash
git checkout master
git rm Header.php
git checkout dev
git stash pop
git mv foo.php header.php

在git中改名操作并不是真正的改名操作,而是删除这个文件然后重现添加一个新的文件,
本地改名操作相当于把原来的已经被跟踪的文件Header.php删掉了,然后新建了一个header.php文件,在git中新建的文件属性是未跟踪未缓存状态,所以这个时候执行 checkout,会提示你有未跟踪的文件会丢失被覆盖,需要执行一下
git add 把新的文件添加到缓存中,变成跟踪状态。

不建议直接更改文件名,应使用git mv命令修改:
git mv Header.php headr.php
相当于执行了三条命令:
mv Header.php header.php
git rm Header.php
git add header.php

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏