歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> git -svn 在Ubuntu下的安裝與應用

git -svn 在Ubuntu下的安裝與應用

日期:2017/2/28 16:01:38   编辑:Linux教程

Git是一款分布式版本管理工具,由linux的締造者Linus Torvalds設計並實現,具體關於Git的介紹和使用方法可參見其官方站。

這裡要說的是Git是如何做到既可以管理好本地代碼又可以與已有的SVN中心庫進行同步的。

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的臨時文件,就寫:

.*.swp

Copyright © Linux教程網 All Rights Reserved