Contents
  1. 1. Foward
  2. 2. Checkout
  3. 3. 创建分支
  4. 4. 提交修改
  5. 5. 切换分支
  6. 6. 一个有趣的网站

寄人篱下, 生活所迫

Foward

  1. 此文写给能使用git, 但是当下需要非常迫切使用SVN的开发人员
  2. 本文默认你已经能够掌握git协议相关知识, 否则本文涉及到的相关术语看起来会造成一定的困惑.
  3. 既然是快速入门, 文本尽量用git与SVN作对比进行说明(并没有
  4. 本文远程仓库使用GitHub, 实际结合个人需要使用

Checkout

首先你要做的事情是Subversion(以下简称svn) checkout。由于Git clones将工作目录(你编辑文件的地方)与存储库数据(.git)分开,因此在工作目录中一次只能有一个分支。

svn checkouts是不同的:它们将工作目录中的存储库数据混合在一起,因此对于checkout的每个分支和标记都有一个工作目录。对于具有许多分支和标签的存储库,检查所有文件可能是一个负担,因此你应该从部分checkout开始。

1.在GitHub上找到repository的导航主页.

2.在repository名称的下面, 点击Clone or download.

3.选择Clone with HTTPS, 复制其中的链接.

4.在本地repository中创建一个空的checkout:

1
2
3
$ svn co --depth empty https://github.com/user/repo
Checked out revision 1.
$ cd repo

5.获取trunk分支. SVN会把trunk桥接映射到Git HEAD branch(通常指master).

1
2
3
4
5
$ svn up trunk
A trunk
A trunk/README.md
A trunk/gizmo.rb
Updated to revision 1.

6.在branches路径下获取空的checkout. 这是所有非HEAD分支存在的地方,你将在这里做feature branches.

1
2
$ svn up --depth empty branches
Updated to revision 1.

my ex:

1
2
3
4
5
6
7
8
9
10
$ tree
.
├── branches
│   └── more_awesome
│   ├── LICENSE
│   ├── README.md
│   └── test
└── trunk
├── LICENSE
└── README.md

创建分支

你也可以使用Subversion桥接到GitHub创建分支。

从svn客户端,通过更新确保master是最新的trunk:

1
2
$ svn up trunk
At revision 1.

接下来,你可以使用svn copy创建新分支:

1
2
3
4
5
6
$ 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.

现在你能确认新分支能在github的branch下拉栏里看到:

你可以确认新分支存在于存储库的分支下拉列表中:

1
2
3
git fetch
From https://github.com/user/repo/
* [new branch] more_awesome -> origin/more_awesome

提交修改

在添加了一些功能并修复了一些错误之后,你需要将这些更改提交给GitHub。这就和你平时使用svn一样。编辑文件,并使用svn commit记录你的更改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ 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.

切换分支

要在分支机构之间切换,你可能需要首先检查trunk的内容:

1
$ svn co --depth empty https://github.com/user/repo/trunk

然后,你可以切换到另一个分支:

1
$ svn switch https://github.com/user/repo/branches/more_awesome

一个有趣的网站

Contents
  1. 1. Foward
  2. 2. Checkout
  3. 3. 创建分支
  4. 4. 提交修改
  5. 5. 切换分支
  6. 6. 一个有趣的网站