題名のとおりなのですが、
プログラムのことをネットで調べてるとちょくちょく目にするものなので、なんなのか疑問に思い調べてみると、「バージョン管理」だとか、「あるプロジェクトを複数人でやるときに役立つ」みたいなことが書いてあります。
ただ、自分は学生で、バージョン管理だったり、複数人であるプロジェクトをみたいなことはしていません。
そういう人でも使う意味(というか、使い道)はあるんでしょうか?
いろんなコードを書いているし、Androidのアプリ開発なんかにも興味があるので、githubっていうのがそれに有効ならば、使いたいというのと、
多くの人が使っているのであれば、将来的に必要になるかもしれないので、今のうちに触っておきたいということで質問しました。
「リポジトリ」っていう単語の意味もよくわからないような状況なので、優しく教えていただけるとうれしいです
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答11件
0
こんにちは。
まず、Git(ギット)というバージョン管理システムがあります。
そして、Gitの機能 + 多人数でソフトウェアを開発する際に必要となる様々な機能(例えば掲示板のようなもの)を提供するWEB上のサービスで最もメジャーなものがGitHubです。
さて、バージョン管理システムですが、Teppayさんは古いソース・コードを残しておきたいと思ったことはないでしょうか?
仕様変更したところ、しばらくしてその仕様変更が原因で不具合が出ることも少なくないと思います。原因を追求するために、当該仕様変更を行う前と後のソース・コードを比較して、心当たりのある部分を探すケースも良く有ります。そのような時、古いソースを残しておくことが必要になります。
また、複数の人がプログラム開発をしている時、同じソース・ファイルを別の人が修正してしまうことって、時々発生します。その2つのソース・ファイルを矛盾なく手作業で結合する(マージする)のはなかなか大変です。頻繁にやっていると、マージ・ミスで無駄なバグを産んじゃいます。
これらのような状況を緩和できるツールがバージョン管理システムです。なかなか便利ですよ。一度使うと手放せません。(他にも色々便利な機能はありますし。)
そして、そのような作業をWEB上で協力して行えるようしたサービスがGitHubです。
バージョン管理システムってなかなか普段お目にかからない概念があるので、慣れるのが大変です。特にGitは機能が豊富な分、難しいです。でもマスターできれば最強のバージョン管理システムと思います。
ですので、是非、若い内にGitをマスターしておくことをお薦めします。
サルでもわかるGit入門等、入門の解説サイトも多数ありますし。
投稿2016/07/07 08:06
総合スコア23272
0
「ちょっとした思いつきでコードの書き換えをやりたいけど、
採用しなかった時に元に戻す手間を考えるといまいち踏み切れない・・・」
「A方式とB方式を比較したいけど一々ファイルを書き換えるのが面倒・・・」
そんなあなたにバージョン管理システム!
コードのいろんな時点での状態を保存していつでも手軽に元に戻したりできます!
ひとりで開発する分にはとりあえずこういう嬉しさです。
雑に言えば、
プロジェクトをバックアップして、
わかりやすい名前つけて、
どこかにまとめて管理して、
必要なときに戻す。
っていうのをやるためのツールです。
(マージとかもあるよ!)
リポジトリって言うのはコードの履歴(バックアップたち)です。
で、そのバージョン管理システムの今メジャーなのがGitで、
そのGitのホスティングサービスの1つがGithubです。
投稿2016/07/07 07:57
編集2016/07/07 08:15総合スコア13521
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
将来的な話をするなら、使い方を覚えておいてまず損はないと思います。
複数人で開発する場合、なんらかのバージョン管理ツールは必ず使うことになると思うので。
それが github かどうかは分かりませんが、バージョン管理ツールは結構似てるところがありますし。
(チェックアウトとかコミットとか)
まったく触ったことないよりは絶対良いですよ。
一人開発で嬉しいのは、他の方も書かれていますが修正履歴が残ることとかですかね。
「あれここのコード書き直したらなんか変な動きになった… 壊した?前どういうコードだった?」
みたいな時に、今のソースと前のソースの差異を見比べたりできます。
投稿2016/07/07 08:16
編集2016/07/07 08:24総合スコア1126
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Git(Hub)の概要についてはすでに回答されていますので、
「ひとりでも使う意味はあるのか」という部分を回答します。
複数人の開発ですと、ファイルの編集が衝突するので、
Gitなどのバージョン管理システムの導入は必須でしょう。
では個人開発ではどうか?
規模が大きいか長期に渡る開発、高度か複雑な処理、
重要な機能(仕事で使うとか収入源だとか)を持つ、
そういう場合はバージョン管理を推奨します。
なぜかを一言で説明すると、
そういう開発はひとりでシステム全体を把握できず、
ひとりでも複数人の開発に近づくからです。
言い換えると、開発の規模が大きくなると
過去や未来の自分と衝突する可能性が出てきます。
「昔の自分は、なんでこんな実装にしたんだ」とか。
そういうとき過去に戻ってやり直せるタイムマシンです。
GitHubはGitのリモートリポジトリを提供するWebサービスです。
「リポジトリ」とはデータの一元的な保管場所です。
GitHubを使うかどうかは、質問者の方が開発するソフトを
オープンソースにしたいかどうかです。
投稿2016/07/10 03:44
総合スコア5592
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
gitで使うリモートリポジトリーを提供してくれるWebサービスって感じです。
投稿2016/07/07 09:48
編集2016/07/08 04:36退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
以下はバージョン管理システムの初心者編です。
http://tracpath.com/bootcamp/
投稿2016/07/07 08:08
総合スコア3579
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
たとえば、Aというソースコードが書かれたファイルがあったとして、太郎くんと花子さんが違う機能をそのAというソースコードに追加したとします。
太郎くんの方が早く終わり保存して、次に花子さんが終わったので保存した場合、バージョン管理ソフトを使っていないと上書き保存されてしまいます。
このような事故が起きないように導入されているのがバージョン管理ソフトでgithubもその一つです。
リポジトリとは、ファイルとかディレクトリを保存する場所のことで、サーバーにアップされている複数人で共有するリモートリポジトリや、そのリモートリポジトリを取得してまずは自分で編集するためのローカルリポジトリというものがあります。
投稿2016/07/07 07:59
総合スコア2021
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
他の方々が既にバージョン管理の意義等について、よい回答をしてくださっていますが、個人がGitHubを使う意味、メリットという観点で、実際に使って感じたものを記載させていただきます。
・他の人が書いたコードが見えるので勉強になる
・オープンソースのコミュニティに参加することで、視野が広がる
・過去のソースコードなどノウハウを貯めやすい
また、組織だったり作る側として、オープンソースにするメリットは以下のようなものがあると思います。
・様々な人から知見や協力を得ることで、素早く開発できる
・低コストで開発できる
一方で、組織としてはセキュリティの問題だったり、組織にノウハウが溜まらないということから、オープンソースに対してデメリットの方が大きい場合も多いです。
個人でも、メリットだけではなくデメリットがある場合もあると思うので、その時々に応じてどのような環境で開発するかは考えた方がよいかと思います。
投稿2021/02/09 08:29
総合スコア13
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
若輩者ながら、かみ砕いて言うと、「github」はwebサービスです。
何のwebサービスかと言うと、「git」というバージョン管理ソフトを通してコードの変更履歴なんかを可視化するwebサービスです。
何でわざわざwebサービス上で「git」の変更履歴を管理するかと言うと、「git」自体には素人がとっつきやすい操作画面が無いのですが、「github」上だと分かりやすく表示してくれます。
※曲解であることは認めます。
加えて「git」は共有サーバ、他の方も見れるような「github」に履歴ファイル(リモートリポジトリ)を設置すると、複数人でひとつのコードやプロジェクトを編集する機能が備わっているので自前で共有サーバを立てるよりも楽チンです。
ちなみに「git」を対象にしたサービスは「github」意外にも「BitBucket」、「Assembla」など複数ありますが、webサービス上でgitファイルを管理することが目的なのでほぼほぼ同じだと思われます。
※後者2つは触ったこと無し
他の方に比べて回答レベルが低いのが気になりますが私の理解だとこんなんです^^:
投稿2016/07/19 05:27
編集2016/07/19 05:30総合スコア54
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
#VCS
かんたんなイメージではソースコード置き場と考えればいいです。ですが便利な機能がいっぱい付いています。
例えば
- 前のソースコードが欲しいのに…無い!
- ファイル置き場にあるソースが人に上書きされちまった!
と言うのがただのファイル置き場ではしばしば起きるでしょう。
しかし、VCSではバージョン1のファイル、2のファイル…と分けて管理できます。
過去のソースを取ってきたいときはVCSをつかえばOKです。
そしてVCSの一種がGitです。
#専門用語解説
Gitの専門用語の一部を解説します。一部を簡単にです。
- リポジトリ - ソースコードなどのコンテンツのまとまり
- リモートリポジトリ - サーバーのリポジトリ
- ローカルリポジトリ - 自分の環境のリポジトリ
- Clone (クローン)-リポジトリの複製。
- Push (プッシュ)-ローカルでの変更をリモートに反映
- Pull (プル)-リモートの内容とローカルでマージする(fetch+merge)。
- Commit (コミット)-ローカルリポジトリに変更を反映。
- Fetch (フェッチ)-リモートの変更を取ってくる
- Merge (マージ)-リモートの最新情報を取ってくる
- checkout(チェックアウト)-リモートの一部をローカルに反映
他にも
Aさん Bさん - リポジトリ - ↙ ↘ Clone Clone ↓ ↓ Push→→↑ 編集中 ↳→→→→→→↘ (PushできちまったらAの変更は!?) ←
という状況でも競合と言うもので回避できるようになっています。
(BがFetch+Merge:Pull、しないとコミットできない)
詳しくはGoogleとかで調べてみてください。
そしてGitHubは、Gitリポジトリを提供してくれるサービスです。共有リポジトリの他にも、ソースコードの公開によく使われます。
投稿2016/07/14 09:30
編集2016/08/13 04:49総合スコア113
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。