質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

Q&A

解決済

5回答

10494閲覧

GitとSVNの違い

退会済みユーザー

退会済みユーザー

総合スコア0

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SVN

SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

0グッド

0クリップ

投稿2017/04/05 11:43

これから現場で使うことになり、
一応調べたのですが
Gitの場合は各自でローカルリポジトリをクローンして、
そこにコミットしていき、さらにプッシュする事で
SVNでいうコミットした状態になるというのは理解できました。

ただそれがどうして良いのかがいまいちよくわかりません。
SVNを使用してコミットするのとあまり違いがない気がするのですが、
ローカルリポジトリを作ることによるメリットというのは、
どういったときに感じられるものなのでしょうか?

使ってるうちにわかってくるものなのかもしれませんが、
事前知識として学んでおきたいです。
ご教授を宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

こんにちは。

Gitは高機能で自由度が高く、その分、使い方が難しいです。つまり、学習コストはかかりますが、生産性がより上がります。
SVNは逆で使い方はGitより容易ですが、自由度は低いです。つまり、学習コストはGitより少なくて済みますが、生産性はGit程上がりません。

Gitはローカルにコミットすることでロールバックを容易にできます。そして、プッシュ前にコミット群を整理して分かりやすいコミット履歴へ修正できます。(でも、正直これがかなり難しいのも事実です。)
SVNはそれらを一切できません。

Gitはブランチを手軽に作れます。自分だけのブランチも作れます。
SVNはブランチを作るのは結構手間がかかりますし、ローカルにブランチは作れません。

投稿2017/04/05 13:41

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/04/05 14:20 編集

ご回答ありがとうございます。 なるほど、ローカルでコミットしてた分をまとめてプッシュするため 履歴としてわかりやすくなるんですね。 確かにSVNだと後から修正してコミットとかしたりすると、 どれがどの機能分の修正なのかが管理しづらいですね。 なんとなくGitのいい部分が見えてきた感じがします。
guest

0

ローカルコミットのメリットは以下だと思います。
1、開発途中でもコミットできる
2、そのため他に開発者たちに影響が出ない

SVNで開発途中のものをコミットしたら多分他の開発者たちに影響が出て大変なことになると思います。

投稿2017/04/05 11:55

tomoyuki123

総合スコア273

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/04/05 14:10

ご回答ありがとうございます。 なるほど、何かした際の影響範囲を自分の中で抑えられるのですね。 まだ体感できてないので、わかりづらいですが そう考えるとたしかに便利そうですね。
guest

0

既に git を使うことが決まっているのであれば、あるがまま使えばよいだけで、「SVNと比べて~」などは休日の暇な時にでも考えればよいと思います。

ローカルで自分だけのリポジトリを作れると、自由にブランチを作れたり、開発途中の手抜きのコミットを push する前に整理して恥しくない内容に後で整えたりできて、いろいろ便利です。まさに仰る通り、使っていくうちに分かります。

多機能な分、覚えることも多いですけど。

投稿2017/04/05 13:19

koko_u

総合スコア936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/04/05 14:17

ご回答ありがとうございます。 pushするまで自由にいじれるってのは良いかもですね、 まだ体感してないんでわかりにくいですが、 使ってるうちにSVNにはもう戻りたくないとか思い始めそうです(笑)
guest

0

gitだとローカルにあるうちはコミットを修正できるということが、大きなメリットです。

svnだとコミットした後で「あーっ、このファイルも含めなければいけなかったんだ」ということに気づいても、もう遅いです。別のコミットでファイルを追加するしかありません。それが「別コミットに分けようと思ってたのに、1つのコミットに混ぜてしまった」というミスなら、なお致命的です。もうそのコミットを分割することはできません。

しかしgitであれば、pushする前のコミットは(厳密には違うんですが)上書きや変更、削除ができます。なんならサーバ上にpushした後でも、-fオプションを付けて強制的に上書きすることができます。(関係者に了解を取ってやらないと大迷惑な行為なので気軽にやるべきではありませんが)

投稿2017/04/05 13:18

編集2017/04/05 13:20
ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/04/05 14:15

ご回答ありがとうございます。 確かにSVNだとコミットした後失敗に気づいても、修正が若干面倒な部分がありますね それを事前に食い止められるのは大きなメリットですね。
guest

0

Gitをおすすめします。

GitにはSVNにはできないことがあります。
○プルリクエスト
プッシュした成果を利用者or管理者に見てもらえるように要求する機能

投稿2017/04/05 12:50

bjnes

総合スコア113

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/04/05 14:12

ご回答ありがとうございます。 ソースレビューがしやすくなるということですか、 確かにSVNと違って、そういった点でわかりやすくなりそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問