[Xcode 5] 新しくなった Source Control で Git の操作をしてみる
はじめに
Xcode 5 で Source Control が File メニューから独立して Source Control メニューの配下に移動になりました。整理整頓され、機能も増えたようです。主に目的別にXcode 5 で Git はどう操作するのかを検証します。(SVNも使えるようですが、ここではGitを使ってみます)
目的別
リモートリポジトリを追加したい
想定:自分で最初にローカルリポジトリを作成する → リモートを設定して他の開発者と共有する。
1. メニューから Source Control > {Repository Name} - {Branch Name} > Configure {Repository Name} を選択します。
3. Remote を設定します。
リモートリポジトリのファイルを取得したい
想定:誰かが作ったリモートリポジトリの内容を取得して作業を始める。
1. メニューから Check Out... を選択し、リモートリポジトリを選択します。一覧にない場合は メニューの Xcode > Preference > Accounts からリモートリポジトリの情報を設定します。
2. Check Out 先の場所を聞かれるので設定します。
ブランチを作りたい
方法1
1. メニューから Source Control > {Repository Name} - {Branch Name} > New Branch を選択します。
2. ブランチ名を設定します。
方法2
1. メニューから Source Control > {Repository Name} - {Branch Name} > Configure {Repository Name} を選択します。
2. Branches タブから 「+」ボタンでブランチの追加をします。
他のブランチに移動したい
1. メニューから Source Control > {Repository Name} - {Branch Name} > Switch to Branch を選択します。
2. ブランチを選択します。(この時に移動前のブランチでファイルを編集している場合はコミットするか変更の取消しが必要です)
ブランチを削除したい
1. メニューから Source Control > {Repository Name} - {Branch Name} > Configure {Repository Name} を選択します。
2. Branches タブから 「-」ボタンでブランチを削除します。
他のブランチの内容をマージしたい
1. メニューから Source Control > {Repository Name} - {Branch Name} > Merge from Branch を選択し、取り込みたいブランチを選択します。
他のブランチにこのブランチの内容をマージしたい
1. メニューから Source Control > {Repository Name} - {Branch Name} > Merge to Branch を選択し、マージさせるブランチを選択します。
2. マージさせる内容を確定させます。
ローカルリポジトリに変更内容を確定したい(Commit)
1. メニューから Source Control > Commit... を選択します。[Push to remote] のチェックを入れるとCommit したものを Pushしてリモートリポジトリにも同時に反映させます。
リモートリポジトリにローカルリポジトリの内容を反映したい(Push)
1. メニューから Source Control > Push... を選択します。
リモートリポジトリの内容を取得したい(Pull)
1. メニューから Source Control > Pull... を選択します。
変更したファイルを変更前の状態に戻したい
全てのファイルの変更を戻す場合
1. メニューから Source Control > Discard All Changes... を選択します。
一部ファイルの変更を戻す場合
1. 変更したいファイルを選択します。
2. メニューから Source Control > Discard Changes in "{File Name}" を選択します。
履歴を見たい
1. メニューから Source Control > History を選択します。
「Show N modified file」 をクリックすると変更内容がDiffで見られます。
ショートカット一覧
機能 | ショートカット |
---|---|
Commit | ⌘⌥C |
Pull | ⌘⌥X |
一覧と書きましたが、デフォルトで割り当てられているのは2つだけでした。PushはCommitから出来たりするので充分なのかもしれません。
Source Control メニューから
- Working Copies
(未検証 どうしたらActiveになるのでしょうか‥) - {Repository Name} - {Branch Name}
リポジトリ名 – 現在居るブランチ名を表示します。- New Branch
ブランチを作成してその作成したブランチに移動します。[git checkout -b] - Switch to Branch
ブランチを切り替えます。[git checkout] - Merge from Branch
別ブランチの変更をカレントのブランチに取り込みます。[git merge] - Merge into Branch
上と逆パターンで対象ブランチにカレントブランチをマージさせます。さらに対象のブランチに移動します。 - Configure {Project Name}
リモートリポジトリの追加/編集、ブランチの追加の追加/編集ができます。プロジェクトを作ったら、まずここでリモートを追加するかと思います。
Xcode4 では Organizer が担当していました。
[git remote] [git branch]
- New Branch
- Check Out
他のリポジトリのファイルを取得し、Xcodeの別ウインドウで開きます。[git clone] - Commit
ローカルリポジトリにCommitします。[Git commit) - Push
リモート登録されたリポジトリに変更を更新します。[Git push] - Pull
リモートリポジトリからファイルを取得し、必要であればマージします。[git pull] - Refresh Status
リポジトリの状態を更新します。[git status] - Discard All Changes
全ての変更を前回のコミットの状態に戻します。[git checkout -- {File Name}] - Add Selected Files
選択されたファイルをステージします。(未検証) - Discard Changes in Selected Files
選択されたファイルをコミット前の状態に戻します。 - Mark Selected Files as Resolved
コンクリフトしたファイルを解決済みとしてマークします。(未検証) - History
コミット履歴を表示します。
まとめ
メニュー体系が整理され、ブランチの操作と履歴の表示が増えました。これでだいぶコマンドラインの出番が減り通常の開発時の作業がXcodeで完結しそうです。