一、背景描述
使用的工具:Windows10 + Idea + Git
今天从Git服务器上通过 Git Bash Here(如下图所示),克隆下来一个新的项目,此时一般都是master分支。
此时使用 Idea 打开新克隆下来的项目,想从master分支切换到dev分支,操作如下:
结果会出现如下问题:
二、问题原因
出现此问题的原因是因为本地有已加入Git版本控制的文件,但是没有 commit 所以在 检出(checkout)时会提示这个问题。
根据提示的内容(Move or commit them before checkout)我们就可以知道两种解决方案。
- 第一种解决方案就是 Move them(把这些文件移除)
- 第二种解决方案就是 commit them(提交这些文件)
下面分别说一下两种方案的具体操作。
三、解决方案
以下两种方案都可以解决上述问题,看个人喜好使用哪种方式都可以。
3.1 方案1--删除文件
如果不想删除文件(或者文件不能删除的话),请直接略过此方案,看第三种方案。
点击View Files,会弹出一个对话框,如下图所示:
对于我的项目是弹出了一个 .idea文件夹下的 .gitignore文件,没有用,所以我选择删除,点击 OK 后,再重新切换开发的分支即可成功。
Tips:需要注意的是如果项目太旧太乱可能会有很多冲突文件,耐心删除直到不再弹框提示Untracked Files Prevent Checkout即可切换分支。此时就不如使用第三种解决方案了。
3.2 方案2-- 提交这些文件
根据提示内容(Move or commit them before checkout),我们在检出分支的时候,需要把本地所有已加入Git版本控制的文件都commit了。这就是第二种方案,但是很明显,我不需要提交这个文件,所以这种解决方案需要根据实际情况了。
3.3 方案2--git命令切换分支
需要用到的Git命令:git checkout -f 分支名
先进入到项目所在的磁盘目录:鼠标右键 -- > Git Bash Here --> 弹出命令窗口 --> 手动输入 git checkout -f dev-V2.02.01-20220425 命令之后回车即可切换到开发的分支。
dev-V2.02.01-20220425 是我项目中的一个分支。
从图中可以看到已经成功切换到分支了。
Tips:第三种方案需要记住git的命令,相比较于第一种方案,可能稍微复杂一些,但是如果第一种方案解决不了的话,就可以使用第三种方案。
完结!