zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Git 拉取项目小技巧之切换分支error: The following untracked working tree files would be overwritten by checkout:

项目Git Error 技巧 The 分支 切换 by
2023-09-11 14:15:13 时间

第一步:

配置 SSH 密钥
云效代码管理 Codeup 的代码仓库支持 HTTP(S) 和 SSH 两种访问协议,SSH 协议可以实现安全的免密认证,且性能比 HTTP(S) 协议更好(因为 HTTP 是无状态协议,需要多次连接和交互)。在使用 SSH 协议操作代码仓库之前,首先需要生成并上传你的 SSH 公钥,完成 SSH 公钥和用户账号的对应。
1.创建 SSH 密钥
说明
注:如未安装 Git 客户端,请参见 Git 教学部分。
目前平台仅支持 RSA 算法生成的 SSH 密钥,在你的计算机命令行中首先执行以下语句,判断是否已经存在本地公钥:
cat ~/.ssh/id_rsa.pub
如果返回一长串以 ssh-rsa 开头的字符串, 说明已存在本地公钥,你可以跳过以下 ssh-keygen 的步骤。
如果查询不到本地公钥,你可以按如下命令来生成 SSH 密钥 :
ssh-keygen -t rsa -C “<您的邮箱>”
该指令要求提供一个位置去存放公钥、私钥文件,您可以选择使用默认位置保存公钥、私钥文件。公钥文件以 .pub 扩展名结尾,可以公开给其他人,而没有 .pub 扩展名的私钥文件不要泄露给任何人!
说明
提示: 您可以选择使用口令保护私钥文件。如果您不想在每次使用 SSH 协议访问仓库时,都要输入用于保护私钥文件的口令,您可以在创建公钥、私钥文件时,输入空口令。
(Linux、Mac 下)可以用以下命令显示生成的公钥:
cat ~/.ssh/id_rsa.pub
复制公钥添加到个人设置 -「SSH 密钥」下,请完整拷贝从 ssh- 开始直到你的用户名和主机名为止的内容。
如果打算拷贝公钥到你的粘贴板下,请参考操作系统使用以下命令:
Windows:
clip < ~/.ssh/id_rsa.pub
Mac:
pbcopy < ~/.ssh/id_rsa.pub
GNU/Linux (requires xclip):
xclip -sel clip < ~/.ssh/id_rsa.pub
2.添加 SSH 密钥
点击个人设置-「SSH 密钥」展现 SSH 密钥设置弹窗。
将 1 中复制的 Key 粘贴到输入框中,同时给当前 Key 进行命名。
点击「添加 SSH 密钥」后当前 SSH 密钥设置完毕。

在这里插入图片描述

设置成功后,你可以使用该 SSH 密钥进行代码的本地克隆、提交等操作。

第二步:
在这里插入图片描述在这里插入图片描述

发现问题:
git下来的是master分支
想切换到dev但是会报如下错误

git checkout dev
error: The following untracked working tree files would be overwritten by checkout:
.idea/compiler.xml
.idea/encodings.xml
.idea/misc.xml
.idea/saveactions_settings.xml
Please move or remove them before you switch branches.
Aborting

解决方案:
在这里插入图片描述切换成功
在这里插入图片描述

扩展解说:

error:The following untracked working tree files would be overwritten by merge,操作的目的是想把主分支的程序合并到子分支中,方便过几天上线的时候子分支合到主分支有什么冲突,可以提前解决一下。
注意 merge不成功执行完git clean -d -fx操作本地的修改都没有了。一定要注意,每次merge之前一定要把之前的修改git push 到当前分支的远端,万一merge不成功还可以回撤到merge之前的状态,不至于丢失本地的修改。

操作顺序如下:

在子分支中merge主分支的程序。此时有几个冲突文件,其中几个是配置文件直接拿主分支的替换就可以,还有几个是代码冲突,手动合并就行,此时想线切到主分支,把那几个配置文件拷贝出来,所以就有一下几步操作。
将合并的代码回撤Revert,此时是成功的。
切换到主分支Switch/CheckOut。切不回去了,提示:The following untracked working tree files would be overwritten by checkout,切不了分支那还是merge吧
执行merge操作,提示:error:The following untracked working tree files would be overwritten by merge

至此咋地都不行了。鼠标右键,右键菜单里Git Sync…选项也没有了。执行Git Commit,也没有任何需要提交的文件。于是就上网查怎么解决,最后查到了命令行:git clean -d -fx,作用是:删除没有git add 的文件 ,执行之后解决了 error: The following untracked working tree files would be overwritten by …的问题。

在这里插入图片描述