ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

Subversion クライアントのサポート

GitHub リポジトリは、Git および Subversion (SVN) クライアントの両方からアクセスできます。 この記事では、GitHub 上での Subversion の使用および経験する可能性のあるいくつかの主な問題を取り上げます。

ここには以下の内容があります:

GitHubは、HTTPS プロコトルを介して Subversion クライアントをサポートします。 GitHub に svn コマンドを伝えるには、Subversion ブリッジを使います。

GitHub 上でサポートされる Subversion の機能

チェックアウト

最初に Subversion チェックアウトを行いましょう。 Git クローンは、ワーキングディレクトリ (ファイルを編集する場所) をリポジトリデータと分けたままにします。そのため、この時点でワーキングディレクトリにはブランチが 1 つしかありません。

Subversion チェックアウトは違います。ワーキングディレクトリのリポジトリデータをミックスします。そのため、チェックアウトしたブランチおよびタグごとにワーキングディレクトリがあります。 たくさんのブランチとタグがあるリポジトリには、すべてをチェックアウトすることは帯域障害になる可能性があります。よって、部分的なチェックアウトから始めた方がよいです。

  1. GitHubで、リポジトリのメインページにアクセスしてください。

  2. Above the list of files, click Code.

    "Code" button

  3. To clone the repository using HTTPS, under "Clone with HTTPS", click . To clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click Use SSH, then click . To clone a repository using GitHub CLI, click Use GitHub CLI, then click .

    The clipboard icon for copying the URL to clone a repository

    The clipboard icon for copying the URL to clone a repository with GitHub CLI

  4. リポジトリのエンプティチェックアウトをします:

    $ svn co --depth empty https://github.com/user/repo
    > Checked out revision 1.
    $ cd repo
  5. trunk ブランチを取得します。 The Subversion bridge maps trunk to the Git HEAD branch.

    $ svn up trunk
    > A    trunk
    > A    trunk/README.md
    > A    trunk/gizmo.rb
    > Updated to revision 1.
  6. branches ディレクトリのエンプティチェックアウトを取得します。 ここは、すべての HEAD でないブランチが存在し、かつ、フィーチャブランチを作成する場所です。

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

ブランチを作成する

Subversion ブリッジを使って GitHub にブランチを作成することもできます。

From your svn client, make sure the default branch is current by updating trunk:

$ svn up trunk
> At revision 1.

次に、svn copy を使用して新しいブランチを作成できます:

$ 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.

リポジトリのブランチドロップダウンに新しいブランチが存在することを確認できます:

ブランチスナップショット

コマンドラインで新しいブランチを確認することもできます:

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

Subversion にコミットを作成する

いくつかの機能を追加しバグを修正した後は、GitHub にこれらの変更をコミットしましょう。 この手順は、あなたが慣れ親しんだ Subversion と非常に似ています。 ファイルを編集してから、以下のように 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.

ブランチ間の切り替え

ブランチをスイッチするには、trunk のチェックアウトから始めることをお勧めします。

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

次に、他のブランチにスイッチします:

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

Subversion コミットのために Git コミット SHA を検索する

Github の Subversion サーバーは、Subversion コミットのために Git コミット SHA を開示します。

コミット SHA を表示するには、git-commit のバージョンのないリモートプロパティを要求する必要があります。

$ svn propget git-commit --revprop -r HEAD https://github.com/user/repo
05fcc584ed53d7b0c92e116cb7e64d198b13c4e3

このコミット SHA によって、たとえば、GitHub 上の関連 Git コミットを検索できます。

参考リンク

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.