Linux中git push提交失败

情形描述:Linux环境中git clone获取已fork到个人仓库的源码,已完成编辑修改操作,进行个人仓库合仓提交失败异常。

异常提示1:remote: Support for password authentication was removed on August 13, 2021.

异常提示2:remote: Permission to username/meme.git denied to username.

解决参考:

    1.登录github个人账号,点击头像,选择“setting”

    2.选择“Developer settings”,选择“Generate new token(classic)”,点击创建

    3.自定义token名称和时间期限,“Select scopes”权限部分,建议全选,至少保证push权限

    4.点击“Generate token”生成token,复制(保存)token号

    参考:Git使用——将GitHub设置成Token-优快云博客

    5.到代码项目下,修改或配置remote.origin.url部分添加token标识

      方法1:vim .git/config        #更新修改如下格式的token地址

      方法2:git remote set-url origin token地址

      token地址格式:https://token号@github.com/username/meme.git

    6.重新git push提交

### 关于 `git push` 的案例分析 在 Linux 系统中使用 Git 进行版本控制时,`git push` 是一个非常重要的命令,用于将本地分支的更改推送到远程仓库。然而,在实际操作过程中可能会遇到一些问题,比如当远程分支的状态已经更新而本地未同步时,推送会失败。 #### 场景描述 假设你在本地的 `dev` 分支上进行了修改,并尝试将其推送到远程仓库。但在你完成这些操作之前,另一位开发者(如你的小伙伴 A)已经向同一远程分支提交了新的更改。这种情况下,当你执行 `git push` 命令时会出现如下错误: ```bash To github.com:Anonymoushhh/learngit.git ! [rejected] dev -> dev (non-fast-forward) error: failed to push some refs to 'git@github.com:Anonymoushhh/learngit.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. ``` 这表明本地分支落后于远程分支,因此需要先拉取最新更改后再重新推送[^2]。 --- #### 解决方案 为了处理这种情况,可以采取以下方法之一: 1. **通过 `git pull` 合并远程更改** 使用 `git pull` 将远程分支上的新更改合并到本地分支中: ```bash git pull origin dev ``` 如果存在冲突,则需手动解决冲突后再次提交和推送。 2. **强制覆盖远程分支(谨慎使用)** 如果确认自己的工作是最新的且不需要保留其他人的更改,可以通过 `--force` 参数强行推送: ```bash git push --force origin dev ``` 需要注意的是,这种方法可能导致数据丢失或其他团队成员的工作被覆盖,应慎重考虑其适用场景。 3. **创建一个新的提交记录以包含所有变更** 可以采用变基的方式使历史更加清晰整洁: ```bash git rebase origin/dev git push origin dev ``` 此过程会把当前分支中的每一个提交应用到指定的基础之上,从而保持线性的提交历史[^2]。 --- #### 完整流程示例 以下是基于上述情况的一个完整操作实例: 1. 添加文件至暂存区: ```bash git add . ``` 2. 提交更改到本地仓库: ```bash git commit -m "Add new environment configuration" ``` 3. 拉取远程分支的最新改动并与本地合并: ```bash git pull origin dev ``` 4. 推送最终结果回远程服务器: ```bash git push origin dev ``` 以上步骤能够有效避免因不同步而导致的拒绝推送问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值