*二部構成にしました。チーム作成〜masterブランチ作成は前半です。
■チームに参加する
1. 管理者にアカウントのユーザー名かメールアドレスを伝える
- このときユーザー名とは、ログイン後の画面にて「プロファイルの表示」をした際に左上に表示される名前のうち、カッコ内に記載された名前であることに注意!
- 管理者がメンバーを追加する等のやり方は前半を参照ください
■SourceTreeにクローンする
1.
(ローカル)リポジトリを用意(自身のPC内に
空フォルダを作る)
2. WEBのBitBucketにログインし、チームの共有
(リモート)リポジトリ画面を開く
3. リポジトリ画面のアクションにある「クローン」から「SouceTreeにクローン」
- 「概要」にあるクローンアイコンを押しても同様のポップアップが出る
- 「概要」にあるURLをコピーしSourceTree上でクローンしても良い
4. 先ほど用意した空フォルダを指定して「クローン」
Source Treeのローカルに追加される
*クローン時に何故かログインを求められる現象を確認。正しいユーザー名とパスワードを入力しても弾かれる。WEBでログアウト→ログインし直して上手くいった。同期がとれていないことがあるみたいなので、似たような現象に遭遇したら再ログインや再起動を試してみること。
■リモートリポジトリに変更を加える(ブランチを追加)
1. WEBのリモートリポジトリ画面にある「ブランチの作成」
- ブランチ名をつけてCreate
- /でフォルダのように階層構造を作れる
- 命名規則はこちら
- 管理者の承認が無くても作れる模様
2. これにより、WEBの「ブランチ」画面のフィルターを「マージ済み」に変更すると、先ほどのブランチが追加されていることが確認できる
また、SourceTreeのリモートにもブランチが追加されていることが確認できる
3. SourceTreeのリモートから、ローカルに作成したいブランチをダブルクリック(今回は先ほど追加したブランチを選択)
- ウィンドウがポップアップするので「OK」を選択
- 「新規ブランチをチェックアウト」
- 「ローカルブランチにリモートブランチを追従させる」
これにより、(ローカル)ブランチに先ほどのブランチが追加される
4. ブランチに変更を加える(今回は分かりやすくReadme.txtを追加した)
5. 変更が生じると、SourceTreeにUncommitted changesが発生するので、これを選択
6. Uncommitted changesを選択すると、変更のあったファイルが「作業ツリーのファイル」に表示されるので、コミットしたいファイルにチェックを入れる
7. チェックしたファイルが「Indexにステージしたファイル」に追加されるので、この状態でコミット→プッシュする(今回は「コミットを直ちにプッシュする」にチェックを入れた)
- これにより、WEBのコミット、ブランチにも反映される
8. WEBのリポジトリ画面から「プルリクエストを作成」
- リクエスト元はコミットしたブランチを選択(コミット内容は下部に表示される)
- リクエスト先は合流させたいブランチ(今回はmasterを選択)
- メッセージを添えて「プルリクエストを作成」
9. 変更をマージする場合は、「プルリクエスト」から「マージ」を選択
管理者権限のないメンバーでもmasterにマージできてしまう(詳細不明) masterへのプッシュを管理者に限定することで解決した(前半の「ブランチの管理」参照)
■ブランチの削除
1. リポジトリ画面のNAVIGATIONにある「ブランチ」から削除したいブランチを開き、右上の「…」を押して「ブランチの削除」を選択。
*ブランチの一覧にある「…」からでは何故か削除できないので注意
2. SourceTree側のブランチを削除する。まずはフェッチアイコンを押し、「リモートで削除された追跡ブランチは取り除く」にチェックを入れてOKを押す。これによりSourceTreeのリモートからWEB上で削除されたブランチが消える。
3. 削除するローカルブランチを右クリック→「(ブランチ名)を削除」
- 削除するローカルブランチが選択されている(太文字の)場合はメニューに削除が出てこないので注意
- 削除するブランチしかローカルにない場合は、リモートからmasterブランチなどを持ってきて、そちらに切り替えておく必要がある
↓
■リモートブランチで起きた変更を自分のローカルブランチに反映させる(参考)
*ここでは、masterの変更をStageというローカルブランチに取り込むという例で説明する
1. masterのローカルブランチを「フェッチ→プル」で最新の状態にする
2. Stageをダブルクリックし、カレントブランチにする
3. masterを右クリックし、「masterを〜/Stageへマージ」を選択
4. 実行するか確認されるので、OKを選択
5. これにより、ローカルブランチ(Stage)での作業を維持したまま他のブランチ(master)の変更を取り込むことができる。ただし、競合する場合は修正する必要がある。
■指定フォルダをコミット対象外にする
1. SourceTreeの「リポジトリ設定-> 高度な設定のリポジトリ限定無視リスト」にて.gitignoreファイル(テキスト)を作成。(参考:
.gitignoreの仕様詳解)
2. それをコミット&プッシュ(&マージ)すれば全体で共有する無視設定になる
3. ただし、既にGitツリーに登録されているファイルはgitignoreに記載しても無視されない。
- これらのファイルは作業ツリーのウィンドウにて、右クリックで「追跡を停止する」必要がある。これにより、ローカルにファイルは残るがScourceTreeの追跡対象からは除外される(「git rm --cached」相当)
- フォルダを選んで「追跡を停止する」ことはできない。Shiftキーなどの範囲選択を駆使してファイル単位で追跡を停止する必要がある。フォルダ内のファイルを全て追跡停止にすると、フォルダも作業ツリーに現れなくなる。
- 追跡を停止したファイルはindexにステージしたファイルに移される。これをコミット&プッシュ(&マージ)することで、追跡停止をリポジトリに反映することができる。
〜参考先〜
〜登録済みのため無視できないファイルについての参考〜
■その他:チームIDが変わった場合
1. チームIDが変わると
リモートリポジトリのURLも変わるので、SrouceTree側のURLと対応が取れなくなりエラーが出るようになる
2. SourceTreeのローカルを開いたウィンドウの右上に設定があるのでこれをクリック
3. 問題のリモートリポジトリを選択して「編集」
4. 「URL/パス」を修正してOK
- 前の画面に戻るので、そこでもOKを押すのを忘れないこと
- この編集画面でホスティングサービスやユーザー名を確認できる