はじめに
後編の今回は,
ファイルの移動やリネーム
この章は機能の紹介ではなく,bar.
とfoo.
)
bar.
を別のディレクトリに移動txt foo.
をtxt hoge.
にリネームtxt ("Rename..."リファクタリングを実行)
「Versionツールウィンドウ」
リスト1 ファイルと移動とリネームの実行ログ
20:20:09.103: cd /Users/masanobuimai/AndroidStudioProjects/MyApplicationProject
20:20:09.104: git rm --ignore-unmatch -- bar.txt
rm 'bar.txt'
20:20:09.228: cd /Users/masanobuimai/AndroidStudioProjects/MyApplicationProject
20:20:09.229: git add --ignore-errors -- MyApplication/bar.txt
20:20:19.973: cd /Users/masanobuimai/AndroidStudioProjects/MyApplicationProject
20:20:19.974: git add --ignore-errors -- hoge.txt
20:20:20.064: cd /Users/masanobuimai/AndroidStudioProjects/MyApplicationProject
20:20:20.064: git rm --ignore-unmatch -- foo.txt
ログを見る限りではどちらもgit rm
とgit add
の組み合わせで移動とリネームを実行していました。git mv
を使ってないのに大丈夫だろうか?」
念のためSourceTreeで同じリポジトリのログを確認したところ,git mv
で,
結論としては,
Android Studioでは,
移動・ リネームには git mv
を使わず,git rm
とgit add
を使う
ブランチ&マージ
Gitに限らず分散バージョン管理システムの真骨頂であるブランチ&マージについてです。筆者の私感ですが,
ブランチの作成
辿り着く先のメニューは同じなのですが,
- "VCS Operations Popup..."から"Branches..."を実行する。
- メニューバーの
「VCS → Git → Branches...」 を実行する。 - ステータスバーのブランチ名をクリックする。
いずれも同じく図3の
ここで
特定のブランチの
ブランチの切り替え
先ほどの
これも一種の切り替えなのですが
このチェックアウトが完了すると,
似たような方法で
図6 「Checkout Tag or Revision」
この
そういえば,
マージ
ブランチときたらマージです。マージも"VCS Operations Popup..."やメニューバーの
まずは"Merge Changes..."の場合,
ここでマージしたいブランチやそれに関連するオプションを指定して実行します。
もう一方の
こちらの場合,git merge <branch名>
」
どちらの方法も現在のブランチ
「指定したブランチ」
を 「現在のブランチ」 に マージする
せっかくのGitなのでばんばんブランチを作ってマージしましょう!
図9 「Git Branches」
「Git Branches」
コンフリクトした場合
では何かしらの問題でマージでコンフリクトを起こしてみましょう。図10のようにわざとファイルの更新を衝突させてマージでコンフリクトを起こします。
コンフリクトを検知すると図11のようなダイアログが表示され,
図11 「Files Merged with Conflicts」
右側にあるボタンがコンフリクトの解決方法です。コンフリクトが起きたファイル一覧のうち,
表1 「Files Merged with Conflicts」
ボタン名 | 意味 |
---|---|
Accept Yours | 自分のファイルを採用する。 |
Accept Theris | 相手 |
Merge | 手動でマージを行う。 |
「Files Merged with Conflicts」
図12 「Merged Revisions for」
「Merged Revisions for」
「Merged Revisions for」
ここで
すべてのコンフリクトを解決すると自動的にコミットが行われます。
間違って,
または,
余談ですが,