git提交的时候需要用户名和密码

本文详细介绍了如何解决使用Git从SVN迁移时遇到的问题,即每次提交或同步代码时需要输入用户名和密码的困扰。通过将远程origin更改为SSH方式,并更新配置文件,实现了无需手动输入凭据的操作。同时,对比了GitHub和Coding平台在提供克隆地址方面的差异。

        帮一个C#的哥们从SVN转到了Git,算是好事一件了。通过keygen生成和配置了公钥,也配置到了remote端,安装好了sourceTree,checkout出代码就可以工作了。

        昨天他说碰到一个问题,从命令行每次提交或者同步代码的时候都需要输入用户名和密码,感觉有点麻烦,让我帮忙看一看。我检查了.ssh/id_rsa.pub和远程配置的一样,通过ssh命令也可以和远程通讯,比如:

 

PTY allocation request failed on channel 0
Coding.net Tips : [Hello XXX! You've connected to Coding.net by SSH successfully! ]
Connection to coding.net closed.

 

那问题出在哪里呢?查看一下配置,git config -l如下:

 

  

ore.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=https://git.coding.net/XXX/storesystem.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

 

      看来clone的时候是使用的https,而不是ssh,所以配置的SSH是没有用得,需要改变一下remote.origin到SSH就可以了:

 

   

git remote remove origin
git remote add origin git@coding.net:XXX/storesystem.git

git branch --set-upstream-to=origin/master master

 

       这样,就是使用SSH的方式了。使用git pull或者git push都可以不用输入用户名和密码了。比较了github和Coding,发现github提供了SSH和https的clone地址,而coding只提供了https的地址。这算不算是个问题呢?

 

 

### 如何在 Git 中仅使用用户名密码进行代码提交 为了理解如何通过用户名密码来完成 Git 提交,重要的是要认识到现代版本控制系统通常推荐使用 SSH 密钥或个人访问令牌 (PAT),而不是直接利用明文形式的用户名密码组合来进行身份验证。然而,在某些情况下确实可以配置 Git 使用 HTTP/HTTPS 方式的 URL 来推送更改,并提供基本认证信息。 当设置远程仓库地址时可以选择 HTTPS 协议并输入完整的 URL 后面附带 `username` 参数: ```bash git remote set-url origin https://<your_username>@github.com/<your_username>/<repository>.git ``` 每次执行 push 或 pull 操作时会被提示输入对应的账户密码[^2]。 对于那些希望简化流程而不必每次都手动键入凭证的情况,可以通过缓存机制保存这些敏感数据一段时间内有效。例如,可以在命令行工具中启用凭据助手功能以便自动处理后续的身份验证请求: ```bash git config --global credential.helper cache # 设置超时期限为900秒(15分钟), 可选参数 git config --global credential.helper 'cache --timeout=900' ``` 需要注意的是这种方法存在一定的安全隐患,因为如果计算机被他人非法获取控制权,则可能会滥用存储下来的登录资料造成潜在风险;因此建议只在受信任环境中采用此方法。 另外一种方式是在克隆项目之初就指定好带有用户名密码的信息作为初始连接字符串的一部分,不过这种方式并不安全也不推荐长期使用,因为它会把密码暴露在网络传输过程中以及历史记录里: ```bash https://<your_username>:<your_password>@github.com/<your_username>/<repository>.git ``` 综上所述,虽然能够实现基于用户名密码的身份验证过程用于提交代码到远端服务器,但从安全性角度出发还是强烈建议考虑其他更为稳妥的选择比如SSH密钥对或者OAuth Token等替代方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值