从一个git仓库内迁移分支代码到另一个git仓库,保存之前仓库的提交记录

简介: 有时候拉取开源仓库到自己的仓库,再拉取时又想保留开源之前的提交路径,并且自己的仓库不想展示分支名称为开源仓库名称,想改为master,可以看下面的几种方式

第一种需求方式

如果A是已有仓库,B是新建立的空仓库。(如下操作,提交记录也会带到新仓库里)

1、在本地拉一下(git clone)A仓库的代码,或者是 git pull 下最新的代码。

2、git remote # 查看本地连接的有哪些 远程仓库,默认是 origin

3、git remote add origin2(这个名字随便起) master # 这里是在本地添加一个新的远程连接

4、git remote set-url origin2 B仓库的地址 # 这里是新加个远程连接 设置上url地址

5、在A的本地仓库 git push origin2 dev:master # origin2 是你想push上哪个远程库,dev 是你想push哪个分支,master 是push到远程的哪个分支。 这个命令执行以后要输密码,记得是新仓库的密码。

6、设置默认提交仓库, 将本地的分支和远程分支做关联,比如master分支 git branch --set-upstream-to=gitlab/master ,其他分支照此办理。

第二种需求,推送时,将B仓库的分支改为Master名称,而非A仓库的分支名称

  1. 克隆 A 仓库:首先,克隆 A 仓库到本地。使用以下命令:
git clone <A仓库URL>
AI 代码解读
  1. 进入 A 仓库目录:使用以下命令进入克隆的 A 仓库目录:
cd <A仓库目录>
AI 代码解读
  1. 查看 A 仓库的分支列表:使用以下命令查看 A 仓库的所有分支:
git branch -a
AI 代码解读

这将列出 A 仓库中的所有分支,包括本地分支和远程分支。

  1. 切换到要推送的分支:使用以下命令切换到要推送到 B 仓库的分支:
git checkout <要推送的分支>
AI 代码解读
  1. 重命名分支为 master:使用以下命令将当前分支重命名为 master:
git branch -m master
AI 代码解读
  1. 添加 B 仓库作为新的远程仓库:添加 B 仓库作为新的远程仓库。使用以下命令:
git remote add origin <B仓库URL>
AI 代码解读

这将添加一个名为 origin 的远程仓库,它指向 B 仓库 URL。

  1. 推送分支到 B 仓库:使用以下命令将重命名的 master 分支推送到 B 仓库:
git push -u origin master
AI 代码解读

-u 参数将设置 origin/master 作为本地分支的上游。

完成上述步骤后,A 仓库中指定的分支将被推送到 B 仓库,并在 B 仓库中命名为 master 分支。请确保在执行这些操作之前备份你的代码。

相关文章
图解Git——分支的新建与合并《Pro Git》
在Git开发中,新建与合并分支是常见的操作。以实际开发为例:为实现新需求创建分支`iss53`进行开发;遇紧急Bug时,切换至线上分支创建`hotfix`修复并合并回线上分支,再切换回`iss53`继续工作。完成`iss53`后,切换到`master`合并。若出现冲突,使用`git status`查看,手动编辑解决冲突后标记为已解决并提交。图形化工具如`git mergetool`也可辅助解决冲突。
72 9
解决git bash报错:在仓库中检测到可疑的所有权
总的来说,解决“在仓库中检测到可疑的所有权”的报错,关键在于理解和调整文件或目录的所有权。只要我们正确地设置了文件或目录的所有权,那么我们就可以避免这种问题,让Git Bash正常工作。
47 22
vscode+git解决远程分支合并冲突
通过这些详细步骤,您可以掌握如何使用VSCode和Git高效地解决远程分支合并冲突,提高开发效率和代码质量。希望这些内容对您的学习和工作有所帮助。
533 86
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
108 11
TortoiseSVN迁移到本地git
通过上述步骤,您可以将项目从TortoiseSVN迁移到本地Git仓库。这一过程包括从SVN仓库检出代码、使用 `git-svn`转换为Git仓库、优化Git仓库以及将本地仓库推送到远程Git仓库。以下是思维导图示例,帮助您更好地理解迁移过程。
193 27
图解Git——分支开发工作流《Pro Git》
分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。
138 7
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
54 6
使用git迁移git项目并保留提交记录
场景 在平时开发中我们有自己的git仓库,组内提交都是在这个库。突然有一天,领导说要把这个库整合到另一个更大的工程中(华为云的看板),那里面有前后端的代码;为了方便大家查找,我们需要将各个组的代码迁移到同一个大工程下。
11233 0
用git rebase命令合并开发阶段中多条commit提交记录
通过 `git rebase`,可以合并多个提交记录,使开发历史更简洁清晰。操作分为 6 步:查看提交历史 (`git log --oneline`)、设置需合并的提交数 (`git rebase -i HEAD~N`)、修改动作标识为 `s`(squash)、保存退出编辑、调整提交信息、强制推送至远程仓库 (`git push -f`)。此方法适合清理本地无关提交,但若有团队协作或冲突风险,需谨慎使用以避免问题。
111 60
版本控制工具:Git的安装和基本命令使用指南。
结束这段探险,掌握了Git你就等于掌握了一个宝藏,随时可以瞥见你的编程历程,轻松面对日后的挑战。Git,无疑是编程者的强大武器,开始你的Git探险之旅吧!
83 28

相关实验场景

更多