Git リポジトリをコピーしてファイルを追加する
宇宙ステーションのファイルを追加して共有する場所ができたので、これをローカル システムから取得する方法が必要です。これをセットアップするまず、Bitbucket リポジトリをシステムにコピーします。Git では、リポジトリをコピーすることを「クローンする」と言います。リポジトリをクローンする際には、Bitbucket サーバー (Git が origin として把握しているもの) とローカル システムの間の接続を作成します。
ここでは、ターミナルからさまざまな Git および Git 以外のコマンドを使用します。コマンド ラインを使用したことがない場合、使用方法についてご確認ください。
ステップ 1. リポジトリをローカル システムにクローンする
デスクトップでブラウザとターミナル ウィンドウを開きます。ターミナル ウィンドウを開いた後、以下を実行します。
ホーム ディレクトリに移動します。
macOS / Linux / Git Bash
$ cd ~
Windows コマンド プロンプト
$ cd <path_to_home>
Bitbucket の使用頻度が増えると、複数のリポジトリで作業するようになる可能性があります。そのため、すべてのリポジトリを含むディレクトリを作成することをおすすめします。
リポジトリを含めるディレクトリを作成します。
$ mkdir repos
ターミナルで、作業ディレクトリを新しい
repos
ディレクトリに更新します。macOS / Linux / Git Bash
$ cd ~/repos
Windows コマンド プロンプト
$ cd repos
Bitbucket から BitbucketStationLocations リポジトリに移動します。
右上の [クローン] ボタンを選択します。
Bitbucket によって [このリポジトリをクローン] ダイアログが表示されます。初期設定では、クローン ダイアログは設定に応じて、プロトコルを HTTPS または SSH に設定します。このチュートリアルでは、初期設定のプロトコルのまま使用します。クローン コマンドをコピーします。
ターミナル ウィンドウで、Bitbucket からコピーしたコマンドを貼り付けて Return キーを押します。
ターミナルによって求められたら、アプリのパスワードを入力します。
パスワード エラーが表示される場合
Windows パスワード エラー
Microsoft Windows オペレーティング システムおよび Git の一部のバージョンでは、次の例のようなエラーが表示される場合があります。
Windows クローン パスワード エラーの例:$ git clone https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
Cloning into 'bitbucketstationlocations'...
fatal: could not read
Password for 'https://emmap1@bitbucket.org': No such file or directory
このエラーが表示された場合は、コマンド ラインに次を入力します。$ git config --global core.askpass
次に、ステップ 4 に戻ってクローン プロセスを繰り返します。ここで、bash エージェントによってパスワードを求められます。この操作を実行する必要があるのは 1 回だけです。
9. この時点で、ターミナル ウィンドウは次のようになります。
$ cd ~/repos
$ git clone https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
Cloning into 'bitbucketstationlocations'...
Password
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
repos
ディレクトリのコンテンツを一覧表示すると、bitbucketstationlocations
ディレクトリが表示されます。macOS/Linux
$ ls
Windows
$ dir
おめでとうございます。ローカル システムにリポジトリをクローンしました。
ステップ 2. ファイルをローカル リポジトリに追加して、Bitbucket に配置する
ローカル システムにリポジトリが揃ったところで、作業を開始します。すべての宇宙ステーションの場所を追跡したいとします。これを行うため、すべての場所の情報をまとめたファイルを作成します。
ターミナル ウィンドウを開き、ローカル リポジトリの最上位に進みます。
macOS / Linux / Git Bash
$ cd ~/repos/bitbucketstationlocations/
Windows コマンド プロンプト
$ cd repos/bitbucketstationlocations/
次の行をターミナル ウィンドウに入力し、コンテンツ入りの新しいファイルを作成します。
$ echo "Earth's Moon" >> locations.txt
コマンドで何も返されない場合、ファイルが正しく作成されています。
ローカル リポジトリのステータスを取得します。git status コマンドによって、Bitbucket リポジトリと比較したプロジェクトの状況を確認できます。
この時点で、Git は新しいファイルが作成されたことを把握しており、次のような情報が表示されます。
$ git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) locations.txt nothing added to commit but untracked files present (use "git add" to track)
ファイルは追跡対象ではないため、Git には以前のコミットに含まれないファイルが表示されます。また、ステータス出力を見ると、次のステップとして「adding the file (ファイルの追加)」と示されています。
Git で git add コマンドを使用し、新しい
locations.txt
ファイルを追跡します。ファイルを作成したときと同じように、git add
コマンドを正しく入力しても、何も返されません。$ git add locations.txt
git add
コマンドは作業ディレクトリから Git のステージング エリアに変更を移動させます。ステージング エリアで一連の変更のスナップショットを準備した後、正式な履歴にコミットすることができます。ファイルのステータスを確認します。
$ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: locations.txt
これで、新しいファイルが追加 (ステージに追加) され、準備が整ったらコミットできるようになりました。
git status
コマンドを使用すると、作業ディレクトリとステージに追加されたスナップショットの状態を表示できます。次の行のように、git commit コマンドを実行してコミット メッセージを発行します。
-m
は、コミット メッセージが後に続くことを示します。$ git commit -m "Initial commit" [master (root-commit) fedc3d3] Initial commit 1 file changed, 1 insertion(+) create mode 100644 locations.txt
git commit
はステージに追加されたスナップショットを取得し、プロジェクト履歴にコミットします。このプロセスとgit add
とが、すべての Git ユーザーの基本的なワークフローとなります。
この時点での操作はすべてローカル システム上で行われており、変更をプッシュするまで Bitbucket リポジトリから認識することはできません。
Git とリモート リポジトリについてさらに詳しく学習する
Git の、リモート リポジトリ (この場合は Bitbucket) との通信機能は、すべての Git ベースのコラボレーション ワークフローの基礎になります。
Git のコラボレーション モデルを使用すると、すべての開発者はリポジトリの独自のコピーを利用し、独自のローカル リポジトリとブランチ構造を使用して作業を完了させることができます。ユーザーは一般的に、1 つのチェンジセットではなく一連のコミットを共有する必要があります。作業コピーから中央リポジトリにチェンジセットをコミットする代わりに、Git ではリポジトリ間でブランチ全体を共有できます。
他のリポジトリとの接続を管理したり、ブランチを他のリポジトリに「プッシュ」することでローカル履歴を公開したりできます。ブランチをローカル リポジトリに「プル」すれば、他のメンバーが投稿した内容を見ることができます。
7. ローカルのターミナル ウィンドウに戻って、git push origin master によってコミットした変更を Bitbucket に送信します。このコマンドは次のようにプッシュ先を指定します。
master
— リポジトリのメイン ブランチ(および現在の唯一のブランチ)。ブランチを使用すると、メインのコードベース (この場合はmaster
) とは別のリポジトリで一連のコードの作業を行うことができます。origin
— リモート サーバーの名前。この場合、origin
は Bitbucket にプッシュしようとしていることを示します。
次のように表示されるはずです。
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 253 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0) To https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
コミットはリモート リポジトリ (origin
) に移動しました。
8. Bitbucket の BitbucketStationLocations リポジトリに移動します。
サイドバーで [コミット] をクリックすると、リポジトリに自分のコミットが表示されます。Bitbucket は、そのコミットで実行したすべての操作をまとめて表示します。[作成者] 列には、Git グローバル ファイル (~/.gitconfig
) の構成時に使用した値が表示されます。
サイドバーで [ソース] をクリックすると、先ほど追加したファイル (locations.txt
ファイル) がリポジトリに表示されます。
この内容はお役に立ちましたか?