Git 拉取项目小技巧之切换分支error: The following untracked working tree files would be overwritten by checkout:
第一步:
配置 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 …的问题。
相关文章
- git 提交团队项目代码的流程
- [Git] git代码统计
- 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonpAPI和手势响应式组件
- 手把手带你做项目,3周学会小程序
- windows 下运行angualr/material2 项目
- Idea创建sbt项目
- Git 代码更新:git fetch 和 git pull 的区别
- 新闻发布项目——业务逻辑层(newsTbServiceImpl)
- 把项目放到码云上,通过git 进行项目管理
- 【学习总结】Git学习-GIT工作流-千峰教育(来自B站)
- [Practical Git] Remove unnecessary git tracking with .gitignore files
- 28款GitHub最流行的开源机器学习项目
- jenkins:通过ssh拉取git项目并通过ssh部署到远程服务器(jenkins 2.257)
- Jenkins 平台部署发布你的maven项目
- 大型开发项目中 git 工作流的最佳实践
- 【项目实战】IDEA中Git与Gitlab的基本使用
- 从项目实际问题引发的思考
- 【项目实战】Python实现AdaBoost分类模型(AdaBoostClassifier算法)项目实战
- [Unity3D入门]入门级游戏项目"坦克狙击手"更新
- Git SVN Clone 旧项目迁移到 Git 上
- Git知识总览(一) 从 git clone 和 git status 谈起
- 如何解决npm run serve运行vue项目时,出现报错:Error: error:0308010C:digital envelope routines::unsupported
- Eclipse 关闭项目
- IDEA快速构建SpringBoot项目
- Pycharm中修改git提交代码的账户和用户名【Git追溯注解,git blame】
- [Git & GitHub] Windows安装git和环境变量配置