mk-toolブログ

エンジニアと家のことをごちゃごちゃと書いてます

【GitBucket】簡単な使い方まとめver1

GitBucketの簡単な使い方まとめ。
GitBucketの公式チュートリアルを日本語でまとめました。参考にしてください。

●GitBucketの公式サイト
bitbucket.org

まずGitBucketを使用するために上記へアクセスをします。

f:id:gamushiroS:20160814080534p:plain
「Get started for free」を選択し、アカウントを作成します。
アカウントを持っている場合はログインをします。

そうすると以下の画面が表示されます。
この画面がポータル画面です。さて、スタート地点に立ちましたね。
f:id:gamushiroS:20160814080847p:plain

リポジトリを作成する

リポジトリとは管理対象のソースを保管するバケツであると考えれば良い。
通常、1つのバケツで1つのアプリケーションのソース管理を行う。

リポジトリの作成を行っていく。ポータル画面上のリポジトリ選択する。
選択をするとプルダウンメニューが出てくるので「リポジトリの作成」もしくは「Create repository」を選択する。
(写真は英語版です。日本語版の場合は多少異なるかもしれません)
https://confluence.atlassian.com/bitbucket/files/304578655/753435735/2/1453916404968/create_repository.png

ダイアログが出てくるので、必要項目を入力する。
今回はチュートリアルに習って作業を行うため、以下のように入力する。
https://confluence.atlassian.com/bitbucket/files/304578655/774243221/2/1453917335087/create_new_repo1.png

リポジトリはこれだけで完成!
これから今回作成したリポジトリでソースを管理していく。
https://confluence.atlassian.com/bitbucket/files/304578655/753435775/3/1449240130583/explore_repository.png

リポジトリのソースをローカルに落として作業を行う
ローカルで作業をするためのディレクトリを作成する(どこでも、どんな名前でも良いです)

$ cd ~
$ mkdir repos
$ cd repos

ポータル画面の[Actions]-[Clone]からclone用のコマンドをコピーしてきて、そのままターミナルに貼り付ける

https://confluence.atlassian.com/bitbucket/files/304578655/746520869/2/1434639735558/git+clone.png

コマンドを実行する(パスワードも聞かれるので現在のアカウントのパスワードを入力)

$ git clone https://emmap1@bitbucket.org/emmap1/bitbucketspacestation.git?_ga=1.257065608.2003681433.1467938465"

GitBucketのポータル画面で作成したリポジトリが、ローカルにコピーされたことを確認する。
これでローカルで作業をすることができるようになった。

$ ls

●ローカルでファイルを作成し、リモートへ反映させる

以下のコマンドを実行し、リポジトリディレクトリに移動。

$ cd bitbucketstationlocations

とりあえず、なんでも良いのでファイルを作成する。

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

ファイル作成後に現在のGitBucketの状態を確認する。
GitBucketには現在のファイルの状態を確認することができ、
ローカルのファイルとリモートのファイルで差分があるか、ファイルが新規に作成されたのか、削除されたのか
を確認することができる。
先ほど作成したファイル(locations.txt)の状態を確認すると「Untracked」になっていることがわかる。
これは「locations.txt」は作成されたがローカル内のGitBucket用のステージングエリアにはまだファイルが存在しないことを示す。
ステージングエリアに関して、先ほどリポジトリをリモートで作成し、ローカルにリポジトリをコピー(clone)したが、その際にローカルにもローカル専用のリポジトリが構築される。ローカルリポジトリはファイルの変更をいきなりローカルリポジトリに適用しないためのクッションのような役割をするステージングエリアを持ち、
ファイルの変更はローカルでのファイル編集、ステージングエリアへのファイルの配置、ローカルリポジトリへのファイルの配置という流れで行っていくことになる。

$ 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 add locations.txt

ちなみに、上記のコマンドでは「locations.txt」だけをステージングエリアにファイルを適用しているが
以下のコマンドを行うことで変更したすべてのファイルをステージングエリアに適用することができる
(こっちの方が圧倒的に使用頻度が高い)

$ git add .

ステージングエリアにファイルを適用したら、GitBucketの状態が
「locations.txt」がnewファイルです、commitしてください、に変化する

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

ステージングエリアに配置されたファイルをローカルリポジトリに反映する
ここで「-m」はcommitにつけるメッセージなのでわかりやすいコメント程度のものを書く
(そうした方が後で確認した際、このコミットはなんだっけ?とならない)
commitコマンド実行後は、「master」ブランチ(後述)で1つのファイルが変更されました、というメッセージが出てくる。

$ git commit -m 'Initial commit'
[master (root-commit) fedc3d3] Initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 locations.txt

ローカルリポジトリからリモートリポジトリへ反映する
originというのがリモート側のリポジトリで、masterブランチをリモート側に反映することができる
これにより、ようやく開発のチームメンバーはあなたの変更を見ることができるようになる。

$ 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.

ポータル画面の「commit」を確認すると、コミットの状況を確認することができ、先ほどコミットした情報が出力される
https://confluence.atlassian.com/bitbucket/files/304578655/774243333/1/1438194660467/git_commits.png

「source」を確認すると、先ほどローカルで作成したファイルが存在することが確認できる
https://confluence.atlassian.com/bitbucket/files/304578655/750395748/3/1438194659322/git_source.png

●リモートに存在するファイルをローカルへ持ってくる

以下の画面の「new file」をクリック
https://confluence.atlassian.com/bitbucket/files/304578655/741999003/3/1435695027896/new_file_st.png

ファイル名を「stationlocations」とし、syntax modeリストから「HTML」を選択する
ファイルの中身には以下を入力(別にどんなものでも良い)

<p>Bitbucket has the following space stations:</p>
<p>
    <b>Earth's Moon</b><br>
    Headquarters
</p>

https://confluence.atlassian.com/bitbucket/files/304578655/741999033/2/1432138334174/mer_new_file_st.png

コミットをクリックすると以下のような画面に遷移する
https://confluence.atlassian.com/bitbucket/files/304578655/750395825/2/1438196813736/new_file_committed_git.png

リモートで作成したファイルをローカルにコピーする
このコマンドは、他の開発メンバーがソースに変更を加えた際にはよく実施する操作で
なるべく頻繁にリモート側との整合性を取っておくのが良い(と思う)

$ git pull --all
Fetching origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://bitbucket.org/emmap1/bitbucketstationlocations
   fe5a280..fcbeeb0 master -> origin/master
Updating fe5a280..fcbeeb0
Fast-forward
 stationlocations | 5 ++++++++++++++
 1 file changed, 5 insertions(+)
 create mode 100644 station locations

ちゃんとファイルを取得できたことを確認する

$ ls

ここまで、ローカルの変更をリモートに反映する
リモートの変更をローカルに反映する手順を説明しました
続きではブランチの説明です(これがGitBucketの魅力!)

続き
gamushiros.hatenablog.com