しかしドイツのルートヴィヒ・マクシミリアン大学(LMU)で行われた研究によって、初期生命の遺伝子と考えられているRNAそのものに翻訳機(リボソーム)なしにアミノ酸の重合を独自に行う機能があることが示されました。
⇧ amazing...
Eclipseのワークスペースとは?
Eclipseというのは、
ベースとなるワークスペースと、環境をカスタマイズするための拡張可能なプラグインシステムが含まれている。Eclipseは主にJavaで書かれており、主にJavaアプリケーションの開発に使用されるが、Ada 、ABAP、C 、C ++ 、C# 、Clojure 、COBOL 、D、Erlang、Fortran 、Groovy 、Haskell、JavaScript、Julia、 Lasso、Lua、NATURAL、Perl、PHP、Prolog、Python、R、Ruby(Ruby on Railsフレームワークを含む)、Rust、Scala、Schemeなどのプラグインを介して他のプログラミング言語のアプリケーションを開発するために使用することもできる。
⇧ 「統合開発環境(IDE:Integrated Development Environment)」の1つで、Javaとか使って開発してる場合は、
とかが良く名前を聞くような気がしている。
概念としては以下のようなものだ。
⇧ 上記サイト様によりますと、イメージとしては上図のようにEclipseの起動の際に指定が必要とのこと。
で「ワークスペース」が何なのかというと、
この.metadataに格納されるものとしては、以下がある。
- どんなプロジェクトがあるのか
- プロジェクトの実行環境等がどうであるか
- 各種プラグインの設定状態がどうなのか
- プログラムコードをすばやく文字列検索するためのインデックスファイル
等など、Eclipse上で作業する際のありとあらゆるものが格納されている。
⇧ いろんな要素を含んでいるらしく、
ワークスペースの一般的な姿は以下だ。
⇧ 上図のようなイメージになるようです。
Eclipseとかで「プロジェクト」を作成すると、漏れなく「ワークスペース」配下で管理されてしまうということかと。
Gitとは
話は脱線し、Gitとは?
Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。Linuxカーネルのソースコード管理に用いるためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。Linuxカーネルのような巨大プロジェクトにも対応できるように、動作速度に重点が置かれている。現在のメンテナは濱野純 (英語: Junio C Hamano) で、2005年7月から担当している。
⇧ 分散型バージョン管理システムとあるのですが、「バージョン管理システム」は、
バージョン管理システムは大きく「集中型バージョン管理システム」と「分散型バージョン管理システム」に分けることができます。
⇧ 上記サイト様によりますと、
- 集中型バージョン管理システム
- 分散型バージョン管理システム
の2つのタイプに大別されるようです。
Wikipediaさんによると、
分散システム(ぶんさんシステム、英語: distributed system)とは、主にネットワークにより接続された複数のコンピュータによって構成されたシステムのことである。対義語は、集中システム(英語: central system, centralized system)。
⇧ とあるので、「分散型バージョン管理システム」であるGitは、「分散システム」ということになるんですかね。
⇧ 上図のイメージ図が、Gitの仕組みらしい。
プラットフォームを利用するメリットとして特に次の3つがどのプラットフォームでも共通して言えるものであり、大きいメリットでしょう。
⇧ 上記サイト様によりますと、Gitを利用する場合は、Gitプラットフォームも一緒に利用することが一般的で、
- GitHub
- BitBucket
- GitLab
の3つが有名どころらしいです。
GitBucketというのもあって名前がややこしいですが、GitBucketはGitHubと同様の機能を提供するサーバー用のソフトウェアのことです。BitBucketは、GitBucketを使ってチーム開発向けの機能を提供しているサービスのことです。
⇧ ということらしい。
Egitとは?
Eclipseプロジェクトを管理しているEclipse Foundationが公開しているドキュメントによると、
EGit is an Eclipse Team provider for Git. Git is a distributed SCM, which means every developer has a full copy of all history of every revision of the code, making queries against the history very fast and versatile. The EGit project is implementing Eclipse tooling for the JGit Java implementation of Git.
⇧ EclipseでGitを利用できるようにしたものということのようです。
EclipseのワークスペースにGit リポジトリーは含めない方が良いらしい
で、ようやっと本日のお題。
IBMが公開しているGitの利用方法のドキュメントで、
リポジトリーの作成
Eclipse で使用する Git リポジトリーに関する考慮事項
概要
EGit を使用して Git リポジトリーをセットアップする場合、(「プレイグラウンド」とは対照的な)「実動」リポジトリーの作成に関して次の 2 点の推奨事項があります。
⇧ 上記のような記載があり、Eclipseワークスペース内にGitリポジトリーを作成しない方が良いという。
理由としては、
⇧ パフォーマンスに関わる問題が大きいそうです。
やんごとなき、Eclipseの「ワークスペース」外部作成推し。
Eclipseのワークスペース内のプロジェクトでワークスペース外部にGitリポジトリーを作成して管理できるか試してみる
というわけで、Eclipseで作成している「Spring Boot スタータープロジェクト」で検証してみます。
⇧ 上記サイト様を参考にさせていただきました。
ちなみに、「ローカルリポジトリ」と「リモートリポジトリ」の関係は、
⇧ 上記サイト様の図のようなイメージになるらしいです。
■ローカルのGitリポジトリーを作成
まずは、ローカルのGitリポジトリーを作成します。
Git管理したいプロジェクトは、
⇧ 上記の記事で利用してるプロジェクトです。
Eclipseで対象のプロジェクトを選択し右クリックで、「チーム(E)」>「プロジェクトの共用(S)...」を選択。
「Git」を選択し、「次へ(N)>」を選択。
「作成...」ボタンを押下。
「リポジトリー・ディレクトリー(D):」に、ローカルのGitリポジトリーの作成場所を指定します。ここで、Eclipseのワークスペース以外の場所を設定すればOK。
「完了(F)」ボタンを押下。
「完了(F)」ボタンを押下。
ローカルのGitリポジトリーが作成できました。
■リモートのGitリポジトリーを作成
続いて、リモートのGitリポジトリーを作成していきます。
今回は、GitHubを利用しています。GitHubのアカウントの作り方などは、
⇧ 上記サイト様が詳しいです。
GitHubで自分のアカウントのページにログインできたら、「New」で。
「Repository name」をローカルのGitリポジトリーの名前と合わせて、「Add a README file」のチェックが入っていないことを確認し、「Create repository」ボタンを押下。
■リモートリポジトリにローカルリポジトリの内容をプッシュする
Eclipse側で「ビューの表示」>「その他」を選択。
「Git」の中の項目をShiftを押しながらすべて選択し、「開く(O)」ボタン押下。
で、ローカルのGitリポジトリの管理下においたプロジェクトが選択された状態で、
「Git ステージング」タブを選択。
リモートのGitリポジトリに追加したいローカルのGitリポジトリのファイル群を、ローカルのGitリポジトリの「ステージングエリア」に追加します。
「コミット・メッセージ」を書き込んで、「コミットおよびプッシュ(P)...」ボタンを押下。
エラー出ましたけど...
何回やってもGitHubでリモートリポジトリにpushとかできなくて、
最近までGithubを普通に利用していましたが、ある日突然pushコマンドを受け付けなくなりました。
記述にあるURLへ行くと「パスワード認証は2021年8月13日で廃止」となっているではないですか。。
⇧ へぇ~、Egitだとエラーメッセージで対処法の載ってるURL出してくれないから分からなかったのですが、パスワード確認廃止されたんですね...
GitHubの自分のページで、「Settings」を選択。
左サイドバーから「Developer settings」を選択。
左サイドバーから「Personal accsess tokens」を選択し、「Generate new token」を選択。
「Note」を適当に入力し、「Expiration」を選択。無期限にしてみました。
当然宜しくないとのお𠮟りですが、ローカル環境なので、一旦、このまま進めます。う~ん、もう、SSH認証とかに切り替えたほうが良い気はする...
「Select scopes」については、GitHubのドキュメントの説明と同じにしてみました。
で、トークンの作成が完了したら、トークンはテキストエディタなどにコピーしておきます。
で、改めてEclipseでプッシュを試みる。GitHubでプッシュ先のリポジトリのURLをコピーしておきます。
で、Eclipseで「Gitリポジトリ」でローカルのGitリポジトリの「ブランチ」>「ローカル」を選択した状態で、「ブランチへプッシュ(P)...」を選択。
「パスワード」にさきほどGitHubで作成した「Perasonal access tokens」の値を設定し、「プレビュー(V)>」ボタン押下。
「プッシュ(P)」ボタンを押下。
「ユーザー」「パスワード」入力。「パスワード」は「Perasonal access tokens」の値を設定。「ログイン(L)」ボタンを押下。
リモートリポジトリにプッシュできました。
う~ん、EclipseもGitもGitHubもよく分からん部分が多いのよね...
Visual Studio CodeのほうのVue.jsのプロジェクトについても、GitHubにプッシュしてみました。
⇧ Vue CLIを使ってVue.jsのプロジェクト作ってる影響なのか、ローカルのGitリポジトリが既に作成されてました。
毎度モヤモヤ感が半端ない...
今回はこのへんで。