くらっちのクラウド日記

仕事や勉強で得た Microsoft 365 関連の技術知識を投稿していくブログです。

【EntraID】セルフサービスサインアップ機能とは、の解説

はじめに

Webアプリケーションにおいて、セキュリティとユーザー管理は重要な要素です。
特に外部ユーザーを含む広範囲のユーザー層に対応する場合、効率的なユーザー登録システムが必要です。
セルフサービスサインアップ機能を使用すると、以下の要望を実現することができます。

・EntraIDに登録したユーザーだけWebアプリにアクセスできるようにしたい。
・外部ユーザーもユーザー登録すればWebアプリを利用できるようにしたい。
・外部ユーザーは自分でEntraIDにユーザー登録できるようにしたい。

こんな要望があるなら、セルフサービスサインアップ機能の利用も検討してはどうでしょうか。

セルフサービスサインアップ機能とは

セルフサービスサインアップ機能は、EntraIDの外部コラボレーション機能の一つです。
この機能をオンにすると、指定したWebアプリに初めてアクセスする際にユーザー自身でEntraIDにアカウント登録できるようになります。

サインアップにはMicrosoft 365、GoogleFacebookなどのアカウントが利用できます。
サインアップ時に入力してもらうユーザー情報はカスタマイズ可能で、入力された情報はEntraIDに登録されます。

※Webアプリに対してこの機能を利用する場合、外部テナントの設定が必要となります。
kurattyodiary.hatenablog.com

セルフサービスサインアップ機能の利点

1.ユーザー登録の自動化:
 外部ユーザーが自分で登録プロセスを完了できるため、管理者の負担が軽減されます。
2.セキュリティの向上:
 EntraIDの強力な認証機能により、登録ユーザーのセキュリティが確保されます。
3.ユーザー体験の向上:
 ユーザーは手間なくアカウントを作成し、すぐにアプリケーションを利用できます。
4.多様なアカウントオプション:
 Microsoft 365、Googleなどのアカウントでサインアップできるので利便性が向上します。
5・カスタマイズ可能な登録情報:
 サインアップ時に入力してもらう情報をカスタマイズでき、必要なデータを効率的に収集可能です。

セルフサービスサインアップ機能の使い方

セルフサービスサインアップ機能のイメージ

まずはセルフサービスサインアップ機能を使ったときのイメージを見てみましょう。
1.Webアプリにアクセス
 機能と関連付けたWebアプリにアクセスするとMicrosoftのサインイン画面が表示されます。


2.サインアップの開始
 外部テナントにアカウント登録していない場合、サインアップが必要です。
 サインアップ画面でメールアドレスを入力するとメールアドレス宛にアカウント確認コードが送信されます。

3.確認コードの入力
 コードを画面に入力したら、次はアカウント情報の入力です。
 ※パスワードは必須ですが、表示名などは管理者が独自で設定できます。


4.ユーザー登録の完了
 操作後EntraIDにユーザー情報が登録されてWebアプリにアクセスができるようになります。
 下図はユーザーが登録された状態の管理画面です。


設定の流れ

登録したWebアプリケーションにアクセスする際サインアップ / サインインを求めるための設定を行います。

サブスクリプションとリソースグループを作成する

1.管理者アカウントで Azure Portal に接続します。
2.サブスクリプションとリソースグループを作成してください。

外部テナントを作成する

3.下記記事の「外部テナントを作成する」の内容に従って外部テナントを作成します。 kurattyodiary.hatenablog.com

セルフサービスサインアップ機能をオンにする

Microsoft Entra管理センターで作業します。
4.[ID] > [概要] > [テナントの管理] をクリックし、作成した外部テナントにチェック
5.「スイッチ」をクリックして外部テナントにアクセスする


ここからは構築した外部テナントで作業します。
6.外部テナントで [External Identities] > [外部コラボレーションの設定] をクリック
7.赤枠内が「はい」になっていることを確認する


アプリケーションを登録する

8.[アプリケーション] > [アプリケーションの登録] > [新規登録] をクリック
9.下図の説明を参考に各項目を入力して「登録」をクリック
  選択肢の「Web」はおそらく「マルチページアプリケーション(MPA)」のこと。
  SPAとMPAについては下記記事をご覧ください。
  今さら聞けないSPA(シングルページアプリケーション)とは #初心者 - Qiita



APIのアクセス許可を付与する

アプリケーションは登録しただけでは使えません。
管理者によるアクセス許可の同意が必要です。

10.[アプリケーション] > [アプリケーションの登録] > [APIのアクセス許可] をクリック
11.必要なアクセス許可を追加します。
  セルフサービスサインアップを利用するには「User.Read」の権限があれば十分です。
12.「〇〇〇に管理者の同意を与えます」をクリック
13.同意を求められるので「はい」を選択します。


ユーザーフローを作成する

14.[External Identities] > [概要] > [ユーザーフロー] > [新しいユーザーフロー] をクリック
15.サインアップ・サインインする時のフローを作成します。
  ・ユーザー属性でサインアップ時の入力項目を選択します。
  ・IDプロバイダー(サインインの方法)は下記記事を参考に選択します。
   外部テナントでの認証方法と ID プロバイダー

16.「作成」をクリック
17.フロー一覧から作成したフローをクリック
18.[アプリケーション] > [アプリケーションの追加] をクリック


19.手順8以降で作成したアプリケーションを選択します。
  これでフローにアプリケーションを登録できます。

フローを実行する

20.[アプリケーション] > [ユーザーフローを実行します] をクリック
21.表示された画面の一番下「ユーザー フロー エンドポイントを実行」のURLをコピーします

コピーしたURLにアクセスするとサインイン画面に遷移します。
サインインに成功すると登録したアプリケーションの画面が表示されます。


まとめ

EntraIDのセルフサービスサインアップ機能を活用することで、外部ユーザーを含む広範なユーザー層に対して効率的かつ安全なアクセス管理を実現できます。
ユーザー登録の自動化により管理者の負担が軽減されてセキュリティとユーザー体験の向上が期待できます。
さらに、多様なアカウントオプションとカスタマイズ可能な登録情報により柔軟なユーザー管理が可能です。
ぜひ、この機能の導入を検討してみてください。

補足

ユーザー属性を作る

ユーザーフローを作成する際に「ユーザー属性」は既定の項目から選ぶことができますが、「ユーザー属性」はオリジナルの項目を作成することもできます。

1.[External Identities] > [概要] > [カスタムのユーザー属性] > [追加] をクリック


2.項目名の入力、データ型(文字列・Boolean・int)の選択、説明を入力します。
3.「作成」ボタンをクリック
  注意:オリジナルの項目名に日本語は使えません。英数字のみ利用できます。


サインイン画面をカスタマイズしたい

サインイン画面をカスタマイズすることができます。
1.外部テナントで [ユーザーエクスペリエンス] > [会社のブランド化] に遷移します。
2.[既定のサインイン] > [編集] をクリック
3.サインイン画面のカスタマイズを行います。

1つのフローに複数のアプリケーションを登録する

1つのフローに2つ以上のアプリケーションを登録することができます。
サインインしたときの遷移先URLを使い分けたいなどある場合に利用します。
1.新しいアプリケーションを登録します。
2.既存のフローを選択します。
3.選択したフローで [アプリケーション] > [アプリケーションの追加] をクリック
4.新規作成したアプリケーションを選択して「選択」ボタンをクリック
5.「ユーザーフローを実行します」をクリック
6.「アプリケーション」で新しいアプリケーションを選択します。
7.表示された画面の一番下「ユーザー フロー エンドポイントを実行」のURLをコピーします


参考

サインアップとサインイン ユーザー フローを作成する(Learn)

【Python】簡単にローカルHTTPサーバーを立ち上げてWebページを確認する方法

はじめに

こんにちは、くらっちです。
今回は、 Pythonでローカル環境にHTTPサーバーを構築し、Webページを確認する方法の紹介です。
Web開発を行う際、作成したページをローカル環境で確認することはとても重要です。
シンプルなWebアプリケーションのテストやブラウザでの表示確認、cssやHTMLの変更を確認することができます。

Pythonには簡単にHTTPサーバーを立ち上げるための組み込み機能があります。
少ない手順で簡単に localhost でWebページを表示できるので是非お試しください。

目次

PythonでHTTPサーバーを構築する利点

PythonでHTTPサーバーを構築する理由としては、以下の点が挙げられます。
1.シンプル:
 PythonのHTTPサーバーはシンプルで特別な設定や追加パッケージのインストールは不要です。
2.クロスプラットフォーム対応:
 PythonWindowsmacOSLinuxすべてで動作します。
3.簡単な起動:
 1行のコマンドで簡単にサーバーを起動できます。

事前準備

今回の方法を実行するためには、ローカル環境にPythonのインストールが必要です。
WindowsPythonをインストールする場合は下記手順を実施します。

1.パッケージのダウンロード

Python 公式サイト にアクセスします。
・Download から最新のPythonのパッケージをダウンロードします。

2.パッケージのインストール

・管理者権限で、ダウンロードしたexeファイルを起動します。
・「Add python.exe to Path」にチェックを入れます。
 チェックしないとPythonが起動しません。チェックし忘れたら再インストールしましょう。
・「Install Now」をクリックします。

3.Pythonの実行

・インストールされたことを確認するためコマンドプロンプトを起動します。
・起動後、python と入力し下図のようにバージョンが表示されれば成功です。


HTTPサーバー起動とWebページの表示

1.HTTPサーバーの起動

Pythonを使ったHTTPサーバーの起動手順は以下の通りです。
コマンドプロンプトでサンプルのhtmlファイルを保存しているディレクトリに移動します。
・下記コマンドを実行してサーバーを起動します。(Python 3の場合):

python -m http.server 8000

 ※Python 2の場合:

python -m SimpleHTTPServer 8000


結果、下図赤枠内のように表示されていればサーバーは起動しています。

2.Webページの表示

・ブラウザを起動して下記URLに遷移します。

http://localhost:8000



エラー「SyntaxError: invalid syntax」が発生した場合

Pythonを実行した後に、「python -m http.server 8000」を実行するとSyntaxErrorが発生する場合があります。
この場合は、コマンドプロンプトを再起動してからもう一度コマンドを実行してみてください。

サンプルページの作成

下記ソースで上記のWebページを作成できます。手順確認のサンプルとしてご利用ください。
作成したソースファイルは作業用ディレクトリに保存してください。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>サンプルWebページ</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f0f0f0;
            margin: 0;
            padding: 0;
        }
        header {
            background-color: #4CAF50;
            color: white;
            text-align: center;
            padding: 1em 0;
        }
        main {
            padding: 20px;
            background-color: white;
            margin: 20px auto;
            max-width: 800px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        h1 {
            color: #333;
        }
        p {
            line-height: 1.6;
        }
        footer {
            text-align: center;
            padding: 10px;
            background-color: #4CAF50;
            color: white;
            position: fixed;
            width: 100%;
            bottom: 0;
        }
    </style>
</head>
<body>
    <header>
        <h1>サンプルWebページへようこそ</h1>
    </header>
    <main>
        <h1>こんにちは!</h1>
        <p>これはサンプルのWebページです。このページはHTMLとCSSを使って作成されています。</p>
        <p>ローカルホストでホスティングして、このページを表示しています。</p>
        <p>Web開発の基本を学ぶために、このシンプルなページを参考にしてください。</p>
    </main>
    <footer>
        &copy; 2024 サンプルWebページ
    </footer>
</body>
</html>

【Entra ID】外部テナントとはなにか

はじめに

こんにちは、くらっちです。
先日、Entra IDには2種類のテナントがあるということを知りました。
普段私たちが何気なく使っているEntra IDは従業員テナントと呼び、それとは別に外部テナントというものがあるそうです。
「外部テナントって何?」という疑問を解決すべく、調べた内容をまとめてみました。


目次


外部テナントとは

EntraIDは2種類のテナントが存在します。
 ・従業員テナント(Workforce Tenant)
 ・外部テナント(External Tenant)

従業員テナント(Workforce Tenant)

皆さんが想像するEntraIDは従業員テナントです。
これは、組織が Microsoft Azure、Microsoft Intune、Microsoft 365 などのサブスクリプションにサインアップしたときに自動的に作成される標準テナントです。
従業員テナントは、社員情報の管理、Teams・SharePoint・Power Platform・Outlookなどのビジネスアプリ、およびその他の組織リソースの管理を目的としています。
外部ユーザーとTeamsやSharePointなどMicrosoft365サービスで共同作業をしたい場合は従業員テナントを利用します。

外部テナント(External Tenant)

外部テナントは、外部ユーザーやビジネス顧客向けのWebアプリ提供で使用するテナントです。
Microsoft Entra の標準的なテナントモデルに従っていますが、従業員テナントとは別個であり切り離されています。
主な用途は、顧客向けに構築されたWebアプリを利用する際のアカウント管理を目的としています。外部ユーザーとの安全なコラボレーションを可能にします。
不特定多数の外部ユーザーにWebアプリを利用させたい場合は外部テナントを利用します。ただし、共同作業でTeamsを利用するなどの用途には使えません。


※Learnから引用

外部テナントにユーザーを追加する方法は2つあります。
 1.管理者が招待する方法
 2.セルフサービスサインアップ機能でユーザー自身にユーザー情報を登録してもらう方法

外部テナントで登録したユーザー情報は外部テナントでのみ管理されます。
Webアプリにログインできるユーザーは外部テナントで管理されているユーザーのみです。
逆に、従業員テナントで登録したユーザー情報は従業員テナントでのみ管理されます。

外部テナントに登録されているユーザーは従業員テナントで管理されているユーザーと連携されておらず同期を取ることもできません。
(テナント間同期機能も利用できません。)

外部テナントで多要素認証を利用する場合、利用できる認証は「ワンタイムパスコード」のみであり、条件付きアクセスポリシーの作成が必要なので注意して下さい。

外部テナントを作成する

以下、外部テナントを構築するまでの手順です。

サブスクリプションとリソースグループを作成する

1.管理者アカウントで Azure Portal に接続します。
2.サブスクリプションとリソースグループを作成してください。

外部テナントを作成する

3.管理者アカウントで Microsoft365管理センター にアクセスします。
 ※Azure PortalからEntraIDにアクセスした場合、外部テナントは作成できないので注意。
4.左メニューからEntraIDにアクセスします。
5.ID > 概要 > テナントの管理 をクリック

6.「+作成」をクリック
7.「外部」を選択して「続行」をクリック

8.「テナントを作る」で作成する外部テナントのテナント名、ドメイン名、場所を入力します。
  ※場所の選択肢に「日本」は含まれていないので注意。

9.「サブスクリプションの追加」をクリック
10.2で作成したサブスクリプションとリソースグループを選択します。
11.「確認および作成」をクリック
12.外部テナントが作成できたことを確認します。

参考

Microsoft Entra External ID における従業員と外部テナントの構成(Learn)
多要素認証 (MFA) をアプリに追加する(Learn)
ワークフォースと外部テナントでサポートされている機能

【Git】現在のブランチの親ブランチを確認したい

はじめに

「あれ、このブランチの親ってどのブランチだっけ?」と思うことがあったので調べてみたら素敵な記事を見つけました。
個人的な備忘録ですが、誰かのお役に立てば幸いです。

親ブランチを確認したい

現在のブランチの親ブランチを知りたいときは下記コマンドを実行してください。
下記コマンドを実行すると、親ブランチの名前が表示されます。

git show-branch | grep '*' | grep -v "$(git rev-parse --abbrev-ref HEAD)" | head -1 | awk -F'[]~^[]' '{print $2}'

参考

自分の親ブランチが知りたい

関連

kurattyodiary.hatenablog.com

【REST API】REST APIの基本を勉強しろ!調べた結果をまとめてみた

はじめに

こんにちは、くらっちです。
最近仕事でAPIの設計に携わることになり、REST APIについて色々調べたのでまとめました。
私個人のメモですが、皆さんのお役に立てばうれしいです✨

目次

REST APIとは

API2つのアプリケーション(システム間)で情報をやり取りするための窓口 です。
API を通してDBにデータを登録・更新・取得・削除したり、他アプリのデータ処理を行うことができます。



REST API は下記の「RESTの原則」に従って設計された API です。
REST API統一インターフェース、アドレス可能性、ステートレス、接続性という特徴を持っていて、クライアントとサーバー間の通信は『HTTP』を介して行われます。
「RESTの原則」を満たしていない APIREST API とは言わず、Web API などと呼びます。

RESTの原則

1. 統一インターフェース

統一された方法で通信を行います。
処理の内容に応じてインターフェース(HTTPメソッド)が決まっています。

「データの登録」は「POST」
「データの更新」は「PUT」
「データの取得」は「GET」
「データの削除」は「DELETE」です。

2. アドレス可能性

下記のように必ず一意のURLを持っており、URLを指定することで特定のリソースにアクセスできます。

例1:https://xxxxxx.co.jp/v1.0/users
例2:https://xxxxxx.co.jp/v1.0/users?country=Japan

3. ステートレス

ステートは「状態」を表し、ステートレスは「状態がない」と表せます。
「状態がない」=「サーバー側はクライアントとの通信情報を保持しない」と言えます。
サーバー側はクライアントとの通信情報を保持しないため、リクエストの度にすべての情報を送らないといけません。


REST API がステートレスであるのは下記のような理由があります。
- アプリケーションの状態を覚える必要がないため、サーバ側のシステムは単純になる
- サーバ資源をすぐに開放できるという利点があり、負荷軽減や操作性が向上する

4. 接続性

リクエストとレスポンスの情報にリンクを含めることができます。
そのリンクはリソースへのアクセスや関連するリソースを参照するために使用されます。
リソースに接続して必要な処理を行うのです。

REST APIの構成

REST API は、HTTPメソッドとURIの組み合わせで構成されています。

HTTPメソッド

APIを呼び出すときに必要な操作の種類(インターフェース)のことです。
具体的には下記のようなものがあります。
GET(データ取得)、POST(データ登録)、PUT(データ更新)、DELETE(データ削除)

URI(Uniform Resource Identiier)

URIとは「Web APIを利用するためのURL」のことです。
下図のように「プロトコル」「ドメイン」「パスパラメータ」の組み合わせで構成されます。

リクエストとレスポンス

リクエス

リクエストヘッダー

リクエストの詳細情報をサーバーに伝えます。
APIを呼び出すために必要な情報でリクエストの内容や形式、認証情報などを指定します。


主な情報
 クライアント情報
  ・User-Agent:クライアントのソフトウェア名やバージョン
  ・Accept-Language:クライアントの使用言語設定
 リクエストのメタデータ
  ・Content-Type:リクエストボディのデータ形式
  ・Content-Length:リクエストボディの長さ(バイト数)
 認証/認可情報
  ・Authorization:認証トークンやAPIキー等
 APIの指定
  ・Accept:受け入れ可能なレスポンスのデータ形式

ボディ

ボディはリクエストの本文です。
実際に送信するデータ本体であり、JSONなどの構造化データを渡します。

ヘッダーとボディを含めたリクエストの形式はこのような形になります。

POST /api/members HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: [バイト数]
Authorization: Bearer [トークン]

[JSONデータ]

具体例:members情報をPOSTする場合

POST /api/members HTTP/1.1 
Host: example.com
Content-Type: application/json
Content-Length: 236
Authorization: Bearer f47ac10b-58cc-4372-a567-0e02b2c3d479

{
    "members":[
        {
            "member_name": "tanaka_taro",
            "member_address": "東京都板橋区○○ 111-111-111",
            "member_telephone": "090-1111-2222",
            "member_hobby":[
                {
                    "hobby_id": 1,
                    "hobby_name": "将棋"
                },
                {
                    "hobby_id": 2,
                    "hobby_name": "サッカー"
                }
            ]
        }
    ]
}

レスポンス

リクエストのあと、サーバー側の処理の結果をAPI経由で受け取ります。
受け取る情報の形式や内容を定義する必要があります。

レスポンス例:GET 成功時

HTTP/1.1 200 OK
Content-Type: application/json

{
 "members": [
  {
      "id": 1,
      "name": "John Doe",
      "email": "john.doe@example.com"
  },
  {
      "id": 2,
      "name": "Sam Ocean",
      "email": "sam.ocean@example.com"
  },
 ]
}

レスポンス例:POST 成功時

HTTP/1.1 201 Created
Content-Type: application/json

{
    "id": 2,
    "name": "Alice",
    "email": "alice@example.com"
}

レスポンス例:PUT 成功時

HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 2,
    "name": "Alice Smith",
    "email": "alice.smith@example.com"
}

レスポンス例:DELETE 成功時

HTTP/1.1 204 No Content

HTTP ステータスコード

HTTPステータスコードは、リクエストの結果を示すコードでHTTPプロトコルの一部として定義されています。
リクエストが正常終了した、エラーが発生した、または他のアクションが必要かを通知します。

Code 意味 説明
200 OK 正常終了
204 No Content 正常終了したが返す値はなし
400 Bad Request リクエストが不正(バリデーションエラーなど)
401 Unauthorized 認証が必要
403 Forbidden リクエスト拒否(権限なし)
404 Not Found リソースが見つからない
500 Internal Server Error サーバーの内部エラーが発生。設定ミス、リソース不足など
502 Bad Gateway サーバー間の通信で発生した問題

参考

REST入門 基礎知識
ステートレスとは何か
REST APIとは何か?初心者にもわかりやすく解説します!
【図解】RESTful API とは何なのか【2024年版】

【Git】よく使うコマンド集 -基本編-

はじめに

こんにちは、くらっちです。
久々にGit を使ってみたのですがGitのコマンド結構忘れていました。
個人的なメモですが、よく使うコマンドだけをまとめたので皆さんの参考になれば幸いです。

目次

よく使うコマンド

リポジトリをコピーする

既存リポジトリを個人のPCにコピーして、ローカルで作業できるようにします。
Gitにおける作業はすべてローカルリポジトリの中で実施します。

git clone <リポジトリのパス(URL)>
例:git clone https://github.com/xxxxxxxxx/HelloWorld.git


ブランチを確認する

ローカルブランチを一覧表示、現在作業中のブランチも確認できます。

Git branch

ローカルブランチのバージョンを確認します。

Git branch -vv


作業するローカルブランチを変更する

Git checkout <ブランチ名>


ローカルにブランチを作成する

作業中のブランチをベースにして新しいブランチを作成します。
新しいブランチは「作業中のブランチ」をコピーしたものが作成されます。

Git checkout -b <新規ブランチ名>
例:git checkout -b Animals


ローカルブランチの更新をリモートブランチに反映する

ローカルブランチで更新した内容をリモートブランチに反映させます。
pushの際、リモートに指定のブランチが存在しない場合は新しいブランチを作成します。

git add .
git commit -m "コメント入れる"
git push origin <更新するリモートブランチ名>

上記コマンドはそれぞれこんなことをしています。
 1.add で index(コミット前の下書き保存場所みたいなイメージ)に登録
 2.commit することでローカルリポジトリを更新する
 3.push してローカルリポジトリの内容をリモートリポジトリに送信
    ⇒その結果、リモートブランチが更新される

リモートブランチの更新をローカルブランチに反映する

リモートブランチの更新をローカルブランチに反映させます。

Git checkout <更新元のローカルブランチ>
Git pull
Git checkout <更新先のローカルブランチ>
Git merge <更新元のローカルブランチ>

例:
Git checkout groups  ※groupsブランチに移動
Git pull       ※groupsをリモートブランチと同じ状態にする
Git checkout users  ※usersブランチに移動
Git merge groups   ※usersブランチとgroupsブランチを統合



Git pull で下記エラーが発生した場合
ローカルブランチと紐づいていたリモートブランチがなくなっている可能性があります。

Your configuration specifies to merge with the ref 'refs/heads/~' from the remote, but no such ref was fetched.


ローカルブランチの名前を変更する

ローカルブランチの名前を変更します。リモートブランチの名前は変わりません。

git branch -m <古いブランチ名> <新しいブランチ名>

現在作業中のローカルブランチ名を変更する場合

git branch -m <新しいブランチ名>


ローカルブランチとリモートブランチの紐づきを解除する

ローカルブランチとリモートブランチの紐づきを解除します。

git branch --unset-upstream


紐づきを解除したら、下記コマンドで正しいリモートブランチと接続しましょう。

git branch -u <ブランチ名>


ローカルブランチを削除する

ローカルのブランチを削除します。リモートのブランチは削除されません。

Git branch -b <削除するブランチ名>


「is not fully merged」のエラーが出た場合は下記コマンドで強制的に削除します。
リモートにマージしていない部分は反映されずに削除されるため注意が必要です。

git branch -D <削除するブランチ名>


ブランチを指定バージョンに戻す

ローカルブランチのバージョンを指定のバージョンに戻します。
バージョン番号はGitHubの履歴で確認できます。

git checkout <バージョン番号>


ブランチをaddしないで元の状態に戻す

Git checkout .

ブランチをaddしないで変更前の状態に戻します。
「is unmerged」が出る場合は下記を実行します。

git reset --hard


関連用語

リポジトリ
 開発関連のソースファイルなどを一元管理する場所。バージョン管理が可能

リモートリポジトリ
 クラウド上に存在するリポジトリ

ローカルリポジトリ
 個人利用のPC上に存在するリポジトリ

ブランチ
 「コミット(セーブポイント)の分岐を作る」機能で、この分岐が「ブランチ」です。
 ブランチAで機能Aの開発、ブランチBで機能Bの開発、という住み分けが可能になります!
 最終的にブランチAとブランチBを統合(Merge)して1つの完成版を作成します。

参考 【初心者向け】git fetch、git merge、git pullの違いについて

【Git】ローカルのブランチを削除する方法

はじめに

Git 操作でローカルのブランチを削除する方法について書きました。

ブランチを削除

ローカルのブランチを削除する場合は下記コマンドを実行します。

git branch -d [ブランチ名]

error: is not fully merged が発生

「is not fully merged」のエラーが発生した場合は下記原因が考えられます。

  • 原因 : マージされていないブランチを削除しようとした
  • 対応 : マージして削除する or 強制的に削除する

マージせずに強制的に削除する場合は下記コマンドを実行します。

git branch -D [ブランチ名]