Gitの概要

Gitとは?

Gitとは分散型バージョン管理システムのひとつで、ソースコードなどを効率的に管理できます。

Gitを利用するには

プロジェクトホームにある「 プロジェクト設定 」にアクセスします。

「Gitを使用する」のチェックをオンにし、「登録」ボタンをクリックします。

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

Gitにアクセスするには

Backlog上で作成したリポジトリにはSSHとHTTPSでアクセスできます。それぞれのURLは次のようになります。

接続方法 URL
SSH [スペースID]@[スペースID].git.backlog.jp:/[プロジェクトキー]/[リポジトリ名].git
HTTPS 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でアクセスする

HTTPS接続の場合はBacklogアカウントまたはヌーラボアカウントの情報で接続できます。

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

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

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

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

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

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

SSH公開鍵

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

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

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

公開鍵を登録する

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

SSHホスト鍵のフィンガープリントの情報は こちら

BacklogでGitリポジトリを見る

Gitのトップページ

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

Gitトップ

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

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

リポジトリを絞り込む

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

最近の更新を確認する

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

Gitリポジトリブラウザー

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

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

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

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

Gitのファイルブラウザー

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

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

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

Gitのファイル差分

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

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

Gitのコミット履歴

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

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

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

Gitのコミット詳細

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

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

Gitのブランチ

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

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

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

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

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

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

プルリクエストについて プルリクエストとは? - サル先生のGit入門 を参照してください。

ブランチを削除する

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

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

Gitのタグ

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

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

差分を表示する

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

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

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

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

コミット履歴

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

ファイル

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

Gitのネットワーク図

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

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

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

Git Webhook

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

Git Webフック

Webhookは、たとえば次の用途に用いることができます。

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

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

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

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

Git Webhookの設定

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

注意事項

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

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

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

データ形式

Webhookでは、指定された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/main",
  "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"]
    }
  ]
}