Git リポジトリをコピーしてファイルを追加する

宇宙ステーションのファイルを追加して共有する場所ができたので、これをローカル システムから取得する方法が必要です。これをセットアップするまず、Bitbucket リポジトリをシステムにコピーします。Git では、リポジトリをコピーすることを「クローンする」と言います。リポジトリをクローンする際には、Bitbucket サーバー (Git が origin として把握しているもの) とローカル システムの間の接続を作成します。

図: Git における基本的なクローン作成

ここでは、ターミナルからさまざまな Git と Git 以外の各コマンドを使用します。コマンド ラインが未経験の場合は、その場所についてご確認ください

ステップ 1. リポジトリをローカル システムにクローンする

デスクトップでブラウザとターミナル ウィンドウを開きます。ターミナル ウィンドウを開いた後、以下を実行します。

  1. ホーム ディレクトリに移動します。

    macOS / Linux / Git Bash
    $ cd ~

    Windows Command Prompt
    $ cd <path_to_home>

    Bitbucket の使用頻度が増えると、複数のリポジトリで作業するようになる可能性があります。そのため、すべてのリポジトリを含むディレクトリを作成することをおすすめします。

  2. リポジトリを含めるディレクトリを作成します。

    $ mkdir repos

  3. ターミナルで、作業ディレクトリを新しい repos ディレクトリに更新します。

    macOS / Linux / Git Bash
    $ cd ~/repos

    Windows Command Prompt
    $ cd repos

  4. Bitbucket から BitbucketStationLocations リポジトリに移動します。

  5. 右上の [クローン] ボタンを選択します。
    Bitbucket によって [このリポジトリをクローン] ダイアログが表示されます。初期設定では、クローン ダイアログは設定に応じて、プロトコルを HTTPS または SSH に設定します。このチュートリアルでは、初期設定のプロトコルのまま使用します。

  6. クローン コマンドをコピーします。

  7. ターミナル ウィンドウで、Bitbucket からコピーしたコマンドを貼り付けて Return キーを押します。

  8. ターミナルによって求められたら、アプリのパスワードを入力します。 

パスワード エラーが表示される場合

Windows password error
In some versions of the Microsoft Windows operating system and Git you might see an error similar to the one in the following example.
Windows clone password error example:
$ 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

If you get this error, enter the following at the command line:
$ git config --global core.askpass
Then go back to step 4 and repeat the clone process. The bash agent should now prompt you for your password. You should only have to do this once.

9. この時点で、ターミナル ウィンドウは次のようになります。

1 2 3 4 5 6 7 8 $ 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.
  1. repos ディレクトリのコンテンツを一覧表示すると、bitbucketstationlocations ディレクトリが表示されます。

    macOS/Linux
    $ ls

    Windows
    $ dir

おめでとうございます。ローカル システムにリポジトリをクローンしました。

ステップ 2. ファイルをローカル リポジトリに追加して、Bitbucket に配置する

ローカル システムにリポジトリが揃ったところで、作業を開始します。すべての宇宙ステーションの場所を追跡したいとします。これを行うため、すべての場所の情報をまとめたファイルを作成します。

  1. ターミナル ウィンドウを開き、ローカル リポジトリの最上位に進みます。

    macOS / Linux / Git Bash
    $ cd ~/repos/bitbucketstationlocations/

    Windows Command Prompt
    $ cd repos/bitbucketstationlocations/

  2. 次の行をターミナル ウィンドウに入力し、コンテンツ入りの新しいファイルを作成します。

    $ echo "Earth's Moon" >> locations.txt

    コマンドで何も返されない場合、ファイルが正しく作成されています。

  3. ローカル リポジトリのステータスを取得します。git status コマンドによって、Bitbucket リポジトリと比較したプロジェクトの状況を確認できます。

    この時点で、Git は新しいファイルが作成されたことを把握しており、次のような情報が表示されます。

    1 2 3 4 5 6 7 $ 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 (ファイルの追加)」と示されています。

  4. Tell Git to track your new locations.txt file using the git add command. Just like when you created a file, the git add command doesn't return anything when you enter it correctly.

    $ git add locations.txt

    git add コマンドは作業ディレクトリから Git のステージング エリアに変更を移動させます。ステージング エリアで一連の変更のスナップショットを準備した後、正式な履歴にコミットすることができます。

  5. ファイルのステータスを確認します。

    1 2 3 4 5 6 $ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: locations.txt

    これで、新しいファイルが追加 (ステージに追加) され、準備が整ったらコミットできるようになりました。git status コマンドを使用すると、作業ディレクトリとステージに追加されたスナップショットの状態を表示できます。

  6. Issue the git commit command with a commit message, as shown on the next line. The -m indicates that a commit message follows.

    1 2 3 4 $ 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 にプッシュしようとしていることを示します。

次のように表示されるはずです。

1 2 3 4 5 6 $ 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.

Your commits are now on the remote repository (origin).

8. Bitbucket の BitbucketStationLocations リポジトリに移動します。

If you click Commits in the sidebar, you'll see your commit in the repository. Bitbucket combines all the things you just did into that commit and shows it to you. You can see that the Author column shows the value you used when you configured the Git global file (~/.gitconfig).
If you click Source in the sidebar, you'll see your file in the repository, the locations.txt file you just added.

次へ

その他のヘルプ