git-svn使用以及问题解决
2014-12-19 10:54
465 查看
之前的项目都是使用SVN,今天在git-svn上工作时,出了一点问题,记录一下,以便将来查询。
使用过程:
1、从svn clone出项目,加上-s参数以标记识别svn标准的目录分支结构,同时通过show-ignore设置git库的exclude属性:
Java代码
git svn clone -s https://svn.xxx.com/svn/xxx
git svn show-ignore >> .git/info/exclude
2、建立本地工作分支,开始工作:
Java代码
git checkout -b work
修改内容直接commit,加上-a开头以省略git add操作:
Java代码
git commit -a
3、提交回svn的过程:
Java代码
git checkout master
git merge work
git svn rebase
git svn dcommit
在今天工作中,我提交回svn的方式是:
Java代码
git checkout master
git svn rebase
git merge work
结果svn rebase时在master分支上产生了一个新的node,这样merge时就不能快速合并,出现了冲突,修复后,在dcommit时出错,出现N个孤 立节点。因为不熟悉,就checkout出work分支,进行了dcommit,然后重新生成一次git库。
(7/14更新)
今天解决了这个问题,参考以下网址:https://wiki.bnl.gov/dayabay/index.php?title=Synchronizing_Repositories。
以下重新描述一下问题和解决方法:
1、在执行git svn dcommit时,出现如下错误:
Committing to https://svn.xxx.com/svn/projects/trunk ...
提交时发生合并冲突: 您的文件或目录”test/functional/xxx_controller_test.rb“可能已经过时: The version resource does not correspond to the resource within the transaction. Either the requested version resource is out of date (needs to be updated), or the requested version resource
is newer than the transaction root (restart the commit). at /usr/bin/git-svn line 450
2、这时,重新执行以下步骤即可:
Java代码
git svn fetch
git svn rebase
git svn dcommit
但我在执行git svn rebase时,又出现冲突,这个时候,只需要手工合并掉冲突,并重新add一下:
Java代码
git add .
然后,再执行:
Java代码
git rebase --continue
如果报告说没有修改内容,则换成执行:
Java代码
git rebase --skip
完成rebase过程,这时就可以git svn dcommit了。
这样,总算解决了svn历史冲突问题,不用象前面那样笨笨的重新git-svn clone.
如果不小心误删了文件或者文件夹
用git checkout可以还原
比如说 不小心删除了frameworks文件夹
在路径~/code/qcom/8x25/common之下
输入命令checkout frameworks 就可以恢复了
使用过程:
1、从svn clone出项目,加上-s参数以标记识别svn标准的目录分支结构,同时通过show-ignore设置git库的exclude属性:
Java代码
git svn clone -s https://svn.xxx.com/svn/xxx
git svn show-ignore >> .git/info/exclude
2、建立本地工作分支,开始工作:
Java代码
git checkout -b work
修改内容直接commit,加上-a开头以省略git add操作:
Java代码
git commit -a
3、提交回svn的过程:
Java代码
git checkout master
git merge work
git svn rebase
git svn dcommit
在今天工作中,我提交回svn的方式是:
Java代码
git checkout master
git svn rebase
git merge work
结果svn rebase时在master分支上产生了一个新的node,这样merge时就不能快速合并,出现了冲突,修复后,在dcommit时出错,出现N个孤 立节点。因为不熟悉,就checkout出work分支,进行了dcommit,然后重新生成一次git库。
(7/14更新)
今天解决了这个问题,参考以下网址:https://wiki.bnl.gov/dayabay/index.php?title=Synchronizing_Repositories。
以下重新描述一下问题和解决方法:
1、在执行git svn dcommit时,出现如下错误:
Committing to https://svn.xxx.com/svn/projects/trunk ...
提交时发生合并冲突: 您的文件或目录”test/functional/xxx_controller_test.rb“可能已经过时: The version resource does not correspond to the resource within the transaction. Either the requested version resource is out of date (needs to be updated), or the requested version resource
is newer than the transaction root (restart the commit). at /usr/bin/git-svn line 450
2、这时,重新执行以下步骤即可:
Java代码
git svn fetch
git svn rebase
git svn dcommit
但我在执行git svn rebase时,又出现冲突,这个时候,只需要手工合并掉冲突,并重新add一下:
Java代码
git add .
然后,再执行:
Java代码
git rebase --continue
如果报告说没有修改内容,则换成执行:
Java代码
git rebase --skip
完成rebase过程,这时就可以git svn dcommit了。
这样,总算解决了svn历史冲突问题,不用象前面那样笨笨的重新git-svn clone.
如果不小心误删了文件或者文件夹
用git checkout可以还原
比如说 不小心删除了frameworks文件夹
在路径~/code/qcom/8x25/common之下
输入命令checkout frameworks 就可以恢复了
相关文章推荐
- 添加码云上的SSH公钥以及解决使用命令git pull/push 输入密码问题
- Git 使用过程中遇到的问题以及解决办法
- 如何在Idea中使用svn,以及代码更新报错的问题解决
- [SVN]Xcode中使用SVN问题以及提交解决冲突问题
- git-svn使用方式及使用中的问题(已解决)
- 使用git将项目上传到github 以及解决“git commit -m”初始化问题
- can't resolve host-使用GIT 请求远程仓库时出现的问题以及解决办法
- git 首次使用以及error: failed to push some refs to ****问题的解决
- Mac重置Root密码以及Xcode更新后git,svn无法使用的解决办法
- 完美解决无法使用ctrl+shift以及ctrl+space切换输入法的问题
- 使用java mail 包收发中文邮件的编码,解码问题以及解决方法
- 完美解决无法使用ctrl+shift以及ctrl+space切换输入法的问题
- 在SharePoint中服务器端使用Word编程模型转换PDF遇到的问题以及解决方法
- 解决cofs在colinux下使用git的权限问题
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- linux下svn服务器搭建以及相关问题解决方案
- 打开新窗口的window.open使用方法以及最大化等问题解决方法汇总
- HessianCSharp 1.3.3版本前使用泛型以及接口interface继承问题解决方案!!(实例代码)
- 使用ArcCatalog删除某个字段的问题以及解决方法
- 打开新窗口的window.open使用方法以及最大化等问题解决方法汇总