git之切换分支出现的问题

当在其他分支,如test分支开发的时候,新增了文件夹等目录结构。开发完成后,切换会master分支。

如果出现“Deletion of directory '***' failed. Should I try again? (y/n)”,此时,记得选择n。

不然,如果选择了y,则git就会强制删除不属于master分支的文件以及文件夹。有可能删除失败。

此时,再切换到test分支,本属于该分支下的代码,就会都被删除!

如下图所示:

不过,不用紧张。毕竟提示被删除的代码,都是工作区的代码,还是可以从本地仓库或远程仓库来恢复代码的。

下面接着说,在test分支下,试着从本地仓库检出代码,结果报错:fatal: Unable to create 'E:/***/.git/index.lock': File exists 。此时,始终只能在test分支下。

可参考:

http://www.cnblogs.com/silentjesse/p/4079367.html

http://stackoverflow.com/questions/7860751/git-fatal-unable-to-create-path-my-project-git-index-lock-file-exists

所以,可用如下命令,来删除index.lock文件。

rm -f ./.git/index.lock

删除之前,可通过如下命令,来查看.git内的文件:

ls -l .git

删除之后,可通过如上命令,看到.git内就没有index.lock文件了。同时,也可以正常切换分支等操作了。

原文地址:https://www.cnblogs.com/simonbaker/p/5148180.html