最近线上部署的项目出现了很多问题,经过排查发现是之前很多工程部署的机器上使用的是个人的git账号。原来维护人员调到其他项目去了,后来修改了密码,导致很多工程都出了问题。修改代码后机器更新代码一直提示输入git密码。因为本地使用的是ssh方式更新代码,所以认证失败后就只提示输入密码。在网上查了很多种方式,大部分回答都一样,修改账号密码,就像下面方式:

git config --global user.name 用户名
git config --global user.email 邮箱地址

结果当然是没有一点效果了。最后查出两种修改方式

https更新代码

使用https方式更新Git库代码,这样每次都会提示输入账号和密码,只要有权限的账号都可以更新。修改方式是在git目录的.git文件夹下,打开config文件,将url从ssh修改为https方式

[remote "origin"]
    url = https://github.com/xxxx/xxxx.git
    fetch = +refs/heads/*:refs/remotes/origin/

但是上面这种方式需要每次输入账号密码,这样不利于自动脚本执行,那么我们就需要使用免密方式更新了。

ssh更新代码

# 输入用户名
git config --global user.name "yourname"  

# 输入邮箱
git config --global user.email "youremail" 

# 消除由于Windows和Linux拼图中换行符的差异导致的问题
git config --global core.autocrlf false 

# 消除由于路径或是文件名包含中文导致的乱码问题
git config --global core.quotepath off

# 消除gui界面中文乱码问题,如果只使用命令行的话不用设置这个
git config --global gui.encoding utf-8

# 配置ssh的秘钥,输完之后一路回车
ssh-keygen -t rsa -C "youremail"

# 启用ssh-agent
eval `ssh-agent`

# 添加秘钥
ssh-add ~/.ssh/id_rsa

# 将它添加到一直的key列表中
ssh-add -l

# 打开公钥文件,拷贝公钥,添加到自己的GitHub账户上去
cat ~/.ssh/id_rsa.pub

git修改用户名密码命令(git 命令行怎么修改登录密码)(1)