github新建库并且提交、push更新被拒绝、公钥设置方法

本文详细介绍如何将本地项目与GitHub上的远程仓库进行同步,包括创建仓库、初始化本地仓库、提交更改及解决推送错误等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先自己在github上创建库,我创建的名为IHome_Server
之后在git命令行执行如下命令

//进入自己的项目目录
$cd ~/myprojects //名字自定义
$git init
$git commit -m "first commit" //括号内内容自定义
$git remote add origin git@github.com:FeatherHunter/IHome_Server.git //我的在github上库的目录为FeatherHunter/IHome_Server,这里更具自己情况决定
$push -u origin master //提交更新

问题汇总

git push时提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支

在对本地库中的文件执行修改后,想git push推送到远程库中,结果在git push的时候提示出错:

! [rejected] master -> master (non-fast-forward)
error: 无法推送一些引用到 ‘git@github.com:GarfieldEr007/XXXX.git’
提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
提示:再次推送前,先与远程变更合并(如 ‘git pull …’)。详见
提示:’git push –help’ 中的 ‘Note about fast-forwards’ 小节。

××解决办法××
因为当前分支的最新提交落后于其对应的远程分支,所以我们先从远程库fetch到更新再和本地库合并,之后就可以git push操作了

$git fetch origin  
$git merge origin/master 

###公钥问题
请查看链接:http://blog.chinaunix.net/uid-26185912-id-3327885.html
<think>嗯,用户想知道如何把从GitHub克隆的项目推送到Gitee仓。首先,我需要理清楚整个流程。用户可能已经有一个GitHub的本地仓,现在想把它同步到Gitee上。那么,基本的步骤应该是先在Gitee上创建一个新的仓,然后添加Gitee的远程仓地址到本地,最后推送代码过去。 首先,用户需要确保本地已经有GitHub项目的克隆。假设用户已经通过git clone命令克隆了项目,本地仓应该已经存在。接下来,用户需要在Gitee上创建对应的仓。这里可能需要指导用户如何在Gitee上创建新仓,但用户的问题可能更关注本地操作,所以可能不需要详细说明Gitee的网页操作。 然后,添加远程仓。本地默认的远程仓是origin,指向GitHub。用户需要添加另一个远程,比如命名为gitee,指向Gitee的仓地址。这可以通过git remote add命令完成。需要注意的是,如果本地已经有origin,可能需要确认用户是否需要保留GitHub的origin,或者是否要重命名。不过通常情况是保留,然后添加新的远程。 接下来是推送代码。用户可能需要推送所有分支和标签到Gitee。使用git push -u gitee --all和git push --tags应该可以完成。这里要提醒用户可能需要权限,比如在Gitee上有写入权限,以及正确的仓地址。 还有可能出现的问题,比如两个仓的历史不同,或者需要强制推送。但一般来说,如果用户是从GitHub克隆的最新代码,直接推送到新的Gitee仓不会有冲突。不过可能需要考虑后续同步的问题,比如如何保持两个远程仓更新。例如,用户可能之后需要从GitHub拉取更新,再推送到Gitee。这时候可以设置两个远程,分别管理。 另外,用户可能需要配置Gitee的SSH密钥,如果之前没有配置过的话。这可能需要生成SSH key并添加到Gitee账户中。不过这个问题可能超出了当前问题的范围,但可能需要提及。 还有,如果用户的本地仓有很多分支,可能需要确保每个分支都推送到Gitee。或者如果只需要推送主分支,可以调整命令。但根据用户的问题,他们可能希望整个项目都迁移过去,所以推送所有分支和标签是合理的。 总结步骤应该是:1. 在Gitee创建空仓;2. 添加Gitee远程到本地;3. 推送代码到Gitee。同时需要提醒后续同步的方法,比如git pull origin master和git push gitee master来保持更新。 可能还需要提到,如果Gitee仓需要和GitHub保持同步,可以设置两个远程,定期拉取和推送。此外,如果用户想将Gitee设为主要远程,可以修改origin或者使用不同的名称,方便管理。 最后,确保用户了解基本的Git操作,比如如何查看远程仓git remote -v),如何移除不需要的远程等。如果用户遇到权限问题,可能需要检查远程地址是否正确,以及是否有正确的SSH密钥配置。</think>### 分步操作指南 要将从GitHub克隆的项目提交Gitee仓,需通过以下步骤实现跨平台代码同步: --- #### **1. 在Gitee创建空仓** - 登录Gitee,点击右上角「+」选择「新建」 - 填写仓名称(建议与GitHub同名),选择公开/私有权限,**不要**勾选「初始化仓」选项[^2] --- #### **2. 添加Gitee远程仓地址** 打开终端,进入本地GitHub项目的根目录: ```bash cd /path/to/local_repository ``` 添加Gitee仓作为新远程地址(命名为`gitee`): ```bash git remote add gitee git@gitee.com:your_username/repository_name.git ``` 验证远程仓配置: ```bash git remote -v # 应显示origin(GitHub)和gitee(Gitee)两个远程地址 ``` --- #### **3. 推送代码到Gitee** 推送所有分支和标签: ```bash git push -u gitee --all # 推送全部分支 git push gitee --tags # 推送所有标签 ``` 若只需推送主分支: ```bash git push -u gitee master ``` --- #### **4. 后续同步更新(可选)** 当GitHub更新后,先拉取更新再推送至Gitee: ```bash git pull origin master # 从GitHub拉取更新 git push gitee master # 推送更新Gitee ``` --- ### 关键注意事项 1. **SSH密钥配置** 需确保Gitee账户已添加SSH公钥(默认使用`~/.ssh/id_rsa.pub`),否则会提示权限错误[^1] 2. **强制推送风险** 若Gitee仓已存在内容,建议先清空仓或使用`--force`覆盖(谨慎操作)[^3] 3. **双平台同步方案** 可通过设置两个独立的远程仓实现双向同步: ```bash git pull origin master && git push gitee master # GitHubGitee的单向同步 ``` --- ### 同步流程示意图 $$ \begin{aligned} &\text{GitHub} \xrightarrow{\text{git pull}} \text{Local} \xrightarrow{\text{git push}} \text{Gitee} \\ &\text{Gitee} \xrightarrow{\text{git pull}} \text{Local} \xrightarrow{\text{git push}} \text{GitHub} \end{aligned} $$ ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值