首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

合并两个不相关的Git仓库

大致是这样的场景:有两个仓库,一个Git仓库,一个SVN仓库,都是非空的。现在要把SVN仓库中的内容合入Git仓库中,并保留提交记录。听起来有点奇怪,不过现实中的问题总是千奇百怪加变态。...简单来说,就是使用git svn clone 命令,或者使用TortoiseGit或其他工具即可解决,不做赘述,各位看官还是上百度或者谷歌吧; 2. 合并两个Git仓库。...思路 要想将test2合入test1中,那么可以将test2伪造成test1仓库的一个分支,然后合并到test1仓库中(的指定分支,本文为master) Action 1. clone两个仓库,放入同一个目录中...git merge test2 --allow-unrelated-histories 9. push到test1仓库 git push 参考文档 《合并两个git仓库》:http://blog.csdn.net.../gouboft/article/details/8450696 《如何用 Git 合并两个库,并保留提交历史》:http://www.cnblogs.com/AP0904225/p/5811687.html

1.1K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git多分支版本合并错误,使用revert回滚的问题

    某次误操作导致直接从dev1.1合并到了test,此时执行了revert回滚操作,本以为回滚后即撤销了原先的合并,然后继续执行正常的dev1.1->dev->test合并即可。...(下图为错误理解示意图) 而实际上revert回滚操作相当于一次commit,即将上一次提交的操作删除后再次提交。...此时合并其他BCD没有问题,但当对A修改后再次合并时,dev合并test的时候会有问题。...,提交,接下来按原有流程合并即可dev1.1->dev->test 手动将合并到dev之后删除的A代码加上的时候,可以在gitLog上选择合并前上一次记录的文件,在本地使用Reset Current...Branch to Here操作,但是这个只能一个文件一个文件的执行 或者使用git cherry-pick(可以理解为”挑拣”提交),它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上

    1.7K20

    记一次Git报错:refusing to merge unrelated histories

    提示:数据无价,在执行下面的操作之前,请先做好备份 环境 系统:Windows7 Git版本:2.22.0.windows.1 问题详情以及解决方案: 1、本地在一个已完成一半的项目中初始化了git仓库...,并进行了add和commit操作 $ git init $ git add . $ git commit -m '注释' $ git tag -a v1.0 -m '注释' 2、码云(Gitee)上建立了远程仓库...,并执行了README.md初始化 3、本地仓库添加了Gitee上的git仓库作为远程仓库,起名origin $ git remote add origin https://gitee.com/yourname.../test 问题来了,本地仓库在做git pull origin master为之后本地仓库推送到远程仓库做准备时报错,错误信息如下: fatal: refusing to merge unrelated...histories # 拒绝合并不相关的历史 查阅相关资料后,发现可以在git pull命令后使用--allow-unrelated-history选项来解决问题(该选项可合并两个独立启动仓库的历史)

    36420

    Git工作流协作的一些经验,分支、合并、提交,推送,移除历史

    版本管理在编程中的重要程度不言而喻,其中git工作流也是最主流的方式,接下来总结一下git工作流中的一些比较实用的概念和具体方法。...在git工作流中,协作的重要性是很高的,随着项目规模的升级,以及更多的人使用项目(fork),基于协作的共同维护就很有意义了。 这里主要有两个协作方式 1. 成为维护开发者 2....在fork之后,实际上我们不必把自己的仓库当成是树枝,当我们创建完分支后,两个仓库已经是对等的了。我们可以向源仓库推送更新,也可以把源仓库的更新当做推送方,合并到自己的仓库中。...在github中,两个仓库之间的拉取是很简单的,无论是希望推送,还是希望从源仓库更新都适用这个拉取。 如果是希望更新就将两个仓库的顺序对转然后进行对比。 之后就根据需要进行合并操作就可以了。...如果是贡献代码,那么需要源仓库开发者通过并且选择再合并。我们更新则是自己来通过。

    56720

    git上传更新项目-错误总结

    前些天做完项目一部分内容的时候,想git上传代码上去远程仓库里,却出现了不少git的错误提示信息。在这里总结一下吧: 一、正确的git上传更新项目步骤为: 1、git add ....这个是你git push上传更新代码的常见错误。...to merge unrelated histories 中文翻译是:“致命的:拒绝合并无关的历史”,因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,这句代码是在...这个先 commit 再 pull 再 push 的情况就是为了应对多人合并开发的情况, commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较...,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了

    1.4K30

    测试开发必会12个Git高级命令

    不过,有时你会遇到合并冲突的情况,Git这时会将冲突标记出来,需要你手工来解决。有时,你会不小心将代码提交到错误的分支上,并且又推送到了远程仓库。...不过,相比于使用合并提交来说,变基会通过在原来的分支中为每次提交创建全新提交来重写项目历史。变基的主要好处在于你会得到一个更加整洁的项目历史。此外,这里还有关于变基的陷阱的一些讨论。 2....这会导致如下所示的错误消息: Git会为你提供3个选择来修复导致冲突的提交(fa39187): 可以运行git rebase –abort来完全取消变基。...应用来自于不相关的本地仓库的补丁 如果需要将另一个不相关的本地仓库的提交补丁应用到当前仓库该怎么做呢?...虽然之前的所有文件都会被删除,但他们依旧存在于Git历史中。现在可以将新的本地仓库推送到远程了。 10.

    87920

    git 合并策略

    不清楚 git 冲突的表示方法,不了解 git 的合并原理,不知道 git 解冲突的多种策略。即便如此,大多数人依然可以正常使用 git 完成合并、拉取操作,并且解一些冲突。...---- git 合并策略 典型的使用指定 git 合并策略的命令这么写: $ git merge 要合并进来的分支名 --strategy=合并策略 例如: $ git merge origin/master...无论其他人有多少修改,在此次合并之后,都将不存在(当然历史里面还有)。 你可能觉得这种丢失改动的合并策略没有什么用。...与 recursive 不同的是,此策略会将合并的两个分支的其中一个视为另一个的子树,就像 git subtree 中使用的子树一样。.../git-merge-strategy.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

    2.2K10

    idea中通过ssh推送代码到gitee_github报错

    问题描述 昨天还是能正常推送代码的,今天push报如下错误 Failed with error: ERROR: You’re using an RSA key with SHA-1, which is...错误:您正在使用RSA密钥与SHA-1,这是不再允许的。请使用新的客户端或不同的密钥类型。无法从远程存储库读取数据。 执行连接测试又是通的。...C:\Users\Administrator>ssh -T git@gitee.com Hi [36;01mzjqSoCool[0m!...解决办法 查询资料看不少说要执行如下命令 git pull origin master --allow-unrelated-histories 这个命令的意思是【允许不相关历史提交,并强制合并】,看着命令意思跟我的好像还是不大对的上...好吧,继续尝试,猜测应该是ssh key的原因。本地的**.ssh**删掉,重新生成新的替换,具体查看我这篇文章 github或者gitee配置ssh免密登录。

    47920

    Git 工具 – 高级合并「建议收藏」

    合并日志 另一个解决合并冲突有用的工具是 git log。 这可以帮助你得到那些对冲突有影响的上下文。 回顾一点历史来记起为什么两条线上的开发会触碰同一片代码有时会很有用。...大多数情况下,如果你在错误的 git merge 后运行 git reset --hard HEAD~,这会重置分支指向所以它们看起来像这样: Figure 139....在 git revert -m 1 后的历史 新的提交 ^M 与 C6 有完全一样的内容,所以从这儿开始就像合并从未发生过,除了“现在还没合并”的提交依然在 HEAD 的历史中。...含有坏掉合并的历史 解决这个最好的方式是撤消还原原始的合并,因为现在你想要引入被还原出去的修改,然后 创建一个新的合并提交: $ git revert ^M [master 09f0126] Revert...子树合并 子树合并的思想是你有两个项目,并且其中一个映射到另一个项目的一个子目录,或者反过来也行。 当你执行一个子树合并时,Git 通常可以自动计算出其中一个是另外一个的子树从而实现正确的合并。

    82510

    Git 中文参考(三)

    --ff-only 拒绝以非零状态合并和退出,除非当前HEAD已经是最新的,或者合并可以解析为快进。...--allow-unrelated-histories 默认情况下,git merge命令拒绝合并不共享共同祖先的历史记录。在合并独立开始生命的两个项目的历史时,此选项可用于覆盖此安全性。...据报道,这会导致更少的合并冲突,而不会因为从 Linux 2.6 内核开发历史记录中进行的实际合并提交所做的测试而导致错误。此外,这可以检测和处理涉及重命名的合并,但目前无法使用检测到的副本。...subtree[=] 此选项是 _ 子树 _ 策略的更高级形式,其中策略猜测两个树在合并时必须如何移位以相互匹配。相反,指定的路径是前缀(或从头开始剥离),以使两个树的形状匹配。...当合并树 A 和 B 时,如果 B 对应于 A 的子树,则首先调整 B 以匹配 A 的树结构,而不是读取相同级别的树。这种调整也是对共同的祖先树进行的。

    19910

    7.8 Git 工具 - 高级合并

    合并日志 另一个解决合并冲突有用的工具是 git log。 这可以帮助你得到那些对冲突有影响的上下文。 回顾一点历史来记起为什么两条线上的开发会触碰同一片代码有时会很有用。...大多数情况下,如果你在错误的 git merge 后运行 git reset --hard HEAD~,这会重置分支指向所以它们看起来像这样: ? Figure 7-21....在 git revert -m 1 后的历史 新的提交 ^M 与 C6 有完全一样的内容,所以从这儿开始就像合并从未发生过,除了“现在还没合并”的提交依然在 HEAD 的历史中。...含有坏掉合并的历史 解决这个最好的方式是撤消还原原始的合并,因为现在你想要引入被还原出去的修改,然后 创建一个新的合并提交: $ git revert ^M [master 09f0126] Revert...子树合并 子树合并的思想是你有两个项目,并且其中一个映射到另一个项目的一个子目录,或者反过来也行。 当你执行一个子树合并时,Git 通常可以自动计算出其中一个是另外一个的子树从而实现正确的合并。

    71730

    Git 更安全的强制推送,--force-with-lease

    使用此参数推送,如果远端有其他人推送了新的提交,那么推送将被拒绝,这种拒绝和没有加 --force 参数时的拒绝是一样的。...在使用 git push --force-with-lease 命令被拒绝时,你需要 fetch 仓库,然后确认其他人是否对此分支有新的修改,如果没有,你才可以继续强制推送。...也就是说,本意是禁止对合并到 master 或 develop 分支上的提交进行 rebase;但对于自己的 temp 分支或者 feature 分支,因为提交还没有合并到主干中,随时删除掉或者将历史进行美化也不会造成太大的问题...▲ 这是 GitLab 上的设置,可以要求提交者必须进行 rebase 才允许合并 参考资料 Git - git-push Documentation How do I properly force a...Developers 本文会经常更新,请阅读原文: https://walterlv.com/post/safe-push-using-force-with-lease.html ,以避免陈旧错误知识的误导

    3.5K20

    【Git系列】Git 提交记录过滤:排除特定关键词的实用指南

    在软件开发过程中,版本控制系统(如 Git)是不可或缺的工具之一。它帮助我们追踪代码的变更历史,管理不同版本的代码,以及协作开发。...然而,随着项目的推进,提交记录可能会变得庞大且复杂,使得查找特定类型的提交变得困难。 Git Log 命令基础 git log命令是 Git 中用于查看提交历史的最基本命令。...: git log:显示提交历史。...--invert-grep:反转--grep的结果,即排除包含指定关键词的提交。 参数详解 --no-merges:这个参数用于排除合并提交,因为合并提交通常包含多个变更,可能不是我们关注的重点。...例如,如果我们想要查看所有与“性能优化”相关的提交,可以将命令修改为: git log --no-merges --grep='性能优化' 这样,我们就可以得到所有包含“性能优化”关键词的提交记录,而忽略其他不相关的提交

    12000

    git fatal:refusing to merge unrelated histories

    master --allow-unrelated-histories 告诉 git 允许不相关历史合并 git pull origin master --allow-unrelated-histories...” //第一种方法 git stash git commit git stash pop 接下来diff一下此文件看看自动合并的情况,并作出相应修改。...git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。...git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。...此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。 //第二种方法,完全地覆盖本地的代码,只保留服务器端代码 git reset --hard git pull

    16010
    领券