Gitの概要

Git とは?

Git(ギット)とは分散型バージョン管理システムの一つで、ソースコードなどを効率的に管理することができます。

Git を利用するには

Backlogのプロジェクト設定 > Gitの設定 より「このプロジェクトでGitを使う」ボタンをクリックすると、プロジェクトメニューに「Git」タブが表示され、Backlog上でGitを使えるようになります。

Subversionリポジトリとは違い、Gitリポジトリは1プロジェクトあたり複数作成することができます。

Git にアクセスするには

Backlog上で作成したリポジトリにはSSHとHTTPでアクセスすることが可能です。それぞれのURLは以下のようになります。

接続方法 URL
SSH [スペースID]@[スペースID].git.backlog.jp:/[プロジェクトキー]/[リポジトリ名].git
HTTP https://[スペースID].backlog.jp/git/[プロジェクトキー]/[リポジトリ名].git

例)

接続方法 URLの例
SSH demo@demo.git.backlog.jp:/DORA/cat-robot.git
HTTPS https://demo.backlog.jp/git/BLGDSGN/cat-robot.git

HTTPS の URL にブラウザからアクセスすることはできません。

Git に SSH でアクセスする

SSH接続の場合はSSH公開鍵をBacklogに登録することでアクセスできます。

Git に HTTPS でアクセスする

HTTP接続の場合はBacklogアカウントまたはヌーラボアカウントの情報で接続が可能です。

Git の認証情報はご利用のプランとログイン方法により異なります。詳細はこちら

Backlogサーバ上のリポジトリおよび Git 画面へのアクセスは、操作が制限される以下の権限のユーザはアクセスできません。

新プラン(権限一覧はこちら

  • 「課題の登録のみ」または「課題の閲覧のみ」の制限のある一般ユーザ
  • 「課題の登録のみ」または「課題の閲覧のみ」の制限のあるゲスト

クラシックプラン(権限一覧はこちら

  • レポーター
  • ビューアー
  • ゲストレポーター
  • ゲストビューアー

SSH公開鍵

Backlog上のGitリポジトリに SSH 経由でアクセスを行うには、SSH公開鍵の設定が必要です。

個人設定 -> SSH公開鍵の登録 よりSSH 公開鍵の内容を貼りつけて、「登録」ボタンをクリックします。

SSH公開鍵登録 | プロジェクト管理ツールBacklog

公開鍵を登録する

  1. 個人設定を開きます
  2. 個人設定 > 「SSH公開鍵」に進んでください
  3. SSH公開鍵を作成します
  4. 「SSH公開鍵」の欄に公開鍵をはりつけ、登録します

Backlog で Git リポジトリを見る

Gitのトップページ

Gitのトップページにはそのプロジェクト内のリポジトリ一覧と、最近の更新が表示されます。

Gitトップ

リポジトリの URL をクリップボードにコピーする

このプロジェクト内のリポジトリの一覧が表示されます。"SSH"と"HTTP"のURL横のボタンをクリックするとURLを1クリックでコピーできます。

リポジトリを絞り込む

「リポジトリの絞り込み」では入力したキーワードがリポジトリ名・説明のいずれかに一致したリポジトリのみを表示します。

最近の更新を確認する

プロジェクトメンバーが行ったPush、リポジトリ作成、ブランチ作成などのGitに関する作業が時系列で表示されます。ユーザが行った作業内容にすばやくアクセスできます。

Git リポジトリブラウザ

最新の状態のリポジトリツリーの状態にアクセスできます。

ブランチやタグを切り替える

上部のナビゲーションから表示するリポジトリやブランチ、タグを切り替えることができます。

リポジトリブラウザ | プロジェクト管理ツールBacklog

Gitのファイルブラウザ

ソースコードやHTMLファイルなど、テキストファイルであればその内容を行番号と色付きで表示します。

内容をそのまま表示したり、ダウンロードすることもできます。

画像ファイルの場合、適切なサイズに縮小して表示されます。

Git のファイル差分

ファイルのリビジョン間の差分を閲覧できます。

追加部分はグリーン、削除部分はピンクで表示されます。

Git のコミット履歴

リポジトリのコミット履歴を確認することができます。

ブランチを切り替えることによってそれぞれのブランチ毎のコミット履歴を確認することが可能です。

また、ファイルブラウザから履歴を閲覧した場合には、そのファイルに関連する履歴のみを閲覧することが可能です。

Git のコミット詳細

リビジョンの日時・更新者・コミットメッセージを閲覧できます。

このリビジョンで更新されたパスの一覧やファイルの差分もこの画面で確認することが可能です。

Git のブランチ

リポジトリのブランチの一覧を確認することができます。

ブランチを絞り込んで表示したい場合は「キーワード」に目的のブランチ名の一部もしくは全てを入力してください。

ブランチ間差分を表示する

「差分」ボタンをクリックすると、ブランチ / タグ間差分 画面に進みます。

プルリクエストを追加する

「追加」ボタンをクリックすると、プルリクエストの追加画面に進みます。

プルリクエストについて詳しくは以下を参照してください。

サルでもわかるGit入門 プルリクエスト編

ブランチを削除する

ブランチを削除するには、ブランチの一覧の削除欄の✕アイコンをクリックします。削除してよいか確認のダイアログが表示されますので、間違いなければ「OK」ボタンを、 削除しない場合は「キャンセル」ボタンを押してください。

この操作はやりなおすことができませんので、十分ご注意ください。

なお、master ブランチは削除できません。

Git のタグ

リポジトリのタグの一覧を確認することができます。

タグを絞り込んで表示したい場合は「キーワード」にタグ名の一部もしくは全てを入力してください。

差分を表示する

「差分」ボタンをクリックすると、ブランチ / タグ間差分 画面に進みます。

Git のブランチ / タグ 間差分

この画面は Git の ブランチ 画面もしくは タグ 画面から進みます。

差分を確認したいブランチまたはタグをセレクトボックスで選択すると、コミット履歴やファイルの差分を確認できます。

コミット履歴

コミット履歴のタブで、ブランチまたはタグ間のコミット履歴の差分を確認できます。

ファイル

ファイルのタブで、ブランチまたはタグ間のファイルの差分を確認できます。追加部分はグリーン、削除部分はピンクで表示されます。

Git のネットワーク図

どのブランチに、いつコミットがされたのか、といったコミットの時間的な推移をあらわしたグラフを表示します。

ブランチで最近コミットしたのは誰なのか、ブランチがどのように分岐したのか、といったリポジトリの状態も確認することが可能です。

ネットワーク | プロジェクト管理ツールBacklog

Git Webフック

Git Webフックとは、Backlogが管理しているGitリポジトリにpushされた際に、指定されたURL(サーバ)へHTTP POSTする機能です。

Git Webフック

Webフックは、例えば以下の用途に用いることができます。

  • CIビルドのトリガ
  • バックアップの更新
  • ステージング環境への最新版コードの反映
  • その他外部システムとの連携

これらは、CIサーバに備わっているポーリング機能やcronなどで、定期的にGitリポジトリにアクセスすることでも代替可能です。

ですが、ポーリングでは定期的にアクセスする仕組み上、pushされてから実際の処理が動くまでにタイムラグが発生することがあります。

Webフックでは、pushされたタイミングで即座にHTTP通信が行われるため、タイムラグを無くして即座に処理を行うことができます。

Git Webフックの設定

Webフックはリポジトリごとに設定することができます。Gitリポジトリの作成、もしくはGitリポジトリの編集から、push時にPOSTする先のURLを指定してください。

注意事項

Webフックの指定先のURLは、Backlogのサーバからアクセスできるようにしておいてください。イントラネット内のサーバなど、BacklogからアクセスできないURLは指定することができません。同様の理由で、"192.168.x.x" などのプライベートネットワークを表すIPアドレスは指定することができません。

Webフック受信側の一時的なサーバダウン等に対応するため、サーバエラーとなった場合(POST時のHTTPステータスコードが5xx系だった場合)は数回リトライを試みます。

後述の通りコミットのメッセージやメールアドレスなどの情報を送信します。これらの情報を保護したい場合には、HTTPS の URL をご指定ください。

データ形式

Webフックでは、指定されたURLにpush時のデータをJSON形式で送信します。JSONデータのパラメータは "payload" のみです。"payload" の形式は以下の通りです。

{
  "before": push前のコミット,
  "after": push後のコミット,
  "ref": 参照
  "repository": {
    "url": リポジトリのURL,
    "name": リポジトリ名,
    "description": リポジトリの説明,
  },
  "revisions": [{
    "id": コミットのID,
    "url": コミットのURL,
    "author": {
      "email": コミットした人のメールアドレス,
      "name": コミットした人の名前
    },
    "message": コミットメッセージ,
    "timestamp": タイムスタンプ,
    "added": [ 追加されたファイル ],
    "removed": [ 削除されたファイル ],
    "modified": [ 修正されたファイル ],
  }]
}

サンプルデータは以下のようになります。

{
  "before": "5aef35982fb2d34e9d9d4502f6ede1072793222d",
  "after": "c0b8abaa6df37ea682454c25f2d602dffb5de6ed",
  "ref": "refs/heads/master",
  "repository": {
    "url": "https://demo.backlog.jp/git/DORA/himitsu",
    "name": "himitsu",
    "description": "ひみつ道具を格納しているリポジトリ"
  },
  "revisions": [
    {
      "id": "8e82fe274af30adbb378785628db509da1c969d1",
      "url": "https://demo.backlog.jp/git/DORA/himitsu/commit/8e82fe274af30adbb378785628db509da1c969d1",
      "author": {
        "email": "nobi@example.com",
        "name": "nobi"
      },
      "message": "どこでも行けるドアを作成しました",
      "timestamp": "2013-04-01T14:57:17+09:00",
      "added": ["html/anywhere.html", "css/anywhere.css"]
    },
    {
      "id": "c0b8abaa6df37ea682454c25f2d602dffb5de6ed",
      "url": "https://demo.backlog.jp/git/DORA/himitsu/commit/c0b8abaa6df37ea682454c25f2d602dffb5de6ed",
      "author": {
        "email": "gouda@example.com",
        "name": "gouda"
      },
      "message": "DORA-1 竹でできているヘリコプターが壊れました #fixed",
      "timestamp": "2013-04-01T18:22:10+09:00",
      "removed": ["html/take-copter.html"]
    }
  ]
}