Git’s collaboration workflow is much different. Instead of differentiating between working copies and the central repository, Git gives each developer their own local copy of the entire repository. Changes are committed to this local repository instead of a central one. To share updates with other developers, you need to push these local changes to a public Git repository on a server. Then, the other developers can pull your new commits from the public repo into their own local repositories.

Git移行: 集中型SVN開発 vs. 分散型 Git 開発

Giving each developer their own complete repository is the heart of distributed version control, and it opens up a wide array of potential workflows. You can read more about these workflows from our Git Workflows section.

So far, you’ve only been working with a local Git repository. This page explains how to push this local repo to a public repository hosted on Bitbucket. Sharing the Git repository during the migration allows your team to experiment with Git commands without affecting their active SVN development. Until you’re ready to make the switch, it’s very important to treat the shared Git repositories as read-only. All development should continue to be committed to the original SVN repository.

Bitbucket アカウントの作成

If you don’t already have a Bitbucket account, you’ll need to create one. Hosting is free for up to 5 users, so you can start experimenting with new Git workflows right away.

Bitbucket リポジトリの作成

次に、Bitbucket リポジトリを作成する必要があります。Bitbucket では、ホストされたリポジトリを簡便に管理するためのウェブインターフェイスを提供しています。ログイン後に Create repository ボタンをクリックするだけでリポジトリを作成することができます。

Git移行: リポジトリの作成

In the resulting form, add a name and description for your repository. If your project is private, keep the Access level option checked so that only designated developers are allowed to clone it. For the Forking field, use Allow only private forks. Use Git for the Repository type, select any project management tools you want to use, and select the primary programming language of your project in the Language field.

Git移行: Bitbucketリポジトリの作成

To create the hosted repository, submit the form by clicking the Create repository button. After your repository is set up, you’ll see a Next steps page that describes some useful commands for importing an existing project. The rest of this page will walk you through those instructions step-by-step.

origin リモートの追加

To make it easier to push commits from your local Git repository to the Bitbucket repository you just created, you should record the Bitbucket repo’s URL in a remote. A remote is just a convenient shortcut for a URL. Technically, you can use anything you like for the shortcut, but if the remote repository serves as the official codebase for the project, it’s conventionally referred to as origin. Run the following in your local Git repository to add your new Bitbucket repository as the origin remote.

git remote add origin https://<user><user>/<repo>.git

Be sure to change <user> to your Bitbucket username and <repo> to the name of the Bitbucket repository. You should also be able to copy and paste the complete URL from the Bitbucket web interface.

GIt移行: origin リモートの追加

After running the above command, you can use origin in other Git commands to refer to your Bitbucket repository.

ローカルリポジトリの Bitbucket へのプッシュ

次に、ローカル Git リポジトリの内容を Bitbucket リポジトリに取り込まなければなりません。この操作は「プッシュ」と呼ばれ、これを行うには次のコマンドを実行します:

git push -u origin --all

The -u option tells Git to track the upstream branches. This enables Git to tell you if the remote repo’s commit history is ahead or behind your local ones. The --all option pushes all of the local branches to the remote repository.

You also need to push your local tags to the Bitbucket repository with the --tags option:

git push --tags
Git移行: Bitbucketリポジトリへのプッシュ

以上で、Bitbucket リポジトリは実質的にローカルリポジトリのクローンになりました。Bitbucket のウェブインターフェイスでは、すべてのブランチにおけるすべてのコミット履歴を確認することができます。


次にするべきことは、Bitbucket リポジトリのURL をそれにアクセスする必要のある開発者と共有することです。Git リポジトリの URL は、Bitbucket のリポジトリホームページからコピー・ペーストすることができます:

Git移行: リポジトリの共有

If your repository is private, you’ll also need to grant access to your team members in the Administration tab of the Bitbucket web interface. Users and groups can be managed by clicking the Access management link the left sidebar.

Git移行: Gitリポジトリのアクセス管理

別の方法として、Bitbucket に用意されている招待機能を利用して、他の開発者によるリポジトリへのアクセスを許可することも可能です。招待された開発者にはリポジトリへのアクセスが自動的に許可されるため、アクセス許可設定を行う必要はありません。

Once they have the URL of your repository, another developer can copy the repository to their local machine with git clone and begin working with the project. For example, after running the following command on their local machine, another developer would find a new Git repository containing the project in the <destination> directory.

git clone https://<user><user>/<project>.git <destination>

Continue committing with SVN, not Git

ここまでの操作で、ローカルリポジトリを Bitbucket リポジトリ にプッシュすることや、チームメンバーがそれぞれのローカルマシーンにリポジトリをクローンして Bitbucket リポジトリを使用することができるようになりました。即ち、Git を用いたコラボレーションを開始することができます。しかしながら、全員が切り替えに対応できるようになるまでは、コミットは引き続き SVN リポジトリに対して行うべきです。

Git リポジトリに変更が加えられる唯一のケースは、元の SVN リポジトリとの間で前のページで説明した同期処理が行われた場合です。即ち、あらゆる場合において Git リポジトリは (ローカルリポジトリもリモートリポジトリも) それへのアクセスがリードオンリーであるということです。開発者は Git の試用を行なうことが可能であり、また Git リポジトリをビルドプロセスに適用することもできますが、しかしながら変更を正式にコミットする際に Git を用いることは回避するべきです。

Git への移行: Git リポジトリに変更が加えられる唯一のケースは、元の SVN リポジトリからの処理が行われた場合です。


In this step, you set up a Bitbucket repository to share your converted Git repository with other developers. You should now have all the tools you need to implement any of the git workflows described in Git Workflows. You can continue synchronizing with the SVN repository and sharing the resulting Git commits via Bitbucket for as long as it takes to get your development team comfortable with Git. Then, you can complete the migration process by retiring your SVN repository.

Ready to learn Git?

Try this interactive tutorial.