SVN项目迁移到GIT并保留commit记录 && 获取Git提交计数


一、SVN项目迁移到GIT并保留commit记录

1. 编辑userinfo.txt

格式为svn_username=git_username,提交记录里出现的所有svn_user都要有对应git_user

svn用户 = GitLab用户<GitLab用户邮箱>

svn_user1 = git_user1 <git_user1@xxx.com>
svn_user2 = git_user2 <git_user2@xxx.com>

2. 从svn拉取代码

配置git信息:

git config --global user.name "YOUR_USERNAME"
git config --global user.email "YOUR_EMAIL"

查看配置:

git config --list

拉取代码(项目越大,花费时间越多):

git svn clone -r 282506:HEAD svn_url --no-metadata -A userinfo_path local_path
  • -r 282506:HEAD 代表从svn的282506版本到最新版本的提交记录,避免从第一个版本拉取数据量过大,操作耗时高。 如果需要拉取所有记录,可去除 -r 282506:HEAD
  • svn_url 你的svn项目地址
  • –no-metadata 防止git拉取无用的SVN附加信息
  • local_path 为git clone下来的svn目录,会自动新建
  • -A userinfo_path 你的userinfo.txt路径

3. 提交代码到git

a. 使用http传输:项目总大小不大于50M

cd localpath
git remote add origin https://gitee.com/xxx/xxx.git

查看关联情况:

git remote -v

如果关联有误,可以删除关联:

git remote rm origin

b. 使用ssh传输:项目总大小大于50M

生成公钥:

ssh-keygen –t rsa –C "YOUR_EMAIL"
cat ~/.ssh/id_rsa.pub

将生成的公钥,复制到你的gitee/gitlab ssh公钥设置

测试是否能用ssh登录git:

ssh -T git@gitee.com

提交代码:

git remote set-url origin git@gitee.com:xxxx/xxx.git

4. push代码到远端

git push -u origin master

5.操作实例

git config --global user.name "zhanghan"
git config --global user.email "zhanghan@gdyd.com"
git svn clone --no-metadata -A userinfo.txt https://10.66.0.1/eip-ng/branches/eip-docx docx
cd docx
ssh-keygen –t rsa –C "zhanghan@gdyd.com"
cat ~/.ssh/id_rsa.pub
在gitee官网添加ssh公钥
git remote set-url origin git@gitee.com:gdydit_eip/docx.git
git push -u origin master

二、获取Git提交计数

获取Git存储库的提交次数,有点像SVN版本号,
目标是将其用作唯一的,递增的内部版本号。

git log --pretty=format:'' | wc -l
要获取所有分支的提交计数:
git rev-list --all --count

要获取修订的提交计数(HEAD,,master提交哈希):
git rev-list --count <revision>
返回按提交者分组的提交计数:
git shortlog -s

输出:
14 John lennon
9  Janis Joplin

三、参考文献

SVN项目迁移到GIT并保留commit记录
如何获取Git提交计数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值