LoginSignup
12
17

More than 5 years have passed since last update.

SmartGit の使い方

Posted at

経緯

Git の Windows クライアントとしてしばらく SourceTree を使っていましたが
ブランチが増えてくるごとに遅くなってきたので、別のクライアントを探していました。

そんな中で見つけた SmartGit が割と使いやすかったので、機能をざっと調べてみました。

  • 対象バージョン
    • SmartGit 6.5.8 (Windows)

ちなみに SmartGit は最初の30日間は無料で使えますが
その後はライセンス購入が必要です。

Menu

SmartGit の全メニューを記載します。

Menu - Repository

Add or Create

Ctrl + O
新規または既存gitリポジトリを追加。

Clone

Ctrl + Shift + O
リモート(ssh://)またはローカルのgitリポジトリの複製を作成。

Close

Ctrl + F4
開いているリポジトリを閉じる。

Add Group

リポジトリグループを作成。
Eclipse のワークスペース的な感じ?

Settings

Alt + Return
リポジトリの設定。

Exit

Alt + X
終了


Menu - Edit

Filter Files

Ctrl + F
Files に表示するファイルのフィルタリングができます。
* によるワイルドカード指定が可能。便利。

Select Commitable Files

Ctrl + Shift + A
選択中フォルダ内で、コミット可能なファイルをすべて選択します。
編集中のファイルが何も無ければ、何もしません。

Select Directory

ファイルを選択しているとき、その親ディレクトリを選択します。

Copy Name

Copy Path

Copy Relative Path

Copy Message

Copy ID

Clear Output

Ctrl + Backspace
Outputビューの内容をクリアします。

Customize

ショートカットキー、およびツールバーのアイコンをカスタマイズできます。

Preferences

Ctrl + ,
アプリの設定を行います。


Menu - View

Files ビューの設定を行います。


Menu - Remote

Pull

Ctrl + P
リポジトリから Pull または Fetch します。
Pull は fetch + merge ですが、普通にマージするか rebase するかを選べます。

Synchronize

Ctrl + Y
ローカルファイルの Push および、リモートからの Pull を一連して行います。

Push

Ctrl + U
現在のブランチをリモートに Push します。

Push To

Ctrl + Shift + U
特定のブランチ/ポイントの Push や、Force Push はこちらで行います。

Add

リモートリポジトリを追加します。

Fetch More

リモートから Fetch を行います。

Rename

Delete

Submodule

Properties

リモートのURLを変えるときはここで行います。


Menu - Local

Stage

Ctrl + T
選択したフォルダ内で、未ステージ状態のファイルをステージに上げます。

Unstage

Ctrl + Shift + T
Stage の逆。

Index Editor

ファイル選択時、Index Editor なるものを表示します。
使い道はよくわかりません…

Ignore

Rename

Toggle 'Assume Changed'

ファイルの 'assume-unchaned' フラグをトグルします。
このフラグは、そのファイルを無視したいときに使います。

もしローカルでファイルが変更されていたとしても、それは無視されます。
これは例えばリモートからPullしたときに、ローカルファイルの変更内容が上書きされることを意味します。

Toggle 'Skip Worktree'

ファイルの 'skip-worktree' フラグをトグルします。
このフラグは、そのファイルを無視したいときに使います。

もしローカルでファイルが変更されていれば、それは無視されません。

Resolve

Ctrl + Shift + V
Conflict が発生したとき、それを解消します。

Commit

Ctrl + K
リポジトリに Commit を行います。
直前のコミットを取り消して、今回のコミットで上書きすることもできます。

Undo Last Commit

Ctrl + Shift + K

Edit Last Commit Message

Shift + F2

Discard

Ctrl + Z
ローカルで変更した内容を破棄して、HEAD または Index の状態まで戻します。

  • HEAD
    • リポジトリの内容まで全て戻す
  • Index
    • ローカルでaddしたファイルはそのままで、リポジトリにあるファイルの変更分のみ戻す

Remove

Ctrl + -
対象のファイルをトラック対象から外します。

Delete

Delete
対象のファイルをローカルシステムから削除します。

Reset

Ctrl + R
git reset を行います。
通常ローカルで変更した内容を戻すときには reset を使うのですが
Smartgit では前述したように Discard コマンドがあるので、
こちらの Reset はもっと特殊な用途で使うことになるはずです。

Squash Commits

Ctrl + J
ローカルリポジトリ上での複数のコミットを、一つにまとめます。
使い方を説明します。

まず、Outgoing ビュー上で複数のコミットを選択します。

Outgoing ビューは、まだリモートに Push していないコミットの一覧を表示します

ここで、メニューから Squash Commits を選択、もしくは Ctrl + J します。
すると、コミットメッセージを入力するダイアログが現れるので、メッセージを入力して
「Squash Commits」します。
すると、その複数のコミットが一つにまとめられます。

条件として、選択する複数のコミットは連続したコミットである必要があります。
つまり、A -> B -> C とあった場合、AとCを選択して Squash することはできません。

Squash Commits を使えば、ローカルでこまめにコミットしていても
リモートに Push する前にそのコミットを一つにまとめてしまえば
最終的に残るコミットが一つになるので、非常にすっきりしたコミット履歴を保つことができます。
Squash Commits は是非使いましょう。

Save Stash

Ctrl + S
現在の状態を Stash として保存した後、HEADの状態まで revert します。

  • Stash メッセージ
  • untracked file を含めるか
  • Stash 後、revert をしないでそのままにするか

Stash した内容は、Branches ビューの Stashes から確認できます。

Apply Stash

Ctrl + Shift + S
保存された Stash の状態まで戻します。
その後、Stash を破棄するかそのまま残すかを選べます。

Drop Stash

Stash を破棄します。

Clean Up


Menu - Branch

Git-Flow

Check Out

Merge

Cherry-Pick

Revert

Ctrl + Alt + M
revert処理を行います。
revert とは「特定のコミットで行われた全ての変更を元に戻す新しいコミットを生成し、それを現在のブランチに適用する」コマンドです。

  • A -> B -> C -> D

上記のようなコミットの履歴があった場合、Dで行った変更を取り消したい場合があります。
普通に考えれば、Dのコミットを取り消せばCの状態に戻るのですが
git ではこれには reset コマンドを使います。
revert はそうではなく、あくまで新しいコミットを作成します。

D の段階で revert コマンドを実行すると、対象となるコミットを選択するダイアログが開きます。
ここで間違えやすいのが、Cのコミットを選択してしまうことです。
ここで選択すべきなのは、「取り消したいコミット」です。
つまり、Dを選択します。
すると、以下のようになります。

  • A -> B -> C -> D -> D'

D' の内容はDの内容を完全に打ち消すものなので、結果的にこのブランチの内容はCのときと同じになります。

Rebase

各種 rebase 処理を行います。
この処理は便利ですが、rebase の動作をよく把握したうえで使うようにしましょう。

Rebase HEAD to

Ctrl + D
現在のブランチの最新コミット(とその関連コミット全て)を、選択したコミットに適用します。

Rebase to HEAD

Ctrl + Shift + D
選択したコミット(とその関連コミット全て)の内容を、現在のブランチの先端に適用します。

Add Branch

F7
ブランチを作成します。

Add Tag

Shift + F7
現在のブランチにタグを作成します。

Rename

Delete

Set Tracked Branch

現在のブランチに、追跡ブランチを設定します。
通常はリモートブランチをローカルに checkout するときに自動的に追跡ブランチが作成されますが
ここでは手動で追跡ブランチを設定できます。

Stop Tracking

追跡ブランチを解除します。


Menu - Query

Open

選択しているフォルダやファイルを開きます。

Show Changes

F4
選択したファイルの、HEADからの変更内容を表示します。

Conflict Solver

ファイルの衝突を解消するウィンドウを開きます。

Log

Ctrl + L
選択したファイルのgitログを表示します。
ブランチを選択していた場合、ルートディレクトリのgitログを表示します。

Blame

Ctrl + Shift + L
選択したファイルの blame を表示します。
これは、ファイルの各行がどのコミットで変更されたかを一覧で見るものです。
これによって、バグ混入の時期や犯人を探すのが主な目的です。


Menu - Changes

Reload

Shift + F5

Undo

HEAD vs. Index

HEAD と Index の内容を比較します。

Index vs. Working Tree

Index と作業ツリーの内容を比較します。

Previous Change

Shift + F6
前の変更を表示します。

Next Change

F6
次の変更を表示します。

Ignore Whitespace for Line Comparison

空白を無視して比較します。

Ignore Case Change for Line Comparison

大小文字の違いを無視して比較します。

Settings

比較モードの詳細を設定します。


Menu - Tools

Open File

Open in Explorer

Open in Terminal

Reveal in Explorer

Open Git-Shell

Set Excutable Tag

Unset Excutable Tag

Apply Patch


Menu - Review

Create Pull Request

Sync

Configure


Menu - Window

Menu - Help

Window - Repositories

gitリポジトリを管理するウィンドウ(ビュー)です。
複数のリポジトリを管理できますが、カレントリポジトリは常に一つだけ選択されます。

また、Eclipse の Working Sets のように、複数のリポジトリをグルーピングして管理できます。

Window - Files

Repositories で選択したフォルダ内にあるファイルから
フィルタリングした結果をリストアップするビューです。

nnn files hidden

フィルタリングされて非表示になっているファイル数

File Filter

Ctrl + F でアクティブになります。
フィルタリングする文字列を指定します。
通常は * などでワイルドカードが指定可能ですが、正規表現での指定も可能です。
また、指定した文字列はパターンとして保存することができます。

Files from Subdirectories(アイコン1)

Ctrl-0
Repositories で選択したフォルダのサブフォルダまで全て表示対象とします。
デフォルトON

Show Unchanged Files(アイコン2)

Ctrl-1
変更が無いファイルも表示対象とします。
デフォルトOFF

Show Unversioned Files(アイコン3)

Ctrl-2
まだバージョン管理されていないファイル(ex. 新規作成ファイル)も表示対象とします。
デフォルトON

Show Staged Files(アイコン4)

Ctrl-4
ステージに上がっているファイルを表示対象とします。
デフォルトON

Show Ignored/Skipped Files(アイコン5)

Ctrl-3
.gitignore によって無視されたファイルも表示対象とします。
デフォルトOFF

Show Assume Unchanged Files(アイコン6)

Ctrl-5
'assume-unchaned' フラグが付いたファイルも表示対象とします。
このフラグは、git管理されているが一時的にそのファイルを無視したいときに使います。
デフォルトOFF

Window - Outgoing

まだプッシュされていないコミットを一覧を表示します。

Window - Branches

カレントリポジトリの全ブランチを表示します。
それを含め、以下のものが表示されます。

  • ローカルブランチ一覧
  • リモートブランチ一覧
  • タグ一覧
  • Stash一覧

ウィンドウ内では、ブランチ名のインクリメンタルサーチが可能です。
大量のブランチを扱うとき、この機能がとても重宝します。

Window - Blame

ファイルの blame コマンド実行時に表示されるウィンドウです。
なかなか高機能です。

ツールバー

View Commit

blame対象とするコミットを指定します。

Highlight

どの行をハイライト表示するかを選択します。

  • Changes Since
    • 特定のコミットを指定し、そのコミットとの差分をハイライト表示
  • Age
    • 行が変更された時期によって、色分け表示
  • Auther
    • 行を変更した Author によって、色分け表示

Commit

Highlight = Changes Since にしたときのみ有効
差分表示対象とするコミットを指定します。

Windows - Blame - ショートカット

Find

Ctrl + F
ファイルから文字列を検索します。
インクリメンタル検索できないのがイタい。

Go To First Commit

Alt + Home
このファイルの初回コミットに移動します。

Go To Previous Commit

Alt + Up
一つ前(過去)のコミットに移動します。

Go To Next Commit

Alt + Down
一つ先(未来)のコミットに移動します。

Go To Last Commit

Alt + End
このファイルの直近のコミットに移動します。

Go To Line

Ctrl + G
指定行に移動します。

Line History

Ctrl + Shift + 1
選択した単行の全変更履歴を見るウィンドウを下部に開きます。

Close

Ctrl + F4
ウィンドウを閉じます。

Repository Settings

リポジトリの設定ウィンドウで設定できる内容について記載します。

Remember as default

ここで設定した内容をデフォルトとして設定し
他のプロジェクトでも適用します。

Pull

For new branches configure to

新しくブランチを作るときの設定をします。

  • Merge fetched remote changes
    • リモートで変更された内容を、merge して取り込む
  • Rebase local branch onto fetched changes
    • リモートで変更された内容を、rebase して取り込む

Prune obsolute remote tracked branches

リモートから削除されたブランチをローカルで削除するかどうか。
デフォルトON

Always fetch new commits, tags and branches from submodule

サブモジュールからのコミットなどもフェッチする。
デフォルトOFF

Update registered submodules

登録されたサブモジュールを更新する。

Commit

コミットするときの名前とemailの設定。

Text encoding

このリポジトリの文字エンコーディングを指定。
Windows で作業する場合、UTF-8 に変えておくこと。

Preferences

ここについては後ほど…

Commands

User Interface

Hosting Providers

Tools

Proxy

Smartgit Updates

Crash Reporting

12
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
17