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

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

ただいまの
回答率

90.49%

  • Git

    1341questions

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

  • GitHub

    802questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

  • GitLab

    130questions

    GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

  • SVN

    89questions

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

Gitの導入価値について【一人WebPGの場合】

解決済

回答 2

投稿

  • 評価
  • クリップ 2
  • VIEW 2,741

zico_teratail

score 561

Gitを導入すべきかどうかで悩んでいます。

状況としては一人でPHP+MySQLの開発をやっています。
仕事の9割は自社サイトの開発運用、1割は受託開発です。

「自社」と言っても社員などはおらずすべて自分ひとりだけで作業しています。
他人とチームで共同作業することはまずありません。

このような状況で、Gitを導入する価値はありますでしょうか?
入門サイトなどをいくつか見ていましたが、習得のハードルがとても高く感じてしまいました。

Gitにはいろいろな機能があるかと思いますが、自分にとって必要だと思ったのは
  • バージョン管理
  • バックアップ
この二つの機能です。

しかし現在ソースコードを保存しているフォルダはDropboxフォルダなので、上記二点の機能はすでに存在しています。
バージョン管理についてはたぶんGitのほうがきめ細かく出来るのだろうと思われますが、私の使い方では今のところDropboxにて単純にファイルの過去版管理ができていて十分に思えます。

でも私が気づいていないだけで、Gitを使ってみればもっと便利になるかもしれません。

今から習得コストをかけてでもGitを導入すべきでしょうか?
ぜひ賛否両論いろいろなご意見を教えてください。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+8

そのような状況であれば、確かにメリットは薄いかもしれませんね。
しかし、私は git を使うようにしています。

理由はいろいろな方が書いて下さるとは思いますが…。
例えば、「この機能追加(A)やっぱりいらない」となったときに、単一ファイルのバージョン管理では不十分で、変更に関連する複数のファイルを同時に変更することが必要になります。しかも、機能(A) の後に 機能(B) を追加していた時に、単純に過去への書き戻しでは、機能(B) の実装を消すことになってしまいます。
バージョン管理システムを適切に使っていれば、手間を大幅に削減することが可能です。

あまり凝った機能は覚えずに、add, commit, branch(checkout) の基本だけ抑えて、バックアップに使いながら慣れていくのが良いのではないでしょうか。巻き戻したくなったときに、「git 巻き戻し」で調べて、やってみればいいわけです。失敗しても、それこそ Dropbox がなんとかしてくれます。

複数のファイルにまたがって影響が出るような場合のコード改変にも使えるということでしょうか?

まだGitを勉強していないので詳しくは分かりませんが、
「機能毎にまとまってmasterにマージ」「そこだけリバート」というのは、要するにファイル全体ではなくて、一部分だけを元に戻したり出来る・・・ということでしょうか?
だとしたら便利ですね!
ただ便利ですがその分複雑にもなっていきそうな気がして、躊躇しています。
できます。便利で「使いたい」と思ったときに覚えればいいです。

例えば、関数の名前を変更するリファクタリングを行いたいときに、リファクタリング前にコミット(C)しておき、リファクタリング後にコミット(D)しておけば、関数名を元に戻したいときには、いつでも、コミット(D) をリバートすれば、「コミットしたファイル全て」に対して、関数名を元に戻すことができます。

逆に混乱することも、あるかもしれませんが、それを上回るメリットがあると、(使っている人は)思っています。コミットしかしない分には、作業を阻害することはまずありませんから、適当にやってみるとよいでしょう。こまめにコミットする癖をつけておけば、良いと思います(あとで git rebase 等でまとめるのは簡単です)。
git checkout と git reset は、ファイルの変更を伴うので、注意しながら利用して下さい。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/05 08:58

    複数のファイルにまたがって影響が出るような場合のコード改変にも使えるということでしょうか?


    >あまり凝った機能は覚えずに

    本当におっしゃる通りで、凝ったことをすればするほど結局自分で把握できなくなり、便利なつもりがGitのせいで逆に混乱したりしたら元も子もないかな、と恐れています。

    ものすごく単純な使い方なら、私のような一人環境で役立つかもしれません。

    キャンセル

+1

習得しても良いのではないかなと思います。

機能毎にまとまってmasterにマージする運用にすれば、後ほどバグが出た際もいったんそこだけリバートして巻き戻すことも出来ますので、何かと捗るのではと。
それから、作業ログとしても有効だと思います。

習得につきましては、おそらく10時間程度でかなりとの頃まで学習できるでしょう。
しかし集団開発の実運用を経験するか、使い方を直接質問できる相手がないと、なかなか腹落ちして理解するのがむずかしいと思いますが...

私の経験からいうと、
・git pullが何をやっているか(何をやっているのか)
・ブランチの概念
・リモートブランチ 追跡ブランチ ローカルブランチの概念
・リベース運用
このあたりを深く理解するのがなかなか大変でした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/05 08:56

    まだGitを勉強していないので詳しくは分かりませんが、
    「機能毎にまとまってmasterにマージ」「そこだけリバート」というのは、要するにファイル全体ではなくて、一部分だけを元に戻したり出来る・・・ということでしょうか?
    だとしたら便利ですね!

    ただ便利ですがその分複雑にもなっていきそうな気がして、躊躇しています。

    自分の想像と違う動作になってバージョン衝突とかになったりしないのかな?など。

    キャンセル

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

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Git

    1341questions

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

  • GitHub

    802questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

  • GitLab

    130questions

    GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

  • SVN

    89questions

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