Git 管理从 Svn 拉取的代码

1,522 阅读2分钟

Git-Svn 注意事项

背景:鉴于公司还在使用 Svn 进行代码仓库管理(有无法切换至 Git 的理由),组内的前端团队计划自己用 Git 进行代码的管理(好处太多了 ^_^),然后统一提交至 Svn。在使用中存在一些问题,需特别注意,具体整理如下。

问题一、svn update 时,没有将 .git 文件忽略

影响 1:通过 TortoiseSVN 进行 commit 时,此时 unversioned files 存在大量的 .git 下的文件。对于新增的文件很容易被漏掉,具体如下图:

解决方案: 通过 TortoiseSVN 软件将 .git 进行忽略即可,具体如下图:
解决后的效果如下图:

问题二、svn updatesvn commit 后,.svn/wc.db 文件都会变动,无论 svn 仓库是否有新的提交

影响 1:svn 仓库没有新的提交,此时 svn update 后,本地 .svn/wc.db 变动,此时 git 就必须进行提交,增加无用的 git 提交日志 :scream: :scream:。具体如下图(变动的仅仅是 .svn/wc.db 文件): vscode 截图

terminal 截图
git log 提交日志截图
影响 2:svn commit 后,.svn 目录下相应的文件也会有变动 :rage: :rage: ,这些变动无疑又增加了干扰信息,没有半毛意义,再说我也看不懂呀 :joy: :joy: :
影响 3:.svn/ 里面的文件有变动时,此时切换分支,新分支下 wc.db 也必须变动,否则分支都切不过去 :clap: :clap:,再次增加了 git 的提交日志 影响 4:存在.svn/时,提交时,git 会将 .svn 中文本文件的换行符转化为 CRLF。又是无用的信息 :angry:
解决方案: 增加 .gitignore 文件,添加对 .svn 文件的忽略即可,最后提交至 git 仓库没有 .svn 文件夹,具体如下图: