git-svn 的使用
- 从 SVN 克隆代码
git svn clone https://192.168.1.3/svn/project-name
- git-svn 初始化
git svn init (svn remote url)git svn fetch 或者 git svn fetch -r 1342:HEAD (只从其中某个版本开始进行 fetch )
- 获取最新代码
git checkout mastergit svn rebase
- 创建自己的分支
git branch work
- 修改代码后提交
git commit -a -m "message"日常修改和提交git checkout -b workgit commit -a
- 获取最新代码后更新自己的分支
git checkout workgit rebase master当 rebase 出现 permission denied 时,如$ git rebase master
First, rewinding head to replay your work on top of it...
error: cannot stat 'bin/release/sdk': Permission denied
error: cannot stat 'bin/release/sdk': Permission denied
could not detach HEAD可以尝试重新启动 explorer 进程,再次执行 git rebase master
- 合并主分支
在 git-svn 环境下,推荐使用 rebase 方式merge 之后保留了被 merge 分支的历史状态,而 rebase 则是将两个分支拼成同一个分支,版本历史中不再单独显示被合并的分支。
- 解决冲突
编辑冲突后保存git add 冲突文件git rebase --continuegit svn dcommit
- 推送到远程 SVN 服务器
git svn dcommit
- 添加远程 GIT 服务器
git remote add origin (git remote url)
- 推送到远程 GIT 服务器
git push origin --all
- 设置忽略文件
git svn show-ignore 显示 SVN 已有的忽略内容git svn show-ignore > .git/info/exclude 不会提交 .gitignore 文件到 svngit svn create-ignore 自动建立对应的 .gitignore 文件,会在下次提交到 svn