歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux配置 >> 使用SVN的方式來訪問Github

使用SVN的方式來訪問Github

日期:2017/2/27 14:59:31   编辑:Linux配置
你的開發團隊是否最近改用 Github 了嗎?可能團隊裡部分人對使用 git 非常興奮,但另外一些熟悉 Subversion 的人卻很不爽?好消息是現在你可以通過 Git 和 Subversion (SVN) 的客戶端來訪問 Github 的資料庫。

這篇文章大概介紹了如何利用 Subversion 客戶端來更好的使用 GitHub 流程。

Github 流程中每次功能提交和bug修復都會通過以下的步驟來完成:
  1. 從最新的 master 分支中創建一個 topic 分支
  2. 在你准備好要合並時在 topic 分支中提交
  3. 通過 Pull Request 將 topic 分支拉到 master 分支,討論變更,更多提交等等,知道團隊准備好合並
  4. 合並 Pull Request 然後發布

開始


首先要做的就是 svn checkout。Git 的 clone 讓工作目錄和資源庫文件分離開來,工作目錄在一個時間只有一個分支。而 svn checkout 是不同的,它在工作目錄中混有資源庫數據,因此你 checkout 的每個分支、標簽都有相應的工作目錄。資源庫包含大量的分支和標簽,如果把所有數據都 checkout 出來非常費帶寬,你應該只檢出某部分數據。

GitHub 通過 HTTP 協議來支持 git 和 svn 的客戶端,你可以通過 HTTP clone URL 來浏覽資源庫中的文件。
現在可以准備 checkout 了:

1. 首先我們 checkout 一個資源庫,並不下載任何文件:
$ svn co --depth empty https://github.com/widgetmakers/gizmo
Checked out revision 1.
$ cd gizmo

2. 然後獲取 trunk 分支,svn 中的 trunk 分支相當於 git 裡的 HEAD 分支(通常是 master)
$ svn up trunk
A    trunk
A    trunk/README.md
A    trunk/gizmo.rb
Updated to revision 1.

3. 獲取 branches 目錄的空 checkout:
$ svn up --depth empty branches
Updated to revision 1.

進入 Git 流程

首先是創建一個 topic 分支,在你的 svn 客戶端中,確保 master 是當前更新的 trunk,然後使用 svn copy 來創建分支:
$ svn up trunk
At revision 1.
$ svn copy trunk branches/more_awesome
A         branches/more_awesome
$ svn commit -m 'Added more_awesome topic branch'
Adding         branches/more_awesome

Committed revision 2.
然後你可以通過 web 界面或者 git 客戶端看到一個新的分支:
$ git fetch
From https://github.com/widgetville/gizmo
 * [new branch]      more_awesome -> origin/more_awesome


編寫一些代碼

添加一些功能,修復一些 bug,然後提交,就像你平時使用 svn 一樣:編輯文件,然後 svn commit 來提交變化。
$ svn status
M       gizmo.rb
$ svn commit -m 'Guard against known problems'
Sending        more_awesome/gizmo.rb
Transmitting file data .
Committed revision 3.

$ svn status
?       test
$ svn add test
A         test
A         test/gizmo_test.rb
$ svn commit -m 'Test coverage for problems'
Adding         more_awesome/test
Adding         more_awesome/test/gizmo_test.rb
Transmitting file data .
Committed revision 4.

討論、開發、發布

當你已經准備好要將所做的改動與團隊其他人分享時,通過 web 界面來做一個 Pull Request:

1. 進入 topic 分支,點擊 Pull Request 按鈕:
2. 填寫描述信息
3. 和團隊成員討論變更的內容,這個討論是以 Pull Request 裡的評論方式進行的
4. 合並 Pull Request. pull request 頁面會展示這些變化是否已經合並。你只需要點擊按鈕即可完成,如果有沖突你需要先解決。
現在你的改動已經合並到了 master 分支,你可通過 svn update 來獲取這些改動,然後開始下一階段工作。
轉載地址:http://www.oschina.net/question/12_59181
Copyright © Linux教程網 All Rights Reserved