ちょっと話題の記事

Git/GitHub初心者のためのAtlassian Stashリポジトリ接続手順

2013.10.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

台風の影響により絶賛在宅勤務中な今日この頃、皆様如何お過ごしでしょうか。しんやです。

当エントリはタイトルにもありますようにGitとかあんま使った事無かったりするような方々 *1に向けて導入メモ・備忘録的な位置付けで書いているものです。その辺りご了承頂ければと思います。

Stashとは

setup-stash_04

最近の分散型バージョン管理システムの1つ、gitの共有ウェブサービスとしてはGitHubが最もポピュラーなGitホスティングサイトとして知られていますが、Stashは、StashはGitHubのようにGitリポジトリを管理するサービスです。 Atlassian社製品の1つであり、同社の様々な製品とスムーズに連携しています。

Stashそのものについての解説については以下に良さげな感じでまとまっていたので引用させて頂きます。

Stash (スタッシュ) は、ファイアウォール越しで Git レポジトリを管理するための一元化ソリューションです。プロジェクトの規模やユーザー数が増大するにつれ、レポジトリやアクティブなブランチの管理は複雑になりがちですが、Stash を導入することで、分散したレポジトリの作成や管理を自社サーバー上で一元的かつセキュアに行うことができます。また、Stash の持つ柔軟性により、貴社の環境に合わせた使い方も可能です。例えば、ユーザーやグループの管理には、Stash の内部ディレクトリだけでなく、JIRA や LDAP を使用することができます。さらには、課題管理システム JIRA と Stash とを連携することで、JIRA 課題上でコミット情報やソースコードの変更などの追跡を行ったり、Stash 上でコミットに関連する JIRA 課題の一覧を確認したりすることも可能です。

Stash利用環境構築

ここでは、(管理者経由で)Stashのアカウントを取得してから実際に既存リポジトリのCloneを試みる、新しいリポジトリを作成するといったところまでの手順を順を追って記載して行きます。

一応、今回の検証に使用した環境はこんな感じでした。

環境 バージョン
OS Mac OS X 10.8.4
Atlassian Stash v2.5.1

アクセス用の公開鍵を作成

Stashにアクセスする為の公開鍵を作成します。ssh-keygenコマンドで生成が可能です。ここではファイル名はデフォルトのままで作成しています。

$ pwd
/Users/(ログインユーザー名)/.ssh
$ ssh-keygen -t rsa -C "(任意のメールアドレス)"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(ログインユーザー名)/.ssh/id_rsa): 【そのままEnter押下】
Enter passphrase (empty for no passphrase): 【任意のパスフレーズを入力】
Enter same passphrase again: 【任意のパスフレーズを再度入力】
Your identification has been saved in /Users/(ログインユーザー名)/.ssh/id_rsa.
Your public key has been saved in /Users/(ログインユーザー名)/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx (ログインユーザー名)@xxxxxxxxxx
The key's randomart image is:
+--[ RSA 2048]----+
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
|*****************|
+-----------------+
$

ファイルが出来ました。(id_rsa, id_rsa.pubの2つ)

$ ls
id_rsa		id_rsa.pub	known_hosts
$

Stashにログインし、メニューから[Manage Account]を選択。

setup-stash_01

[ssh keys]を選択→[Add Key]を押下。

setup-stash_02

と、ここでターミナルに戻り、公開鍵の内容をコピーしておきます。

$ pbcopy < id_rsa.pub
[/shell]

<p>テキストエリアに上記コピー内容をペースト、[Add Key]を押下。これで事前準備が整いました。</p>
<p><a href="https://cdn-ssl-devio-img.classmethod.jp/wp-content/uploads/2013/10/setup-stash_03.png"><img src="https://cdn-ssl-devio-img.classmethod.jp/wp-content/uploads/2013/10/setup-stash_03.png" alt="setup-stash_03" width="695" height="507" class="alignnone size-full wp-image-78227" /></a></p>


<p>Stash上に展開されている任意のプロジェクトに遷移し、[Clone]ボタンを押下してみます。SSH及びSourceTreeでのClone手段が提示されていますね。</p>
<p><a href="https://cdn-ssl-devio-img.classmethod.jp/wp-content/uploads/2013/10/setup-stash_05.png"><img src="https://cdn-ssl-devio-img.classmethod.jp/wp-content/uploads/2013/10/setup-stash_05.png" alt="setup-stash_05" width="421" height="419" class="alignnone size-full wp-image-78266" /></a></p>

<h2 id="toc--from-git">接続確認 from Git</h2>
<p>まずは何は無くともGitが必要。ですのでインストールします。brewが入っていれば『<tt>brew install git</tt>』で一発です。</p>

$ brew search git
bagit		   git-encrypt	      git-multipush	 giter8
easy-git	   git-extras	      git-now		 gitslave
geogit		   git-flow	      git-sh		 legit
git		   git-flow-avh	      git-ssh		 libgit2
git-archive-all	   git-flow-clone     git-tf		 magit
git-cola	   git-ftp	      git-tracker	 stgit
git-crypt	   git-gerrit	      git-url-sub	 topgit
$
$ brew install git
==> Downloading http://git-core.googlecode.com/files/git-1.8.3.4.tar.gz
######################################################################## 100.0%
==> make prefix=/usr/local/Cellar/git/1.8.3.4 CC=cc CFLAGS= LDFLAGS= install
==> make CC=cc CFLAGS= LDFLAGS=
==> make clean
==> make CC=cc CFLAGS= LDFLAGS=
==> Downloading http://git-core.googlecode.com/files/git-manpages-1.8.3.4.tar.gz
######################################################################## 100.0%
==> Downloading http://git-core.googlecode.com/files/git-htmldocs-1.8.3.4.tar.gz
######################################################################## 100.0%
==> Caveats
The OS X keychain credential helper has been installed to:
  /usr/local/bin/git-credential-osxkeychain

The 'contrib' directory has been installed to:
  /usr/local/share/git-core/contrib

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
 /usr/local/Cellar/git/1.8.3.4: 1327 files, 29M, built in 59 seconds
$
$ git --version
git version 1.8.3.4
$

git cloneコマンドでプロジェクトをクローンしてみます。コマンド実行時にパスワードを聞かれました。公開鍵作成時のパスワードを入力し、無事ソースコードのクローンが出来ました。

setup-stash_06

接続確認 from SourceTree

コマンドラインベースでの接続確認は出来たので、ここではもう1つGUIツール経由での確認もしてみましょう。アトラシアン社からSourceTreeというツールが提供されていますのでこれを導入します。Topページの[Mac版ダウンロード]をクリックし、dmgファイルをダウンロード&実行してください。

setup-stash_07

アイコンをApplicationsフォルダにドラッグ&ドロップすればインストール完了です。

setup-stash_08

SourceTreeをインストールした状態で先程参照したStashリポジトリの[Clone]から辿れる[Clone in SourceTree]ボタンを押下。すると今度はダイアログが表示されます。[アプリケーションの起動]を選択。

setup-stash_12

SourceTreeに連携され、接続及びクローンの際の情報が設定された状態になっています。値を確認し、[クローン]押下。

setup-stash_13

クローン作業完了。ソースコードを取得出来ている事を確認出来ました。

setup-stash_14

まとめ

まぁ、この辺の手順は一度やってしまえばどうって事無い部分ではありますが、割と日本語で書かれているものも無さそうだったので記録として残してみました。何らかの折でStashを利用する局面が訪れた時に、このエントリが『はじめの一歩』を踏み出す一助となれば幸いです。

Git/GitHubについては色々分り易く解説されているエントリやサイトがあるので、その辺を参考にすると良いと思います。:-)

脚注

  1. 自分もどちらかと言えばここまでHg/Mercurial派でした