git-svn 的使用

时间:2023-03-09 15:10:46
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 master
git svn rebase
  • 创建自己的分支
git branch work
  • 修改代码后提交
git commit -a -m "message"
日常修改和提交
git checkout -b work
git commit -a
  • 获取最新代码后更新自己的分支
git checkout work
git 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 --continue
git 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 文件到 svn
git svn create-ignore 自动建立对应的 .gitignore 文件,会在下次提交到 svn