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

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

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

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

GitHub

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

GitLab

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

SVN

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

Q&A

解決済

2回答

4485閲覧

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

zico_teratail

総合スコア907

Git

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

GitHub

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

GitLab

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

SVN

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

1グッド

2クリップ

投稿2015/06/04 01:55

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

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

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

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

Gitにはいろいろな機能があるかと思いますが、自分にとって必要だと思ったのは

  • バージョン管理
  • バックアップ

この二つの機能です。

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

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

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

palm-t👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

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

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

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

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

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

できます。便利で「使いたい」と思ったときに覚えればいいです。

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

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

投稿2015/06/04 02:05

編集2015/06/05 00:27
takotakot

総合スコア1111

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

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

zico_teratail

2015/06/04 23:58

複数のファイルにまたがって影響が出るような場合のコード改変にも使えるということでしょうか? >あまり凝った機能は覚えずに 本当におっしゃる通りで、凝ったことをすればするほど結局自分で把握できなくなり、便利なつもりがGitのせいで逆に混乱したりしたら元も子もないかな、と恐れています。 ものすごく単純な使い方なら、私のような一人環境で役立つかもしれません。
guest

0

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

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

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

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

投稿2015/06/04 09:17

soyanakagawa

総合スコア12

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

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

zico_teratail

2015/06/04 23:56

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問