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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

GitHub

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

Q&A

11回答

3073閲覧

githubってなんですか

akamakku

総合スコア191

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

GitHub

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

0グッド

5クリップ

投稿2016/07/07 07:46

題名のとおりなのですが、

プログラムのことをネットで調べてるとちょくちょく目にするものなので、なんなのか疑問に思い調べてみると、「バージョン管理」だとか、「あるプロジェクトを複数人でやるときに役立つ」みたいなことが書いてあります。

ただ、自分は学生で、バージョン管理だったり、複数人であるプロジェクトをみたいなことはしていません。
そういう人でも使う意味(というか、使い道)はあるんでしょうか?

いろんなコードを書いているし、Androidのアプリ開発なんかにも興味があるので、githubっていうのがそれに有効ならば、使いたいというのと、
多くの人が使っているのであれば、将来的に必要になるかもしれないので、今のうちに触っておきたいということで質問しました。

「リポジトリ」っていう単語の意味もよくわからないような状況なので、優しく教えていただけるとうれしいです

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

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

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

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

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

guest

回答11

0

こんにちは。

まず、Git(ギット)というバージョン管理システムがあります。
そして、Gitの機能 + 多人数でソフトウェアを開発する際に必要となる様々な機能(例えば掲示板のようなもの)を提供するWEB上のサービスで最もメジャーなものがGitHubです。

さて、バージョン管理システムですが、Teppayさんは古いソース・コードを残しておきたいと思ったことはないでしょうか?
仕様変更したところ、しばらくしてその仕様変更が原因で不具合が出ることも少なくないと思います。原因を追求するために、当該仕様変更を行う前と後のソース・コードを比較して、心当たりのある部分を探すケースも良く有ります。そのような時、古いソースを残しておくことが必要になります。

また、複数の人がプログラム開発をしている時、同じソース・ファイルを別の人が修正してしまうことって、時々発生します。その2つのソース・ファイルを矛盾なく手作業で結合する(マージする)のはなかなか大変です。頻繁にやっていると、マージ・ミスで無駄なバグを産んじゃいます。

これらのような状況を緩和できるツールがバージョン管理システムです。なかなか便利ですよ。一度使うと手放せません。(他にも色々便利な機能はありますし。)
そして、そのような作業をWEB上で協力して行えるようしたサービスがGitHubです。

バージョン管理システムってなかなか普段お目にかからない概念があるので、慣れるのが大変です。特にGitは機能が豊富な分、難しいです。でもマスターできれば最強のバージョン管理システムと思います。
ですので、是非、若い内にGitをマスターしておくことをお薦めします。
サルでもわかるGit入門等、入門の解説サイトも多数ありますし。

投稿2016/07/07 08:06

Chironian

総合スコア23272

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

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

0

「ちょっとした思いつきでコードの書き換えをやりたいけど、
採用しなかった時に元に戻す手間を考えるといまいち踏み切れない・・・」

「A方式とB方式を比較したいけど一々ファイルを書き換えるのが面倒・・・」

そんなあなたにバージョン管理システム!
コードのいろんな時点での状態を保存していつでも手軽に元に戻したりできます!


ひとりで開発する分にはとりあえずこういう嬉しさです。

雑に言えば、

プロジェクトをバックアップして、
わかりやすい名前つけて、
どこかにまとめて管理して、
必要なときに戻す。
っていうのをやるためのツールです。
(マージとかもあるよ!)

リポジトリって言うのはコードの履歴(バックアップたち)です。

で、そのバージョン管理システムの今メジャーなのがGitで、
そのGitのホスティングサービスの1つがGithubです。

投稿2016/07/07 07:57

編集2016/07/07 08:15
ozwk

総合スコア13521

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

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

0

将来的な話をするなら、使い方を覚えておいてまず損はないと思います。
複数人で開発する場合、なんらかのバージョン管理ツールは必ず使うことになると思うので。

それが github かどうかは分かりませんが、バージョン管理ツールは結構似てるところがありますし。
(チェックアウトとかコミットとか)
まったく触ったことないよりは絶対良いですよ。


一人開発で嬉しいのは、他の方も書かれていますが修正履歴が残ることとかですかね。

「あれここのコード書き直したらなんか変な動きになった… 壊した?前どういうコードだった?」

みたいな時に、今のソースと前のソースの差異を見比べたりできます。

投稿2016/07/07 08:16

編集2016/07/07 08:24
sk_3122

総合スコア1126

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

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

0

Git(Hub)の概要についてはすでに回答されていますので、
「ひとりでも使う意味はあるのか」という部分を回答します。

複数人の開発ですと、ファイルの編集が衝突するので、
Gitなどのバージョン管理システムの導入は必須でしょう。

では個人開発ではどうか?

規模が大きいか長期に渡る開発、高度か複雑な処理、
重要な機能(仕事で使うとか収入源だとか)を持つ、
そういう場合はバージョン管理を推奨します。

なぜかを一言で説明すると、
そういう開発はひとりでシステム全体を把握できず、
ひとりでも複数人の開発に近づくからです。

言い換えると、開発の規模が大きくなると
過去や未来の自分と衝突する可能性が出てきます。
「昔の自分は、なんでこんな実装にしたんだ」とか。
そういうとき過去に戻ってやり直せるタイムマシンです。


GitHubはGitのリモートリポジトリを提供するWebサービスです。
「リポジトリ」とはデータの一元的な保管場所です。

GitHubを使うかどうかは、質問者の方が開発するソフトを
オープンソースにしたいかどうかです。

投稿2016/07/10 03:44

LLman

総合スコア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

PineMatsu

総合スコア3579

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

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

0

たとえば、Aというソースコードが書かれたファイルがあったとして、太郎くんと花子さんが違う機能をそのAというソースコードに追加したとします。
太郎くんの方が早く終わり保存して、次に花子さんが終わったので保存した場合、バージョン管理ソフトを使っていないと上書き保存されてしまいます。
このような事故が起きないように導入されているのがバージョン管理ソフトでgithubもその一つです。

リポジトリとは、ファイルとかディレクトリを保存する場所のことで、サーバーにアップされている複数人で共有するリモートリポジトリや、そのリモートリポジトリを取得してまずは自分で編集するためのローカルリポジトリというものがあります。

投稿2016/07/07 07:59

s.t.

総合スコア2021

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

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

0

他の方々が既にバージョン管理の意義等について、よい回答をしてくださっていますが、個人がGitHubを使う意味、メリットという観点で、実際に使って感じたものを記載させていただきます。

・他の人が書いたコードが見えるので勉強になる
・オープンソースのコミュニティに参加することで、視野が広がる
・過去のソースコードなどノウハウを貯めやすい

また、組織だったり作る側として、オープンソースにするメリットは以下のようなものがあると思います。
・様々な人から知見や協力を得ることで、素早く開発できる
・低コストで開発できる

一方で、組織としてはセキュリティの問題だったり、組織にノウハウが溜まらないということから、オープンソースに対してデメリットの方が大きい場合も多いです。

個人でも、メリットだけではなくデメリットがある場合もあると思うので、その時々に応じてどのような環境で開発するかは考えた方がよいかと思います。

投稿2021/02/09 08:29

keishiro_w

総合スコア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
hpptms

総合スコア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
sun-solar-arrow

総合スコア113

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

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

0

github 入門
で google 検索してみましょう。

書店や図書館で、 git や github についての本を眺め、良いと思った本を購入/借りるとよいです。
QA サイトでの短い回答からだけでは得られないことをたくさん学べるはずです。

投稿2016/07/07 13:40

katoy

総合スコア22324

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問