将修改后的代码从一个克隆的仓库推送到新的 GitHub 仓库
本文介绍了如何从一个已经克隆下来的 GitHub 仓库中,将修改后的代码推送到一个新创建的 GitHub 仓库。
前提条件
- 已经克隆了一个现有的 GitHub 仓库到本地。示例仓库为:
https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git
- 已经在 GitHub 上创建了一个新的空仓库。示例仓库为:
git@github.com:cgm-free/ORBSLAM2_with_pointcloudmap.git
步骤
1. 克隆现有的 GitHub 仓库
如果你还没有克隆现有的仓库,可以通过以下命令进行克隆:
git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git
2. 进入项目目录
打开终端并切换到克隆下来的项目目录:
cd ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified
3. 查看当前远程仓库
通过以下命令查看当前配置的远程仓库:
git remote -v
这将显示原始的仓库 URL。
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git remote -v
origin https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git (fetch)
origin https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git (push)
4. 移除原有的远程仓库
移除与原始 GitHub 仓库的关联:
git remote remove origin
5. 添加新的远程仓库
添加新创建的 GitHub 仓库为远程仓库:
git remote add origin git@github.com:cgm-free/ORBSLAM2_with_pointcloudmap.git
6. 添加和提交更改(可选)
如果对代码进行了更改,使用以下命令添加和提交这些更改:
git add .
git commit -m "你的提交信息"
7. 推送到新的远程仓库
最后,使用以下命令将代码推送到新创建的 GitHub 仓库:
git push -u origin main
结论
现在,你应该已经成功地将修改后的代码从一个克隆的仓库推送到了新的 GitHub 仓库。以后,你可以通过简单的 git add
、git commit
和 git push
命令来更新你的代码。
我的运行命令:
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git remote -v
origin https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git (fetch)
origin https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git (push)
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git remote remove origin
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git remote add origin git@github.com:cgm-free/ORBSLAM2_with_pointcloudmap.git
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git add .
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git commit -m "修改CMakeLists.txt文件的C++11为c++14"
[master 7065bcd] 修改CMakeLists.txt文件的C++11为c++141 file changed, 33 insertions(+), 10 deletions(-)
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git push -u origin main
error: 源引用规格 main 没有匹配
error: 无法推送一些引用到 'git@github.com:cgm-free/ORBSLAM2_with_pointcloudmap.git'
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git branch
* master
cgm@cgm:~/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified$ git push -u origin master
枚举对象中: 632, 完成.
对象计数中: 100% (632/632), 完成.
使用 16 个线程进行压缩
压缩对象中: 100% (384/384), 完成.
写入对象中: 100% (632/632), 7.99 MiB | 1.60 MiB/s, 完成.
总共 632 (差异 218),复用 624 (差异 214)
remote: Resolving deltas: 100% (218/218), done.
To github.com:cgm-free/ORBSLAM2_with_pointcloudmap.git* [new branch] master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
解决 Git 推送错误 "源引用规格 main 没有匹配"
当我们尝试从一个已经克隆下来的仓库推送代码到新的 GitHub 仓库时,有时会遇到 源引用规格 main 没有匹配
这样的错误。本文将针对该问题提供解决方案。
问题描述
在尝试使用以下命令推送代码时:
git push -u origin main
遇到如下错误:
error: 源引用规格 main 没有匹配
error: 无法推送一些引用到 'git@github.com:cgm-free/ORBSLAM2_with_pointcloudmap.git'
原因分析
该错误的主要原因是本地分支名和远程分支名没有对应。
解决方案
方案一:使用相同的分支名进行推送
-
检查本地分支名
通过运行以下命令查看所有本地分支:
git branch
如果你在使用
master
分支(通常命令输出会显示* master
),那么你需要确保推送到具有相同名称的远程分支。 -
推送到远程分支
使用以下命令推送到
master
远程分支:git push -u origin master
方案二:重命名本地分支
-
重命名本地分支
使用以下命令将本地的
master
分支重命名为main
:git branch -m master main
-
推送到新的远程分支
使用以下命令推送到名为
main
的新远程分支:git push -u origin main
总结
通过以上两种方案,你应该能成功解决 源引用规格 main 没有匹配
这一问题。这样,你就能成功地将代码推送到新的 GitHub 仓库。