您的位置:首页 > 其它

git -svn 在Ubuntu下的安装与应用

2014-07-03 16:43 357 查看
Git是一款分布式版本管理工具,由linux的缔造者Linus Torvalds设计并实现,具体关于Git的介绍和使用方法可参见其官方站。

这里要说的是Git是如何做到既可以管理好本地代码又可以与已有的SVN中心库进行同步的。

一般自己使用: git svn rebase

 git add .

git  commit -m "xxx"

git svn dcommit

1、安装

git-svn默认包含在Git的安装包中,不过在Ubuntu中,git-svn是作为一个独立的Package需要额外安装的

sudo apt-get install git-svn

环境变量配置:

将/usr/lib/git-core配置到你的PATH环境变量中

2、检出

git-svn clone命令完成这个操作

git svn clone http://192.168.18.80/Mar/trunk
检出分步操作:功能与上面步骤相同

建立本地目录, 比如假定是myproj

$mkdir myproj

$cd myproj

初始化并获取某个版本

$git svn init  http://192.168.18.80/Mar/trunk 
$git svn fetch -r xxxxx       

获取某个版本,假如不指定版本,它就会根据svn记录一级一级获取

3、更新

git svn rebase 注意这里用的是rebase,而不是update。

4、查看日志

git svn log

加上-v选项,还可以提供每次commit操作涉及的相关文件的详细信息。

5、提交

将本地代码同步到Svn服务器。如果要同步到git服务器,用git命令

git svn dcommit

这个命令会将你在本地使用git commit提交到本地代码库的所有更改逐一提交到svn库中。

加上-n选项,则该命令不会真正执行commit到svn的操作,而是会显示会有哪些本地变动将被commit到svn服务器。

git-svn dcommit似乎不能单独提交某个本地版本的修改,而是一次批量提交所有与svn中心版本库的差异。

6、解决冲突

例如冲突文件为foo.c

使用git-svn rebase获取svn服务器上的最新文件,导致冲突,

不过此时svn版本信息已经添加到本地git库中(通过git log可以查看)

打开foo.c,修改代码,解决冲突;

执行git rebase --continue,git提示我:

    You must edit all merge conflicts and then

    mark them as resolved using git add

执行git add foo.c,告知git已完成冲突解决;

再次执行git rebase --continue,提示"Applying: git v1",此时"git v1"版本又一次成功加入本地版本库,你可通过git log查看;

执行git-svn dcommit将foo.c的改动同步到svn中心库,到此算是完成一次冲突解决。

git比较智能,会提示你解决问题的方法,所以遇到问题时注意看提示文档。

7、设置忽略文件

要忽略某些文件, 需要首先执行如下命令:

git config --global core.excludesfile ~/.gitignore

然后编辑 vi ~/.gitignore.

例如: 需要忽略vim的临时文件,就写:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: