無視ファイルの追加
コミット前に無視ファイルを追加しましょう。[作業ディレクトリの変更点]ボタンをクリックするとプルダウンメニューが表示されるので、[無視されたファイルを編集する]を選択します(図7)。
.gitignoreの編集ダイアログが表示されます。左下の[デフォルトの無視ファイルを追加]ボタンをクリックすると、Windowsで必要な無視するファイルやフォルダが自動で追加されるので、[保存]ボタンをクリックします(図6)。
さて無視ファイル(.gitignore)の書式ですが、1行に1つずつ無視させたいファイルやフォルダのパターンを書いていきます。#で始まる行はコメントです。ワイルドカードを使用した特定のサフィックスを持つファイルを一括で無視することもできます。
参考までに、「GitHubのページ」でさまざまなパターンが配布されています。
ステージングエリアへの登録とコミット
無視ファイルが追加されると、binフォルダが作業ディレクトリペインから見えなくなり、登録に必要なファイルだけが表示された状態になります。これらをステージに登録するには、下矢印ボタンをクリックします。1つ矢印は選択されたファイルのみ、二重矢印は変更があったファイルすべてを登録できます。ここでは、下二重矢印ボタンをクリックすると、未追跡のファイルが作業ディレクトリからステージングエリアへすべて登録されます(図7)。これは、git addコマンドに相当する操作です。
最後に、ステージングエリアにコミットしたいファイルが登録したら、右下のテキストボックスにコミットログを入力し、[コミット]ボタンをクリックすれば完了です。
これが、リポジトリの作成から初期コミットまでの一連の流れです。統合された環境によって、多数修正ファイルがあった場合にも、細かくステージング、コミットと作業することができます。また差分なども表示されるため、より作業を効率的に進めることができるのが、GUI操作でのメリットです。
リポジトリへの統合的な操作
リポジトリに対しての操作や情報などは、Git Extensionsのリポジトリブラウザを利用します。リポジトリフォルダのコンテキストメニューから[GitEx Browse]を選択すると、リポジトリブラウザが起動します。
メインメニューからはリポジトリへの各種操作が可能です。
上ペインでは、現在のリポジトリの履歴を確認できます。上記の例では、初期コミットから3回更新があったことが確認できます。それぞれのログを選択すると、その時の状態を下部ペインのタブから、コミット時のファイルツリーや、差分を確認できます(図7)。
作業時のよくある操作
ここでは前回説明しなかった、よくある操作についてフォローします。
ステージングエリアへの登録を取り消す
先ほどGUIでは、ボタン1つでステージングエリアに登録されたファイルを元に戻すことができましたが、ここではCUIで取り消す方法を説明します。サジェスチョンにも表示されているとおり、取り消すためにはgit resetコマンドを利用します(リスト1)。
$ git status // リポジトリの状態を表示 # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: Program.cs # moris@BALTHASAR /c/repository/sample (master) $ git reset HEAD Program.cs // ファイルを指定してステージを取り消す Unstaged changes after reset: M Program.cs moris@BALTHASAR /c/repository/sample (master) $ git status // リポジトリの状態を表示 # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: Program.cs # no changes added to commit (use "git add" and/or "git commit -a") moris@BALTHASAR /c/repository/sample (master)
git resetコマンドはリポジトリの状態を戻すためのコマンドで、引数によってさまざまな動きをします。詳細な説明は割愛しますが、ステージに登録されたファイルを最新のコミットに戻すことを意味しています。HEAD(※1)は現在のブランチの最新コミットを表しています
正確には、git reset --mixed HEAD ファイル名 ですが、--mixed 、HEADオプションは省略時の既定値であるためgit resetファイル名でも同義になります。



