

「Git」とは何なのでしょうか？インターネットでは、ソースコード等の分散型バージョン管理システムとだけ説明されていることが多いですが、具体的な使用例を教えて頂きたいです。

①バージョン管理でしか、普通は使わないものですか？

②「Git」を使うには何か登録が必要なのでしょうか？また、登録情報を忘れてしまったらどうすればいいのでしょうか？

③「GitHub」「GitLab」と何か関係があるのでしょうか？

④Eclipseに標準装備されている「Git」(パースペクティブのところ)と、単体インストールする「Git」は何か違うのでしょうか？

⑤個人的な妄想？ですが、Gitリポジトリというところから何らかのソースコード？や必要なものを取ってきてコーディングに使うみたいな、ライブラリ的な機能があったりするのでしょうか？


CC BY-SA 4.0
2019-02-19T15:38:56.347
52881
2019-02-22T03:57:35.277
2019-02-19T16:06:06.280
19110
question
git eclipse
Gitとは何ですか？


Git
はバージョン管理のためのソフトウェアです。特に多人数でもひとつのソフトウェアを開発できるように設計されています。使い方としては、開発者個々人のローカルな環境にそれぞれソースコードを保存しつつ、互いのソースコードを比較・統合していくことで次のバージョンを作っていくという形式です。

Git
を使ったソフトウェア開発の典型的なやり方では、ソースコードが置かれているあるひとつのサーバーをメインのサーバーとして、そこに最終的な変更を集積するのが簡単です。更に、メインサーバーでの
Git による管理の様子は GUI
で綺麗に見えた方が便利です。そこでそのような、ソースコードを置くサーバーとなりつつ管理の様子を表示するサービスとして、GitHub や
GitLab、Bitbucket などが存在します。更にこれらは Git の機能を GUI で補助するだけでなく、ソフトウェアの問題を管理する issue
トラッカーの機能など追加の機能がついていたりします。

純粋に Git のみを使う際、何らか第三者のサービスにユーザー登録する必要はありません。ただし、自分のコンピュータにインストールされた Git
に自分のユーザー名とメールアドレスを教えてあげないといけません。登録したユーザー名とメールアドレスは、自分がソースコードに与えた変更の作者名として使われます。なお、上述の
GitHub などのサービスを利用するにはそれらへのユーザー登録が必要です。

Eclipse にも [Egit というプラグインが搭載されており](https://git-
scm.com/book/ja/v2/Appendix-A%3A-%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E7%92%B0%E5%A2%83%E3%81%A7%E3%81%AEGit-
Eclipse%E3%81%A7Git%E3%82%92%E4%BD%BF%E3%81%86)、これができること自体は Git と殆ど変わりません。純粋な
Git 自体は CLI なので、インターフェースは異なります。

Git リポジトリからソースコードを取ってくるというのはおそらく `git clone` や `git pull`
というコマンドの動作に相当するものを想像なさっているのだと思います。しかしこの回答でこれらを説明すると長くなってしまいます。そこでまずは Git
が具体的にはどのようなソフトウェアなのかを知るのが良いでしょう。具体的には[『Pro Git』日本語版](https://git-
scm.com/book/ja/v2)や[『サルでもわかるGit入門』](https://backlog.com/ja/git-
tutorial/)などのチュートリアルを読んでください。


CC BY-SA 4.0
2019-02-19T16:43:41.267
52883
2019-02-20T10:22:19.183
2019-02-20T10:22:19.183
19110
19110
52881
answer


> ①バージョン管理でしか、普通は使わないものですか？

基本的にはバージョン管理でしか使いません。

一度設定が完了すると比較的少ない労力でソースを持ってこれることから  
簡易デプロイ用途して使う場面もないことはないです。

> ②「Git」を使うには何か登録が必要なのでしょうか？また、登録情報を忘れてしまったらどうすればいいのでしょうか？

Gitは単にインストールして使うツールです。  
ダウンロード＆インストールのためにどこかに会員登録するというようなものではありません。

> ③「GitHub」「GitLab」と何か関係があるのでしょうか？

Gitは複数人で開発をすることに向いています。  
その部分をもっと推し進めてコラボレーションしやすくしたものが「GitHub」というWebサービスです。  
GitHubは、GitHub, Inc.が運営しているサービスですので、会員登録すると使える機能が増えます（有料の機能もあります）

> ④Eclipseに標準装備されている「Git」(パースペクティブのところ)と、単体インストールする「Git」は何か違うのでしょうか？

この機能のせいで Git = Eclipse であると誤解している人に以前あったことがありますが、もちろん Git = Eclipse ではありません。  
本来Gitはコマンドラインで使うものですがEclipse上で操作しやすいようにしたものがあるというような認識でよいかと思います。  
（環境によっては、単体インストールしたGitと違うパスにインストールされている。単体インストールしたGitと違うバージョンのものが入っているなどといった点では違いがあるかもしれません）

>
> ⑤個人的な妄想？ですが、Gitリポジトリというところから何らかのソースコード？や必要なものを取ってきてコーディングに使うみたいな、ライブラリ的な機能があったりするのでしょうか？

リポジトリと呼ばれるところから、ソースコード一式を持ってきてバージョン管理したソースを変更して開発プロジェクトを進めていくものですので、認識は合っているように感じます。  
細かいGitの使い方はこの質問では回答しきれないので、必要の度に、過去の別の方が書いた質問を参考にする（それでも解決しないならご自身で質問する）等がよいかと思います。


CC BY-SA 4.0
2019-02-20T12:14:44.480
52902
2019-02-20T23:31:06.793
2019-02-20T23:31:06.793
9008
9008
52881
answer


>
> 「Git」とは何なのでしょうか？インターネットでは、ソースコード等の分散型バージョン管理システムとだけ説明されていることが多いですが、具体的な使用例を教えて頂きたいです。

「バージョン管理システム」は変更履歴を管理するソフトウェアで、プログラム開発などで使われます。それなりに歴史が古く、CVS、SVNなどが有名です。Git
はこれらの後発で、Linuxカーネル開発のために開発されました。

一般的なGitの使い方は次のようになります。

  1. リモートサーバにあるリポジトリをローカルに複製 (git clone)
  2. ローカルでファイルの変更、追加、削除を行う
  3. ローカルリポジトに変更履歴を記録する (git commit)
  4. リモートサーバーのリポジトリへの変更をローカルに反映させる (git pull)
  5. 変更内容が衝突する場合はマージする (git merge) ※自動マージ可能なものに限る
  6. ローカルの変更内容をリモートサーバーのリポジトリに反映させる (git push)

集中管理型だと、上記の 2 のあとに 6 がくる感じなので、ソフトウェア開発のワークフローが 大きく異ってきます。
Gitだとローカルリポジトリを好きに使えるのとマージが楽なのが特徴です。

ただ、個人的な印象だと GitHub を使うために Git を使うみたいなところがあります。

GitHub は リモートリポジトリを提供している プロジェクト管理用の Web サービスです。オリジナル にはない Pull Request
という機能があります。GitLab は GitHub に似てますが サーバーにインストールして使います。

Eclipse の Git は、オリジナルの Git のフロントエンドです。オリジナルはコマンドラインツール ですが、GUI版の Gitクライアントは
多数あり、そういったものの一種ですね。


CC BY-SA 4.0
2019-02-20T14:03:15.207
52906
2019-02-22T03:57:35.277
2019-02-22T03:57:35.277
13022
5008
52881
answer