Subversion(TortoiseSVN)とGit(SourceTree)を比べてみる

Gitがよく分からないので、TortoiseSVNとSourceTreeを比べてみる。

概念

ざっくりとSubversionとGitの違いを図にすると、下記のような感じかと思われる。


ローカルにもってくる

既存のリポジトリをローカルに持ってくる。

SubversionTortoiseSVN)の場合

チェックアウトしたいフォルダで右クリックし、[SVNチェックアウト]を選択する。

リポジトリのURLを入力し[OK]。
(今回はローカルに適当なリポジトリ作って試しています)

チェックアウトされる。

Git(SourceTree)の場合

SourceTreeを起動し、[新規/クローンを作成する]を選択する。

リポジトリのURLと保存先を入力し[OK]。

クローンが作成され、

SourceTree上から操作できるようになる。
(ブックマークは非表示にしています)


ファイルを修正する

もともと存在してあったREADME.mdファイルに1行を追加してみる。

SubversionTortoiseSVN)の場合

アイコンのマークが赤いビックリマークに変わる。

Git(SourceTree)の場合

エクスプローラー上では何も変わらないが、

SourceTree上の作業ツリーのファイルの所に、変更のかかったファイルが表示される。


修正を反映する

↑の修正をリポジトリに反映する。

SubversionTortoiseSVN)の場合

右クリックメニューから[SVNコミット]を選択する。

コミットしたいファイルにチェックを入れ(通常、最初から入ってる)、
メッセージを入力し、[OK]を押すと修正がリポジトリに反映される。

Git(SourceTree)の場合

コミットするファイルのチェックボックスにチェックを入れる。
(チェックを入れると、Indexにステージしたファイルに移動する)

[コミット]メニューを選択し、メッセージを入れ、[コミット]すると、 ローカルのリポジトリにコミットされる。

リモートのリポジトリには反映されておらず、プッシュしていない修正が1件となっている。

[プッシュ]メニューを選択し、[OK]を押すと、リモートのリポジトリに反映される。


最新の状態にする

他の環境で、README.mdファイルに1行追加する。
そして、その修正を取り込み、最新の状態にしてみる。

SubversionTortoiseSVN)の場合

右クリックメニューから[SVN更新]を選択すると、最新の状態になる。

Git(SourceTree)の場合

[プル]メニューを選択し、[OK]を押すと、最新の状態になる。


ログを確認する

他の環境でどのような修正が行われたのかログを確認してみる。

SubversionTortoiseSVN)の場合

右クリックメニューから[TortoiseSVN]-[ログを表示]を選択すると、

ログが確認できる。

Git(SourceTree)の場合

SourceTreeのログのタブをクリックすると、ログが確認できる。


修正を戻す

README.mdファイルに1行追加し、この修正を取り消してみる。

SubversionTortoiseSVN)の場合

右クリックメニューから[TortoiseSVN]-[変更の取り消し]を選択し、

確認画面で、[OK]を押すと、元に戻る。

Git(SourceTree)の場合

SourceTreeで、対象のファイルを右クリックして、[破棄]を選択。

確認画面で、[OK]を押すと、元に戻る。