4. .gitignore_globalを使う
.gitignoreを使ってGit管理するファイルを除外できることはご存知かと思いますが、自分のローカル環境で自動で作成されてしまうようなファイルをいちいち.gitignoreに追加するのはめんどくさいですよね。
そんなときは.gitignore_globalを使いましょう。
Macであればターミナルを開いて、
git config --global core.excludesfile ~/.gitignore_global
とコマンドを叩くと、ホームフォルダ直下に.gitignore_globalというファイルができます。
ここに無視したいファイル、例えば.DS_Storeなどのファイルを書き込んでおくと、全てのリポジトリでそのファイルを無視してくれるので、わざわざプロジェクトごとの.gitignoreに書かなくても済みます。
5. 競合を解決してみる
複数人で開発していると、同じファイルの同じ場所を編集してしまって競合が発生することも多々あります。
テキストエディタで該当ファイルを開いて修正してもよいのですが、いろんなところで競合が起きていると、それをひとつひとつテキストエディタで修正していくのはけっこう大変です。
そんなときは「FileMerge」を使って、差分を比較しながら競合を解決していきましょう。
FileMergeはMacの開発環境である「Xcode」をインストールすると一緒にバンドルされているアプリで、ファイルの差分比較ができるソフトです。そのため、Xcodeを事前にインストールしておきましょう。
実際に競合が起きた場合、SouceTreeではこんな感じで競合ファイルに「!」マークがつきます。
さあ、恐れずに競合を解決していきましょう!
まずは競合しているファイルを選択して、右クリック。
メニューから、競合を解決 > 外部マージツールを起動、を選択します。
するとFileMergeが起動するのですが、けっこう時間がかかる場合もあるので、おとなしく待ちます。
何か聞かれたらproceed anywayと答えましょう。
するとファイル比較画面が表示され、競合している部分が色つきで映されます。
この画面だと左側のファイルがマージ元、右側のファイルがマージ対象のファイルになります。
そして下部に表示されているファイルがマージ後のファイルの状態。
右下のActionのセレクトボックスによって、
- Choose left 左側のソースを採用
- Choose right 右側のソースを採用
- Choose both(left first) 両方の変更を採用した上で左側のソースを上に置く
- Choose both(right first) 両方の変更を採用した上で右側のソースを上に置く
となっています。
競合箇所が複数あるときはその箇所ごとに上記Actionを選択して、どちらのソースを残すか、もしくは両方採用するかを選択していきます。
全ての箇所の競合が解決できたら、コマンド+sでファイルを保存してFileMergeを終了させましょう。
FileMergeを起動すると、BACKUP_XXXX、BASE_XXXX、LOCAL_XXXX、REMOTE_XXXX、のようなファイルが自動作成されますが、こちらは不要ファイルなので、競合解決が済んだら削除しましょう。
まとめ
いかがでしたでしょうか?
Gitにはまだまだいろんな機能がたくさんあって、僕も勉強中ですが、ここに上げた操作を覚えるだけでだいぶ快適にGitを活用できると思います。
それではよいバージョン管理を!