pycharm无法通过git进行push,是你认证方式选择不对

一、HTTPS协议和SSH协议

Pycharm或VScode大多使用Git进行仓储管理。

HTTPS和SSH是Git的两种不同协议,认证方式也不同:

  • 使用HTTPS协议时,Git会通过用户名和密码(或Personal Access Token)进行身份验证(如未正确配置凭据管理器,或Pycharm没有正确提示你输入凭据,可能会导致push失败)。
  • 使用SSH协议时,Git会通过密钥对进行身份验证(如果已经配置了SSH密钥并将其添加到Github(或其他Git托管服务),SSH会自动使用密钥进行认证,无需手动输入用户名和密码)。

二、哪个更适合Pycharm,以及更方便呢?

SSH

原因如下:

  1. 如果你使用的是Github,Github已经不再支持通过密码进行HTTPS认证,必须使用Personal Access Token(PAT)。(如果没有正确配置PAT,HTTPS认证会失败);
  2. Pycharm可能没有正确缓存或提示你输入HTTPS的凭据(用户名和密码或PAT);
  3. SSH认证不依赖于Pycharm的凭据管理,只要你的SSH密钥配置正确,Pycharm可以直接使用它;
  4. 有些公司或网络环境可能会对HTTPS流量进行限制或代理,导致HTTPS协议无法正常工作,而SSH协议通常不受这些限制的影响

三、如何生成SSH密钥并添加到github

  1. 打开终端(windows上使用Git Bash或命令提示符)并运行如下命令:
    ls ~/.ssh

    如果看到id_rsa 和 id_rsa.pub(或者其他后缀为.pub的文件),说明已存在SSH密钥,可以直接跳到步骤4。

  2. 生成新的SSH密钥
    1. 运行以下命令生成SSH密钥
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    -t rsa:使用RSA算法
    -b 4096:密钥长度为4096位
    -C “your_email@example.com”:将你的github邮箱地址作为注释

    运行期间遇到提示:
    1. 按回车接受默认路径(~/.ssh/id_rsa)
    2. 如果需要保护密钥,可以设置密码,也可以直接回车跳过。

    2. 成功生成后,SSH密钥将保存在以下位置:
    私钥:~/.ssh/id_rsa
    公钥:~/.ssh/id_rsa.pub
  3. 启动SSH代理并添加密钥
    1. 启动SSH代理
    eval "$(ssh-agent -s)"

    2. 添加私钥到代理:

    ssh-add ~/.ssh/id_rsa
  4. 复制公钥到剪贴板
    运行以下命令复制公钥

    clip < ~/.ssh/id_rsa.pub
  5. 添加公钥到Github
    1. 登录到Github
    2. 点击右上角头像,选择Settings
    3. 在左侧菜单中选择SSH and GPG keys
    4. 点击New SSH key
    5. 在Title中输入一个描述(如“My work desktop”)
    6. 将第四步复制到剪贴板的公钥粘贴到Key文本框中
    7. 点击Add SSH key

  6. 测试SSH连接
    测试是否能成功连接Github

    ssh -T git@github.com

    如果成功,会看到以下输出

    Hi your_username! You've successfully authenticated, but Github does not provide shell access.
  7. 更新远程仓库的协议为SSH
    1. 切换到你的项目所在的目录:

    cd path_t0_your_project


    2. 将远程仓库URL更新为SSH

    git remote set-url origin git@github.com:your_username/your_repository.git


    3. 验证远程仓库地址

    git remote -v

    应显示

    origin git@github.com:your_username/your_repository.git (fetch)
    origin git@github.com:your_username/your_repositoty.git (push)
  8. 如果遇到 port 22: Soteware caused connection abort的错误提示,可能是网络屏蔽了端口22
    22是SSH默认端口,443是SSH替代端口,所以,可以尝试编辑~/.ssh/config文件,并添加443端口

    nano ~/.ssh/config
    添加如下内容:
    Host github.com
        Hostname ssh.github.com
        Port 443


    测试SSH连接

    ssh -T git@github.com

    如果成功,会看到步骤6的提示。
     

  9. 测试Git操作,试运行以下命令

    git pull
    git push

    如果在项目所在文件目录下运行,会提示

    Already up to date.

    或者push成功的提示

    Enumerating objects: 28, done.
    Counting objects: 100% (28/28), done.
    Delta compression using up to 16 threads
    Compressing objects: 100% (19/19), done.
    Writing objects: 100% (20/20), 258.04 KiB | 892.00 KiB/s, done.
    Total 20 (delta 3), reused 0 (delta 0), pack-reused 0 (from 0)
    remote: Resolving deltas: 100% (3/3), completed with 2 local objects.
    To github.com:hawkchow2016/barcode_statistics_web.git
       25f510d..d3ee4a3  main -> main
    
  10. 通过命令行提交代码,可以运行以下命令

    git add .
    git commit -m "Your commit mesages"
    git push origin main


    好了,我的代码和相关文件提交到Github远程仓库了,也祝你们好运~
     

PyCharm中使用Git进行Python项目的版本控制具有重要作用,它不仅提升了团队协作的效率,还简化了代码管理的复杂性。以下是具体的作用和操作方法。 ### 作用 1. **版本管理**:Git允许开发者记录每次代码变更,便于回溯和追踪问题。例如,当代码出现错误时,可以通过Git回滚到之前的稳定版本,减少调试时间[^1]。 2. **团队协作**:Git支持多人协作开发,通过分支管理机制,团队成员可以并行开发不同的功能模块,避免代码冲突。PyCharm的图形界面进一步简化了这一过程,使开发者能够直观地查看和解决冲突。 3. **代码审查**:通过Git的提交记录和差异对比功能,团队可以进行代码审查,确保代码质量和一致性。PyCharm集成了这些功能,开发者可以直接在IDE中查看代码差异,无需切换到其他工具[^1]。 4. **简化工作流**:PyCharm内置的Git功能减少了对命令行的依赖,使得开发者可以专注于代码编写,而不是版本控制的细节。例如,开发者可以通过点击按钮完成提交、推送和拉取操作。 ### 操作方法 1. **配置Git用户信息**:在开始使用Git之前,需要配置全局用户名和电子邮件地址。这可以通过命令行完成,输入以下命令: ```bash git config --global user.name "您的用户名" git config --global user.email "您的邮箱地址" ``` 这些信息将用于您的Git提交,确保提交记录的可追溯性[^2]。 2. **初始化Git仓库**:在PyCharm中,可以通过菜单栏的“Get from VCS”选项克隆现有仓库或创建新仓库。如果项目尚未使用Git,可以选择“Create Git Repository”来初始化一个新仓库。 3. **添加和提交文件**:在项目中,右键点击文件或文件夹,选择Git > Add”将文件添加到暂存区。随后,右键点击项目根目录,选择Git > Commit File”提交更改。在提交对话框中,可以输入提交信息,描述本次提交的内容[^3]。 4. **推送和拉取更改**:提交更改后,可以通过“Git > Push”将更改推送到远程仓库。同样,使用“Git > Pull”可以从远程仓库拉取最新的更改,确保本地代码与团队同步。 5. **分支管理**:PyCharm提供了直观的分支管理界面。开发者可以通过“Git > Manage Branches”创建、切换和合并分支。分支管理有助于隔离新功能的开发,避免影响主分支的稳定性。 6. **解决冲突**:当多人同时修改同一文件时,可能会出现冲突。PyCharm会提示冲突文件,并提供差异对比工具,帮助开发者直观地解决冲突。选择合适的代码片段后,标记冲突已解决并提交更改即可[^1]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值