リポジトリのセットアップ
このチュートリアルでは、Git バージョン管理の下からリポジトリ (repo) をセットアップする方法について概説します。このリソースでは、新規または既存のプロジェクトの Git リポジトリ初期化について順を追って説明します。ローカルで作成され、リモート リポジトリからクローンされたリポジトリのワークフロー例についても示します。このガイドは、コマンドライン インターフェイスの基本的な知識を持ったユーザーを対象としています。
高度なポイントでは、このガイドには以下が含まれます。
- 新しい Git リポジトリの初期化
- 既存の Git リポジトリの複製
- ファイルの修正バージョンをリポジトリにコミットする
- リモート コラボレーション用の Git リポジトリを構成する
- 一般的な Git バージョン管理コマンド
このモジュールの最後には、Git リポジトリを作成、共通の Git コマンドを使用、変更されたファイルをコミット、プロジェクトの履歴を表示、Git ホスティング サービス (Bitbucket) への接続を構成できます。
新しいリポジトリの初期化: git init
新しいリポジトリを作成するには、git init
コマンドを使用します。git init
は、新しいリポジトリの初期セットアップ時に使用するワンタイム コマンドです。このコマンドを実行すると、現在の作業ディレクトリ内に新しい .git
サブディレクトリが作成されます。これによって、新しい main ブランチも作成されます。
新しい git リポジトリを使用して既存のプロジェクトをバージョン管理する
この例では、リポジトリの作成場所となる既存のプロジェクト フォルダーが既にあることを想定しています。まず、ルート プロジェクト フォルダーに cd
を実行してから、git init
コマンドを実行します。
関連資料
Git Branch コマンド
ソリューションを見る
Bitbucket Cloud での Git の使用方法についてのチュートリアルです。
cd /path/to/your/existing/code
git init
git init
で既存のプロジェクト ディレクトリをポイントすると、上記と同じ初期化セットアップが、そのプロジェクト ディレクトリの範囲で実行されます。
git init <project directory>
git init の詳細なリソースについては、git init
のページを参照してください。
既存のリポジトリのクローンを作成する: git clone
プロジェクトで中央リポジトリが既に作成されている場合、ユーザーがローカルの開発クローンを取得する最も一般的な方法は clone コマンドを使用することです。git init
同様、クローン作成も通常は 1 回限りの操作です。開発者が一旦作業コピーを作成すると、すべてのバージョン管理操作がそのローカル リポジトリを経由して管理されます。
git clone <repo url>
git clone
は、リモート リポジトリのコピーまたはクローンの作成に使用されます。git clone
をリポジトリ URL に渡します。Git は、複数のネットワーク プロトコルや対応する URL 形式をサポートします。この例では、Git SSH プロトコルを使用します。Git SSH URL は次のテンプレートに従います: git@HOSTNAME:USERNAME/REPONAME.git
Git SSH URL の例は git@bitbucket.org:rhyolight/javascript-data-store.git
となります。ここで、テンプレートの値は以下と一致します。
HOSTNAME: bitbucket.org
USERNAME: rhyolight
REPONAME: javascript-data-store
実行すると、main ブランチにある最新バージョンのリモート リポジトリ ファイルがプル ダウンされて、新しいフォルダーに追加されます。新しいフォルダーには、REPONAME に適当な名前 (この場合は javascript-data-store
) が付けられます。フォルダーには、リモート リポジトリの全履歴と新規作成された main ブランチが含まれます。
git clone
の使用方法とサポートされる Git URL 形式に関するその他のドキュメントについては、 git clone ページを参照してください。
変更をリポジトリに保存する: git add と git commit
これで、リポジトリがクローン/初期化されました。ファイル バージョンの変更をコミットできます。次の例では、/path/to/project
にプロジェクトをセットアップしたと想定しています。この例では次の手順を実行します。
- ディレクトリを
/path/to/project
に変更する - 「git チュートリアルのテスト コンテンツ」というコンテンツが入った新しいファイル
CommitTest.txt
を作成します - git は、リポジトリのステージング領域に
CommitTest.txt
を追加します - コミットで実行された内容を説明するメッセージが入った、新しいコミットを作成します
cd /path/to/project
echo "test content for git tutorial" >> CommitTest.txt
git add CommitTest.txt
git commit -m "added CommitTest.txt to the repo"
この例を実行すると、リポジトリは履歴に CommitTest.txt
を追加し、ファイルに対する将来の更新を追跡します。
この例ではさらに、add
と commit
という、2 つの git コマンドについて紹介しました。これらの例は非常に制限された例でしたが、いずれのコマンドについても、git add および git commit ページで詳細に説明されています。もう 1 つの一般的な git add
の使用事例に、--all
オプションがあります。git add --all
を実行すると、リポジトリ内の変更済ファイルや追跡されていないファイルを取得し、それらをリポジトリに追加して、リポジトリの作業ツリーを更新します。
リポジトリ間コラボレーション: git push
Git における「作業コピー」が SVN リポジトリからソース コードをチェックアウトして得られる作業コピーとは大きく異なる概念であることを理解しなければなりません。SVN とは異なり、Git では作業コピーと中央リポジトリとの間に実質的な相違はなく、両者とも完全な Git リポジトリです。
これにより、Git とコラボレーションは基本的に SVN とは異なります。SVN は中央リポジトリと作業コピーの間の関係に依存しますが、Git のコラボレーション モデルはリポジトリ間の相互作用に基づきます。SVN の中央リポジトリで作業コピーを確認する前に、1 つのリポジトリから別のリポジトリへコミットをプッシュまたはプルします。
そうでない場合、特定の Git リポジトリに特別な意味を与えるのを止めることはできません。たとえば、Git リポジトリを「中央」リポジトリとして単純に指定することで、Git を使用したワークフローをレプリケートすることができます。この操作は、VCS 自体への配線ではなく、変換によって行われます。
ベア リポジトリとクローン リポジトリ
前の「新しいリポジトリの初期化」セクションで git clone
を使用してローカル リポジトリを作成した場合、リポジトリはリモート コラボレーション用に既に構成されています。git clone
は、クローン元の Git URL を示すリモートを使用して、リポジトリを自動的に構成します。つまり、ファイルに変更を加えてそれらをコミットしたら、git push
でそれらの変更をリモート リポジトリにプッシュできます。
git init
を使用して新しいリポジトリを作成した場合、変更のプッシュ先となるリモート リポジトリはありません。新しいリポジトリを初期化する際の一般的なパターンは、Bitbucket などのホスト型 Git サービスへ移動し、そこでリポジトリを作成することです。このサービスでは、作成したリポジトリをローカルの Git リポジトリへ追加し、ホストされているリポジトリへ git push
を実行できる Git URL を提供します。選択したサービスでリモート リポジトリを作成したら、マッピングを使用してローカル リポジトリを作成します。このプロセスについては、以下の「構成とセットアップ」ガイドで説明します。
独自のリモート リポジトリをホストする場合は、「ベアリポジトリ」を設定する必要があります。git init
と git clone
の両方で --bare
引数を使用できます。ベアリポジトリの最も一般的な使用事例は、リモートの中央 Git リポジトリの作成です
構成とセットアップ: git config
リモート リポジトリを設定したら、リモート リポジトリ URL をローカルの git config
に追加し、ローカル ブランチのアップストリーム ブランチをセットアップします。git remote
コマンドはこのようなユーティリティを提供します。
git remote add <remote_name> <remote_repo_url>
このコマンドは、<remote_repo_url>
のリモート・リポジジトリを <remote_name>
の下のローカル・リポジトリの ref にマッピングします。リモート・リポジトリのマッピングが完了したら、そこへローカル・ブランチをプッシュできます。
git push -u <remote_name> <local_branch_name>
このコマンドは、
の下のローカル リポジトリ ブランチを
のリモート リポジトリにプッシュします。
git remote
の詳細については、Git remote のページ
を参照してください。
リモート リポジトリ URL を設定するだけでなく、ユーザー名やメールなどの、グローバルな Git 構成の設定が必要となる場合があります。git config
コマンドを使用すると、コマンド ラインから Git インストール (または個別のリポジトリ) を設定できます。このコマンドを使用すると、ユーザー情報から、プリファレンスや、リポジトリ動作の初期設定にいたるまであらゆる項目の設定が可能です。通常使用される設定オプションのいくつかを以下に示します。
Git の設定オプションは 3 つのファイルに分けて保存され、以下のコマンドを用いて、個々のリポジトリ (ローカル)、ユーザー (グローバル)、システム (システム) 全体の設定内容をそれぞれ確認することができます:
- ローカル:
– リポジトリ固有の設定。/.git/config - グローバル:
/.gitconfig
– ユーザー固有の設定。これには、--global フラグを指定したオプションが保存されています。 - システム:
$(prefix)/etc/gitconfig
– システム全体の設定。
現在のリポジトリにおけるすべてのコミットに使われるオーサー名を設定します。通常、現在のユーザーの構成オプションを設定するには --global
フラグを使用します。
git config --global user.name <name>
現在のユーザーが行うすべてのコミットのオーサー名を設定します。
--local
オプションを追加する場合や、構成レベル オプションを渡さない場合は、現在のローカル リポジトリの user.name
が設定されます。
git config --local user.email <email>
現在のユーザーが行うすべてのコミットに関してそのオーサー E メールアドレスを設定します。
git config --global alias.<alias-name> <git-command>
Git コマンドのショートカットを作成します。これは、一般的に使用されている git コマンドのカスタム ショートカットを作成する、強力なユー定理ティです。最もシンプルな例は次のようになります。
git config --global alias.ci commit
これによって、git commit
へのショートカットとして実行できる ci
コマンドが作成されます。git エイリアスの詳細については、git config ページをご参照ください。
it config --system core.editor <editor>
現在のマシンのすべてのユーザーに git commit
などのコマンドを使用してテキスト エディターを定義します。
引数は、目的のエディターを起動するコマンドにする必要があります (例: vi)。この例では、--system
オプションを紹介します。--system
オプションはシステム全体の設定、つまりマシン上のすべてのユーザーとリポジトリを設定します。構成関連の詳細については、git config ページにアクセスしてください。
git config --global --edit
テキストエディタを使用して stationlocations ファイルを開きます。git 用のテキスト エディターを構成する方法の詳細なガイドは、Git config ページにあります。
ディスカッション
すべての構成オプションはプレーンテキスト ファイルで保存されるため、git config
コマンドは便宜性を高めるためのコマンドライン インターフェイスにすぎません。一般的に、Git インストールは、新しい開発マシンで作業を始める際にのみ構成する必要があります。ほとんどすべての場合で、--global
フラグを使用します。重要な例外の 1 つとして、作者のメール アドレスを上書きすることがあります。個人用およびオープン ソース リポジトリの個人用メール アドレスを設定し、業務関連のリポジトリには仕事用メール アドレスを設定することができます。
Git のオプション設定は 3 つのファイルに分けて保存され、以下のコマンドを用いて、個々のリポジトリ、ユーザー、システム全体の設定内容をそれぞれ確認することができます:
– リポジトリ固有の設定。/.git/config /.gitconfig
– ユーザー固有の設定。これには、--global フラグを指定したオプションが保存されています。$(prefix)/etc/gitconfig
– システム全体の設定。
これらのファイルのオプション設定が矛盾する場合は、ユーザー固有の設定がシステム全体に関する設定に優越し、各リポジトリ固有の設定がユーザー固有の設定に優越します。これらのファイルを開くと、次のような内容が表示されます:
[user] name = John Smith email = john@example.com [alias] st = status co = checkout br = branch up = rebase ci = commit [core] editor = vim
これらの値は、git config
と同じ働きをするように手動で編集できます。
例
Git のインストール後に最初にするべきことは、ユーザーの名前と E メールアドレスを設定し、いくつかのデフォルト設定をカスタマイズすることです。初期設定コマンドは通常次のようなものになります:
Git に、git config
であることを伝える
git --global user.name "John Smith" git config --global user.email john@example.com
お気に入りのテキスト エディターを選択する
git config --global core.editor vim
SVN のようなエイリアスをいくつか追加する
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.up rebase
git config --global alias.ci commit
これを実行すると、以前のセクションの ~ /.gitconfig
ファイルが生成されます。git config の詳細については、git config ページを参照してください。
要約
ここでは、git init と git clone という 2 つの方法を使用して git リポジトリを作成する方法を説明しました。このガイドは、バージョン管理が必要なソフトウェア ソース コードやその他のコンテンツの管理に適用できます。Git add、git commit、git push、および git remote についての概要を紹介しました。
チームに最適なコードリポジトリシステムを選ぶためのガイドをお読みください。
この記事を共有する
次のトピック
おすすめコンテンツ
次のリソースをブックマークして、DevOps チームのタイプに関する詳細や、アトラシアンの DevOps についての継続的な更新をご覧ください。