error: unable to write sha1 filename 问题的解决办法

通过 sourcetree 拉取代码时遇到了如上问题

会出现这种问题,我所知道的可能有两种错误:
一、是你需要切换 git 的连接模式从 https 转换为 ssh
这个在 .git 文件夹中的 config 中就可以切换,或者在 sourcetree 的远程账号设置

二、原因就比较复杂了
首先在网上clone了一个仓库,然后进行自己的编码。然后想测试其他人 push 的代码,但是不想pull到你自己的项目中,害怕合并失败,新建了一个新的文件,重新clone了一个项目。然后对这个新 clone的项目进行了一系列的 git 操作比如 commit ,这个时候你回到最开始 clone 的项目进行 git 操作 push 的时候就会报这个错误。
因为git客户端扫描到你本地拥有同一个文件的2个快照导致操作权限错误导致的。这个情况除了自己作死 触发的概率不大。另外说一个题外话就是 git 在使用的时候想要抛出不想提交的文件夹用 gitigone 这应该就是最好的方法了。
在idea中的用法如下:
首先打开一个 git 项目,然后点击 setting 选择下面的 Editor 下的 FileTypes 选项
在最下面的 Ignore files and folders 添加 你想忽视的目录和文件
添加 ;.idea;.iml;.target; 然后apply 然后ok
等进度条完事就可以发现看不到你想忽视的文件了
然后 在 plugins 中下载 git 忽视文件的插件
.ignore 下载后重新启动 idea
重启之后 右键你的项目 选择 new 会发现 一种新的类型的文件 ignore files
然后选择其中的 .gitignore 文件
然后选中第一条点击底下的提交
就会发现你的项目中 新加了一个 .gitignore 文件
然后 你就可以正常的提交你的项目