パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Gitのシェア、3年で6倍に」記事へのコメント

  • by Anonymous Coward

    Gitってそんなに便利なの?
    Gitは分散型だから良いとよく聞くが個人で利用するのには管理を集中させて楽できる集中型のSubversionの方がいいのかな?
    サーバにメイン開発環境と外に持ち出す用のノートPCのソースをSubversionで管理してコミットと更新をするだけだし。
    こんな感じで一人で二つの開発環境だとGitってなんかめんどくさそう。

    GitってGUIの便利なフロントエンドというか定番のフロントエンドってあるの?
    現状自分は個人の開発環境でのバージョン管理はSubversionで
    サーバ側はUSVN
    クライアント側はTortoiseSVN and Eclipse+Subversive
    を利用している。

    • by jir (40697) on 2011年07月29日 21時33分 (#1994664)
      svn だとリポジトリ死ぬと履歴無くなっちゃうけど、git は git pull 自体がリポジトリのバックアップになってるので便利。

      でも、git の真価は「良い差分を書こう」とするソフトウェア開発に対する哲学の変化だと思う。もし単にバックアップの様に subversion 使ってるなら、git の良さは理解出来ない。subversion の運用にはそういう哲学がないから。
      親コメント
      • by Anonymous Coward
        > もし単にバックアップの様に subversion 使ってるなら、

        という人はもともと少ないんじゃないかな。

        >「良い差分を書こう」とするソフトウェア開発に対する哲学の変化

        普通にバージョン管理を使っていれば、差分を意識することにはなると思うけど、
        そういうことではない?
        • by zymase (12344) on 2011年07月30日 2時02分 (#1994752)

          Git は履歴書き換えの機能が豊富で、ローカルでどんどん作業してコミットを積み重ねたものを後で見返して、順番を並べ替えたりコミットをまとめたり分割したりして、綺麗なヒストリになるほうに書き換えてから push、ということができます。場当たり的なコミットよりは、論理的な単位に区切られるようによく考えられた小さなコミットの積み重ねの方がレビューもしやすいし、あとからバグを追いかけるのも楽になります。

          一方、Subversion だとコミットしたものは変更不可能なので、ある程度先を見通しながら作業をするときに手戻りなどでどうしても無駄なコミットが生じがちです。

          親コメント
          • by Anonymous Coward

            多分それは良し悪しではなく、そもそも管理するものが違うんだと思う。svnからgitに移行して、最初はgitをsvn/cvs/rcs/sccsのように使おうとして、なんか妙に複雑な気がして馴染めなかった。考え方を切り替えたら、すっと馴染んだ。

            svnまでのは「バージョン管理」であって、履歴をす完全に、安全に保存するのが目的。たとえ間違えたコミットがあってもそれもまた履歴の一部だし、そこを敢えて取り出そうとしなければいいだけだから気にしない。「この時点に戻りたい」っていうところに戻れるのが重要。

            gitは「パッチ管理」。小分けにされた、それ自体

            • by Anonymous Coward on 2011年07月30日 22時35分 (#1995087)
              こんな感じ?
              • svn はソフトウェアを履歴をつけて管理
              • git はソフトウェアの履歴自体を管理

              ある履歴を異なる履歴にくっつけたり(merge)、ある履歴を別の履歴のある時点にくっつけたり(rebase)、どこかの履歴にある一つの差分だけを抜いてきたり(cherry-pick)、etc。こういうがsvnにない便利なことかな?
              あと、誰がどの差分を書いたのかがいつまでも追跡可能。単に diff を順番に突っ込むんじゃなく、誰が書いた差分なのかを管理してる。あ、これは一人で使ってる分にはいらないか…?でも他人の全然関係ない異なるソフトウェアのリポジトリから特定の差分抜いてきたりもできるんだよね。履歴としては、その差分をcommitしたのはあくまでも元リポジトリの作者。
              あと、ちょっと実験的なコードを書こうとして、一旦今まで書いたものをcommitせずにどっかに置いといて(stash)、別のブランチ切ってどんどん書いてみたりとか?

              親コメント
              • by Anonymous Coward

                > ある履歴を異なる履歴にくっつけたり(merge)、ある履歴を別の履歴のある時点にくっつけたり(rebase)、どこかの履歴にある一つの差分だけを抜いてきたり(cherry-pick)、etc。こういうがsvnにない便利なことかな?

                gitでは歴史捏造できるん?
                そうなら便利というか危険なかおりが...

              • by Anonymous Coward
                危険に思うのは品質保証部門とか監査部門とかの感覚でしょうね。
                そういう「開発者以外に見せる」部分が多い日本の企業には、
                そこだけSubversionにしておくのをお勧めします。
                #まったくの二度手間ですけどね…
              • by Anonymous Coward
                歴史が捏造出来ると思うのはそれは一つの世界しかないという概念に閉じてるからかな?
                git は歴史を捏造してるんじゃなくて、パラレルワールドを好きなだけ作れる(svnでもbranch切れるけどコストも敷居も高い)。

                元の歴史が変わるんじゃなくて、そこから別の歴史が始まってる。単に他の歴史の一部を持ってくることも出来るだけ。
                通常、公開サーバなどに push してある master branch の履歴は subversion の trunk のように単純に常に積み重なるようにメンテする(これはgitの仕様じゃなくて文化だけど)。別のブランチを個人で開発用、実験用、debug 用、リリース
              • by Anonymous Coward

                自分以外に公開するレポジトリ上での歴史改変は推奨されていないです、もちろん。やろうとすると「どうしてもやりたいなら-fオプション付けてね」と言ってエラーを返されてしまいます。

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...