Git Pull: 更改身份验证

24

我对git比较新手。我在一个只能通过ssh rsa密钥访问的服务器(A)上设置了一个仓库,里面有我和其他几位用户。现在我在本地机器上执行git clone,得到一个本地副本,进行更改并执行push origin master,一切都正常。

我的问题是,我们的测试服务器(B)已经设置好了一切,我想要做的是将我最新的更改拉到那个服务器上。测试服务器也有几个用户,以及整个目录的所有者www-data(运行Apache)。

使用我的用户名登录SSH时,我无法执行git pull,提示.git被锁定,所以我执行sudo git pull,它要求我输入另一个用户(user1)的密码。我不知道那个密码,我想完全删除那个用户,但在这样做之前,我必须将测试服务器上的git repo切换为使用我的身份验证(kovshenin)而不是user1的身份验证来拉取更改。

正确的做法是什么?我不想删除一切并从一个干净的克隆开始,因为它有一些本地更改。

2个回答

48

经过三个小时的搜索和尝试,我最终自己找到了答案。身份验证详细信息存储在 .git/config 文件的 [remote "origin"] 部分的 url 设置下。


15
可以使用命令“git remote -v”显示当前的远程配置,并执行“git remote set-url ssh://you@location...”来更改远程地址,无需直接编辑配置文件。 - tvlooy
2
我需要添加 'origin': git remote set-url origin https://usera@.... - Bryji

1
对我来说,如果问题是从https更改为ssh身份验证(https已经不起作用了),我会执行以下操作:
git remote rm origin
git remote add origin git@github.com:etc/etc.git

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接