0
点赞
收藏
分享

微信扫一扫

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

_刘彦辉 2022-08-23 阅读 43


第一步:

配置 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 密钥设置完毕。





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

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

第二步:

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

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

发现问题:
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

解决方案:

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

切换成功

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

扩展解说:

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 …的问题。

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


举报

相关推荐

0 条评论