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

为什么git svn dcommit会丢失本地分支的合并提交历史记录?

在使用 Git 进行 SVN 迁移时,使用 git svn dcommit 命令提交代码到 SVN 仓库时,可能会丢失本地分支的合并提交历史记录。这是因为 Git 和 SVN 的提交历史记录存储方式不同,导致在转换过程中可能会出现一些问题。

以下是一些可能导致这个问题的原因:

  1. Git 和 SVN 的提交历史记录存储方式不同,Git 使用分支合并的方式来记录提交历史,而 SVN 则使用基于文件的方式来记录提交历史。因此,在转换过程中,Git 的分支合并历史可能无法完全转换为 SVN 的提交历史。
  2. Git 的提交历史记录可能包含一些不必要的提交信息,例如代码审查注释、构建系统生成的提交等,这些提交信息在 SVN 中可能没有意义,因此在转换过程中可能会被忽略或删除。
  3. Git 的分支合并历史可能比较复杂,例如存在多个分支的合并,或者存在分支的嵌套合并等情况,这些情况在 SVN 中可能比较难以处理,因此在转换过程中可能会出现问题。

为了解决这个问题,可以尝试以下方法:

  1. 在进行 SVN 迁移之前,尽量保持 Git 仓库的整洁和简单,减少不必要的提交信息和复杂的分支合并历史,这样可以减少在转换过程中出现问题的可能性。
  2. 在进行 SVN 迁移时,可以尝试使用一些工具或脚本来帮助转换,例如 git-svn 工具或 svn-migration-scripts 脚本等,这些工具或脚本可能会尝试更好地处理 Git 和 SVN 之间的差异,减少在转换过程中出现问题的可能性。
  3. 在完成 SVN 迁移后,可以尝试使用一些工具或脚本来分析 SVN 仓库的提交历史,并找出可能丢失的提交信息,然后手动将这些提交信息添加到 SVN 仓库中,以恢复丢失的提交历史记录。

总之,在使用 Git 进行 SVN 迁移时,需要注意 Git 和 SVN 的提交历史记录存储方式不同,因此可能会出现一些问题。为了解决这些问题,需要在进行迁移前准备工作时尽量保持 Git 仓库的整洁和简单,并使用一些工具或脚本来帮助转换和分析提交历史记录。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SVN或者GIT远程双向同步

这里同步最小单位为单次提交commit。 配合之前「使用git-svn管理svn仓库」可以完美解决这个问题,利用git来中转管理我们手上仓库代码。...本地添加远程仓库 添加远程SVN仓库: 没有找到命令行方式添加远程仓库分支,但是可以修改 .git/config文件达到目的。...4.新建对应本地分支 远程SVN仓库: $ git checkout -b qingsui remotes/git-svn-qingsui $ git branch -a # 查看本地分支情况...将commit提交合并到新分支 commit_id是需要同步到其他远程分支commit id。 $ git cherry-pick {commit_id} 6....svn dcommit git checkout master echo -e "\n" done done 说明: 如果自动合并有冲突会操作失败,需要手动修改再提交

1.5K30

SVNGit

通常提交代码分为几步: git add从工作区提交到暂存区 git commit从暂存区提交本地仓库 git push或git svn dcommit本地仓库提交到远程仓库 一般来说,记住以下命令,...$ git svn info # 取回远程仓库所有分支变化 $ git svn fetch # 取回远程仓库当前分支变化,并与本地分支变基合并 $ git svn rebase # 上传当前分支本地仓库到远程仓库...$ git svn dcommit # 拉取新分支,并提交到远程仓库 $ svn copy [remote_branch] [new_remote_branch] -m [message] # 创建远程分支对应本地分支...commit -v # 提交暂存区修改到仓库区,合并到上次修改,并修改上次提交信息 $ git commit --amend -m [message] # 上传本地指定分支到远程仓库 $ git...git remote add [remote-name] [url] # 取回远程仓库变化,并与本地分支合并,(Git only), 若使用 Git-SVN,请查看第三节 $ git pull [

4.4K91

通俗易懂|用好GitSVN ,轻松驾驭版本管理

通常提交代码分为几步: git add从工作区提交到暂存区 git commit从暂存区提交本地仓库 git push或git svn dcommit本地仓库提交到远程仓库 一般来说,记住以下命令,...info # 取回远程仓库所有分支变化 $ git svn fetch # 取回远程仓库当前分支变化,并与本地分支变基合并 $ git svn rebase # 上传当前分支本地仓库到远程仓库...$ git svn dcommit # 拉取新分支,并提交到远程仓库 $ svn copy [remote_branch] [new_remote_branch] -m [message] # 创建远程分支对应本地分支...,合并到上次修改,并修改上次提交信息 $ git commit --amend -m [message] # 上传本地指定分支到远程仓库 $ git push [remote] [remote-branch...] # 取回远程仓库变化,并与本地分支合并,(Git only), 若使用 Git-SVN,请查看第三节 $ git pull [remote] [branch] # 取回远程仓库变化,并与本地分支变基合并

81720

SVNGit 开发实用命令总结

通常提交代码分为几步: git add从工作区提交到暂存区 git commit从暂存区提交本地仓库 git push或git svn dcommit本地仓库提交到远程仓库 一般来说,记住以下命令,...$ git svn info # 取回远程仓库所有分支变化 $ git svn fetch # 取回远程仓库当前分支变化,并与本地分支变基合并git svn rebase # 上传当前分支本地仓库到远程仓库...$ git svn dcommit # 拉取新分支,并提交到远程仓库 $ svn copy [remote_branch] [new_remote_branch] -m [message] # 创建远程分支对应本地分支... commit -v # 提交暂存区修改到仓库区,合并到上次修改,并修改上次提交信息 $ git commit --amend -m [message] # 上传本地指定分支到远程仓库 $ git... git remote add [remote-name] [url] # 取回远程仓库变化,并与本地分支合并,(Git only), 若使用 Git-SVN,请查看第三节 $ git pull [

89451

SVN与Gi较量对比

3.GIT分支SVN分支不同:svn会发生分支遗漏情况,而git可以同一个工作目录下快速在几个分支间切换,很容易发现未被合并分支,简单而快捷合并这些文件。...这个其实是由于本地存在而产生,但可以减少中央库上冗余版本 分支策略:在Git实际开发中分支分离和merge是属于日常操作,开启和合并分支成本相比SVN要小得多:SVN是复制一份代码到分支目录,...info # 取回远程仓库所有分支变化 $ git svn fetch # 取回远程仓库当前分支变化,并与本地分支变基合并 $ git svn rebase # 上传当前分支本地仓库到远程仓库...$ git svn dcommit # 拉取新分支,并提交到远程仓库 $ svn copy [remote_branch] [new_remote_branch] -m [message] # 创建远程分支对应本地分支...] # 取回远程仓库变化,并与本地分支合并,(Git only), 若使用 Git-SVN,请查看第三节 $ git pull [remote] [branch] # 取回远程仓库变化,并与本地分支变基合并

92920

SVN之于GIT理论优势

SVN之于GIT理论优势 ?...目录 使用SVN管理代码SVN客户端:TortoiseSVN服务器:VisualSVN Server管理证书创建用户、用户组创建仓库下载仓库(checkout)提交(push)、更新(pull)查看历史记录本地撤销...、撤销历史提交、回退版本忽略文件(本地变化)创建分支(云端变化)合并分支解决冲突备份SVN托管平台展开 SVN 官网:https://subversion.apache.org/ ?...忽略文件(本地变化) Git通过.gitignore忽略文件,TortoiseSVN通过对文件右键菜单中选择TortoiseSVN > Add to ignore list来实现,tortoise帮你添加进...合并分支Git一样,SVN有好几种合并方式,但多数情况下都是把分支修改合并到主干上来,本文只介绍这一种主要情况:在主干目录右键选择merge,选择第一个选项Merge a range of revisions

1.1K30

git 基本概念

git是什么 git是一个代码版本控制系统,是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况系统 为什么需要git 在开发过程中,经常需要对一个文件进行修改甚至删除,但是我们又希望能够保存这个文件历史记录...在多人开发时,如果需要多人合作开发一个页面,那么修改以及合并非常棘手。容易出现冲突。...如果两个平行宇宙互不干扰,那对现在你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!...image.png 分支特点: 分支之间互不干扰 分支可以合并 为什么要有分支?...如果你要开发一个新功能,需要2周时间,第一周你只能写50%代码,如果此时立即提交,代码没写完,不完整代码影响到别人无法工作。如果等代码写完再提交,代码很容易丢失,风险很大。

32100

Git 入门精讲

我们为什么要学习git? 就当下发展而言,只要你从事开发就一定会接触git。作为最强大分布式版本控制器,gitsvn 有着本质上区别。.../ 分支管理 性能 历史记录 开发 Git Git鼓励频繁地创建和合并分支,使得多个功能可以同时进行开发,而不会相互干扰 使用了一种快照机制,每次提交都会创建一个文件完整副本,操作速度非常快,并且占用存储空间较小...保留了完整代码历史记录,包括每次提交内容、时间和作者等信息 由于分布式特性,开发者可以在自己本地分支上进行自由实验和开发,不会影响到其他人工作 SVN 分支管理相对较为繁琐,需要手动创建和合并分支...@qq.com" 配置标识信息 git status 查看本地文件状态 有红色文件名,意为:工作区有更改,需要暂存以防止丢失 有绿色文件名:意为:暂存区有更改,需要提交本地仓库...暂存 git commit -m “gitignore-config” 提交 git push 推送 你远程仓库中就生成了如下内容 为本项目添加成员,不同角色赋予他不同权限。

3600

Git 全功能介绍

Central and distribution GitSVN 代码历史不同 SVN 代码历史相对比较简单,因为它是中心化,所有人代码都直接提交到某个 repository 上,所以它...Staging:修改后,添加到准备提交缓存状态。 Local repository:本地代码仓库,只对自己代码生效。...这也是和 svn 区别之一,svn commit 之后就直接提交到远程服务器了,git commit 之后只是到本地代码库。...克隆代码到本地开发环境 - Clone $ git clone [REPOSITORY_URL] 对应到了 svn checkout 命令,用于把远程代码克隆到本地,跟 svn 一样,REPOSITORY_URL...merge 时候丢失分支合并 commit,但是对于部分有 history mysophobia 的人来说,它是保持代码提交历史记录干净神器,那个 Merge branch 'xxx' of

92431

版本控制、SVNGit和Github

版本管理就是管理更新历史记录, 它给我们提供了一些在软件开发过程中必不可少功能,例如: 记录一款软件添加或更改源代码过程 回滚到特定阶段,恢复误删除文件 合并多人协作文件等 多人协同,文件传输...两个程序员只要不是修改了同一行程序,SVN 可以通过 update 自动合并修改 但是如果两个程序员修改了同一行程序, SVN 提示文件 conflict,需要手动确定 如何解决?...,用来撤销指定commit # 后者所有变化都将被前者抵消,并且应用到当前分支 $ git revert [commit] # 暂时将未提交变化移除,稍后再移入 $ git stash $ git...git clone 自动帮你把远程仓库下载到本地,不需要再去 git init 了 通过 clone 下来仓库,git 有一个远程仓库地址列表,git 默认会把你 clone 地址起一个别名...:origin 然后你执行 push 时候实际上就是将本地版本提交到 origin 上 在本地进行操作,通过 git commit 形成历史记录 通过 git push 将本地仓库中历史记录提交到远程仓库

86320

初学Git及简单搭建git服务器和客户端

本地提交文件 右键选择Git提交,填写日志信息,不然不能提交然后点提交,这一步是将文件提交到你本地仓库,git中不能提交一个空文件夹,里面一定要有文件才行 第一行默认提交到master分支,也可以选择新建分支...一般选择非fast forward,多生成一个commit 记录,并强制保留分支开发记录,不会丢失分支信息,这对于以后代码进行分析特别有用。 ?...合并 切换回master分支,TortoiseGit选择合并,选择非快进式合并合并后master分支上有了其他分支提交信息 ?...显示日志 红色代表当前分支,绿色代表本地分支,浅×××代表远端分支,×××代表标签 可以看到各版本提交信息,及分支合并信息,还有文件操作状态 ? 颜色可以在设置中更改 ?...可以在每一条信息上右键选择与上一版本比较差异 以上就是TortoiseGit基本操作了 下面是一些命令行操作 svn迁移到git服务器 根据需要,后期将会将svn数据迁移到git上 将svn库克隆到本地

2.3K21

我看还有谁不动Git

合并分支:在开发新功能或修复错误后,需要将分支合并到主分支上,使用 git merge 命令将分支合并到主分支上。 拉取代码:在多人协作开发中,需要将远程仓库中代码拉取到本地进行开发。...6.4、git merge合并代码 Git merge是将两个或多个分支代码合并到一个分支操作。在合并过程中,Git自动尝试将两个分支代码进行比较和合并,以生成一个新合并提交。...:git merge Git尝试自动合并分支代码。...如果Git遇到了冲突,它会提示你手动解决冲突。你需要手动编辑有冲突文件,以解决冲突。 如果合并成功,Git会生成一个新合并提交。在这个提交消息中,Git包含有关合并信息,如何合并分支等等。...需要注意是,在使用Git回退代码时,需要注意不要将未提交修改丢失,并且需要保留历史提交记录。如果你不确定该如何回退代码,可以先创建一个新分支,进行实验,确保不会对主分支造成不可逆影响。

1.5K20

Git学习笔记.

3、GIT分支SVN分支不同:分支SVN中一点不特别,就是版本库中另外一个目录。 4、GIT没有一个全局版本号,而SVN有:目前为止这是跟SVN相比GIT缺少最大一个特征。...git pull origin next:master:取回origin主机next分支,与本地master分支合并。          ...合并分支到当前分支上:git merge (branchname) 合并分支某个文件到当前分支上: git checkout --patch A分支 f 文件   创建新分支并立即到该目录下:git...:git merge master,在更新过程中也行会因为冲突出现报错, 本地解决冲突后提交代码,合并完成。...执行这个命令:git add –i [path] 查看提交历史:  列出历史记录git log 查看某个作者日志: git log --author="John" 历史记录简洁版本:git log

1K50

SVN 迁移到 Git

SVN 迁移到 Git 准备工作 确认所有用户本地修改都签入到服务器, 将 SVN 源代码分支尽可能合并到主干, 已经发布做好归档信息, 并备份 SVN 库。...-no-metadata -A users.txt -t tags -b branches -T trunk Git 克隆 svn 完整历史记录, 可能需要很长时间...转换分支及归档 克隆完成之后, 所有的 svn 归档在 git 看来都是远程分支 (remote tags) , 不是真正 git 归档, 需要将他们手工转换为 git 归档, 然后再删除远程分支,..., git 本地库就有了完整历史记录。...提交Git 库 现在可以放心将代码提交到自己 git 服务器了, 命令如下: git remote add origin git@github.com:userid/project.git git

79640

开发中要知道git知识

版本控制 对于开发过程中版本控制,主要氛围集中式和分布式 集中式(svn) svn因为每次存都是差异 需要硬盘空间相对小一点 可是回滚速度很慢 优点: 代码存放在单一服务器上...便于项目的管理 缺点: 服务器宕机: 员工写代码得不到保障 服务器炸了: 整个项目的历史记录都会丢失 分布式(git) git每次存都是项目的完整快照 需要硬盘空间相对大一点...-d name : 删除空分支 删除已经被合并分支 git branch -D name : 强制删除分支 git分支 git分支本质 分支本质是一个提交对象,所有的分支都会有机会被HEAD所引用...(HEAD一个时刻只会指向一个分支) 当我们有新提交时候 HEAD携带当前持有的分支往前移动 git分支命令 创建分支 : git branch branchname 切换分支...第十步: 项目经理拉取成员修改 做跟踪 克隆才仓库时 自动为master做跟踪 本地没有分支 git checkout --track 远程跟踪分支(remote/分支名) 本地已经创建了分支

13510

聊聊如何从 SVN 迁移源码到 Git 仓库

因此,必须在authors.txt文件中添加丢失用户对应关系,然后重新运行git svn命令即可。...因此,在这种情况下,可以选择找一台机器,运行命令后就不管了直到完成转换为止,或者是选择放弃保存非常老提交历史记录,这样可以加速转换过程,如果转换时只保留部分提交历史的话可以使用以下命令: git svn...该策略主要是为SVNGit双向同步服务,但通常SVN单向转换到Git后都会直接使用Git了,并且禁止SVN提交了,所以还是会对分支和标签内容进行清理以转换为Git分支和标签。...--force 将SVN分支和标签转换Git本地分支和标签后结构如下图所示: ?...配置: idea.project.vcs = "Git" 最后上传到Repo,并根据团队内部约定设置相应权限,通常会有一个检查清单,比如: 设置分支模型 添加分支权限 限定PR合并权限 配置SVN提交通知

2.4K10

GitSVN:区别与选择

本文将深入探讨两者区别、各自优缺点,以及如何根据项目需求选择合适版本控制工具。 一、GitSVN区别 分支管理:Git采用轻量级分支,通过文件快照实现,便于创建、切换和合并。...而SVN每次切换分支需复制整个项目目录,造成空间浪费。 合并操作:Git合并操作相对简单,因为它使用快速三方合并策略。而SVN合并时可能出现大量冲突,需要人工介入解决。...分布式:Git是分布式版本控制系统,允许开发者在本地提交,再选择性地推送到远程仓库。SVN则是集中式系统,所有操作需在中央服务器进行。...SVN在处理大型项目时可能显得缓慢。 二、Git优缺点 优点: 高效分支管理:支持快速创建、切换和合并分支,有助于提高团队协作效率。...缺点: 学习曲线陡峭:对于初学者来说,Git命令行操作可能较复杂,需要时间适应。 分支冲突:当多个团队成员修改同一部分代码时,合并可能产生冲突,需人工介入解决。

64610

git入门篇(1)--初识Gi

那我们针对刚才说过SVN缺点来说明为什么我们要采用Git。...Git如何让做好备份工作 我们刚才一直在说Git本地创建版本库,那版本库存储在本地磁盘,本地磁盘出问题我所有版本库不就直接全部丢失了。...Git优势 GitSvn 分支实现机制完全不同,这也直接导致了 SVN分支合并中困难重重。...当我们使用SVN中在一个分支上工作数周或几个月之后,主干修改也同时在进行着,两条线开发区别巨大,当你想合并分支回主干,可能因为太多冲突,已经无法轻易合并分支和主干修改。...当最后功能完成最后需要合并分支合并别人修改时候,最好创建一个临时分支用来合并合并完成再fatch到自己分支Git缺点 中文完整Git学习资料较少。 学习周期比较长。

49920

Git 相关问题

SVN 是集中版本控制工具 2.它属于第3代版本控制工具 2.它属于第2代版本控制工具 3.客户端可以在其本地系统上克隆整个存储库 3.版本历史记录存储在服务器端存储库中 4.即使离线也可以提交 4.只允许在线提交...每个开发人员都可以“克隆”我在图中用“Local repository”标注存储库副本,并且在他硬盘驱动器上具有项目的完整历史记录,因此当服务器中断时,你需要所有恢复数据都在你队友本地 Git...git pull 命令从中央存储库中提取特定分支新更改或提交,并更新本地存储库中目标分支git fetch 也用于相同目的,但它工作方式略有不同。...Q12. git config 功能是什么? 首先说明为什么我们需要 git config。 git 使用你用户名将提交与身份相关联。...git branch –no-merged 它列出了尚未合并分支。 Q20. 什么是SubGit? SubGit 是将 SVNGit迁移工具。

2K10
领券