目前公司使用的是 svn,但我比较依赖 git 的本地仓库的使用,所以我使用了 git 的 git-svn 来兼容我的需求
我整理了一份使用文档,并使用了几个月了(顺便跟大家分享下):
# Git svn
## clone 一个 svn 项目
```shell
git svn clone svn://xxx.xx/code
```
可选参数:
```shell
--no-metadata
```
使用此参数时,拉取下来的仓库将会变成独立仓库,之前的提交信息都在,但之后的所有与 svn 远程仓库的相关`拉取`和`提交`都不会成功
## 提交
提交分为两个步骤,首先将暂存区文件提交到 git 本地仓库,然后再上传到 svn 远程仓库
1. git 提交
```shell
git commit -m"git 提交"
```
2. git-svn 提交
`dcommit`会将 git repo 当前 branch 与远程 svn repo 中的差异的 git commit 都提交到 svn repo ,并为每个 git commit 生成一个对应的 svn revision 。这和”git push”很类似。
```shell
git svn dcommit
```
## 从 svn repo 拉取最新代码变更
```shell
git svn rebase
```
但是, 有些使用上的便利性问题想请教下,每次我使用 IDEA 的`commit`功能提交到本地仓库后,都需要再打开一次终端并手动执行一次`git svn dcommit`,这个步骤很容易忘记
我期望能在 IEDA`commit`动作后, 可以设置一个按钮或者脚本,绑定到快捷键,用来代替上述需要打开终端执行`dcommit`的操作, 不知道大家有没有解决过类似的需求
还有拉代码的操作也需要在终端输入`git svn rebase`来完成, 这个动作我也期望能不打开终端就能完成 |