背景:本人有一个私人github账号,公司使用igit进行开发,同时公司分配一个oa账号用来在igit上更新和提交代码,用sourceTree进行对igit上更新提交代码等的管理。
问题1:
在几个月一更换oa账密的前两天总是出现用sourceTree提交或更新代码失败,要重新输入oa账号(实际上还没有更改oa账密)
问题2:
在github上down代码后,公司绑定的igit出现账密错误
问题3:
在使用sourceTree输入oa账密时,sourceTree崩溃,再推送时账密失效
问题4:
sourceTree提交代码失败,用Terminal来提交或者拉取代码时oa账密失效,显示access deny类似字眼
。。。
一般来说,可以用以下几种方式可以解决:
1、针对一般的问题(比如用账密在sourceTree上提交失败,但是用Terminal推送成功):删除mac中钥匙串(keys)中关于git的账密存储(如何删除具体网上可查),再用sourceTree进行推送。
2、针对较难的问题,比如问题3,问题4,查看远端仓库是否使用https进行代码更新。如果是,改成SSH方式。在git上添加ssh密钥,可参考文章:https://www.cnblogs.com/superGG1990/p/6844952.html。具体如何从https更改成ssh方式,可以用sourceTree直接在设置中更改:选定模块打开后,点击右上角设置,选择“远程仓库”,将远程路径改为复制的ssh路径即可
上述两个步骤一般能解决问题。
sourceTree对于多个模块的使用起来比较方便,特别是针对我们这个有十几个大仓库的项目。但是也存在一些问题,比如无法批量删除stash;本地更改后如果没有stash,远端就无法拉取;已经提起merge的代码必须要merge后或者关闭才能再在本分支上push代码等