--- git-svn 使用環境和步驟


 <-> 准備工作:

   先了解一下什么是git庫了,和svn有很大用法的不同, svn是下載副本,更新副本,該本地更改提交到中心服務器的方式,git是各自先clone別人(或者中心服務器的)整個git庫(或者svn的庫,如本文說講的東西就是),clone完了之后你就和他有相同的整個git庫了,克隆之意真是太准確了,之后自己再更改代碼就只是提交到自己的本地庫里面去了,如果必要再push到git中心服務器上(或者本文提到的svn的庫里面)

git的本地庫只能在linux下建立的,在公司里面一般是在大家共享的服務器上面(如果服務器上沒有或叫管理員裝上git)

另外還有裝上git-svn這個軟件包,他是給遠程svn的倉庫,生產本地git庫,把本地庫上的更改提交到svn上的工具


如果你自己在家里或公司,有linux的桌面機子那一切都是你自己的工作了

 

如果系統是Linux Ubuntu,按照命令是:

       sudo apt-get install git git-core

       sudo apt-get install git-svn

 

<二>

針對A 情形:

     就是使用者在svn服務器只有一個工作分支叫trunk或者其他什么名字名字, 這也是幾個人同時工作在一個小的項目,

提交代碼到svn服務器的情況了。

 

1. $mkdir TestGit

    $cd TestGit

 

    $git svn clone svn://your_ip_address:10000/TestGit/abc

    在當前目錄下就有Trunk目錄,這個目錄下會有個.git目錄表示他是git的倉庫實體目錄,外面的可見目錄都是這個git倉庫被checkout出來的當前分支。

2. $git branch -a
   * master           ------   對應本地git master
   remotes/git-svn ----- 對應到遠程的svn的svn://your_ip_address:10000/TestGit/abc

(*表示這個是當前分支)

 3. $git svn rebase 把svn上的其他人的更新拉進來

針對B情形:

   就是svn服務器上有很多分鍾情況,現在稍微大一點的項目和不止一種產品也都有這個情況了,比如量產的產品都有分支出去,保持穩定

如果svn服務器使用的是標准的目錄結構,例如 trunk,tags,branches

   git svn clone -s svn://localhost:10000/TestGit 

如果不是那么不是標准的目錄結構,你就得自己指明主干分支和標簽的位置了

  git-svn clone https://omap3emu.googlecode.com/svn -T your_trunk -b your_branches -t your_tags

其中your_trunk yours_branches your_tags 分別是你的自己定義的主干,分支和標簽目錄。  

1. $git svn clone -s svn://localhost:10000/TestGit 

    $cd TestGit

    $git branch -a

    * master
    remotes/AAA
    remotes/BBB
    remotes/tags/tag20120713
    remotes/trunk

你可以看到在本地庫里面包括了很多和svn服務器上的分支和標簽對應的本地branch, 其中master還是和上面意思一樣本地的工作分支。

 2. 切換分支

     git checkout -b local/forBBB BBB 新建本地分支forBBB 並讓它和遠程分支BBB對應

    自然master分支是和遠程的trunk對應

 

 <三>常用命令

   這是目前我自己在使用過程中遇到的需要命令:

     1. git svn info   查詢當前分支和svn的那個目錄分支節點關聯,這和原來在svn副本里面 svn info 里面相同

     2. git svn branch -a 查詢當前目錄下的git庫有多少分支,理論上它是純git的命令,但是本地庫是由git svn clone 生成,所以我們有必要在clone后看看是否和遠程的倉庫的分支標簽都對應上了! 

     3. git svn rebase  把svn上的其他人的更新拉進來, 和原來的svn update相同(rebase這個用詞用在這里有點怪異,至少和git rebase的意思有很大的出入)

     4. git svn dcommit 把當前分支的改動提交到svn的服務器上,事先先在這個命令的后面加個參數-n(--dry-run)看看是否能順利提交。

     5. git svn dcommit -n 也經常用來核對當前處於對應哪給遠程svn分支。

<四> 補充:下面是在你的具體需要時候使用的,如果不知道無所謂的

    1.  -r250:HEAD : 在上面clone 倉庫的時候加上這個參數會讓你從svn的250版本開始記錄版本更改信息(默認是全部的更改版本-r1:HEAD)

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM