GitHubとの連携~【連載】実況パズルプログラミング
<< Back | -- Index -- | Next >> |
---|
実況パズルプログラミングの連載第4回目です。 パズルアプリケーションを作成しながら、作成過程で思ったこと、考えたこと、検討したことなどをブログ風に書いていきます。
今回は「GitHubとの連携」からです。
似たものを比較する
そのまえにちょっとだけ前回の補足です。
前回Pythonのパッケージ、モジュールがまだ良く分かっていないと話しました。 これらはJavaでいえば何でしょう。 多分PythonのパッケージはJavaのJARで、PhthonのモジュールはJavaのパッケージに近いのかもしれません。 そう考えると少し分かったような気がしてきました。
良くわからない状態で放っておくより、無理やりでも何か知っているものと対応付けて学習すると習得が早いように思います。 学習が進むにつれて似ている点、似ていない点が徐々に明らかになってきます。 さらに理解が進むとそれぞれの長所、短所が分かってきます。 もっと熟考すると短所の改善方法などを編み出してスキルアップできます。
すでによく知っているものでも何かと比較することで特徴が明らかになることもあります。 比較して考える習慣を身に付けると良いかもしれません。
Gitとは
Subversionは長年使いましたが、GitとGitHubは初心者です。 まだGitは良く分かっていませんが一応現段階の知識の概略を整理しておきます。 Subversionは作業領域で編集してリモートリポジトリにコミットしての繰り返しです。 Subversionの領域は2つですが、GitHubを使う場合は領域が4つもあります。
(1)作業領域(3)ローカルリポジトリ(4)リモートリポジトリ(GitHub)、そして(1)と(3)の間に(2)ステージです。(1)で作業完了の後(2)(3)(4)の順番で適宜変更を転送していかないといけません。
大雑把にいうと次のようなコマンドを使います。 作業領域にローカルリポジトリを作るコマンドがgit init
です。(2)に送り出すのがgit add
で(3)に送り出すのがgit commit
で(4)に送り出すのがgit push
です。 git push
する前にターゲットのリモートリポジトリ(GitHub)の場所に名前を付けておくのがgit remote add
です。
Gitローカルリポジトリ作成
最初にローカルリポジトリを作成します。 Eclipseのパッケージ・エクスプローラーでプロジェクトを右クリックし「チーム」「プロジェクトの共用」を実行します。
表示されるダイアログで「Git」を選択し、「次へ」ボタンを押します。
「Gitリポジトリの構成」で「プロジェクトの親フォルダー内のリポジトリを使用または作成」にチェックを入れます。
これによりプロジェクトディレクトリ直下に「.git」ディレクトリができます。 しかし警告が表示されます。「Eclipseワークスペースにリポジトリを作成することはお勧めしません」。 EGitユーザーマニュアルを少し眺めましたが警告の理由は分りませんでした。 少し不安ですがこのまま進めます。「リポジトリの作成」ボタンを押して、「完了」ボタンを押します。 ちなみに私の場合ワークスペースの場所は$HOMEの下に変更してあります。
いったんGitBashでgit status
を実行して状況を確認します。
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.project
.pydevproject
.settings/
okoze/
nothing added to commit but untracked files present (use "git add" to track)
git init
が実行されたようです。 Eclipse使わないでGitBashからgit init
を実行した方が早いかもしれません。
Gitローカルリポジトリにコミット
コミットする前に「.gitignore」ファイルを作成します。このファイルを作成しておかないとキャッシュなど余計なものがリポジトリに登録されてしまいます。「Python gitignore」で検索します。 検索でヒットした次のサイトを参考に「.gitignore」ファイルを作成しましょう。
Eclipseのパッケージ・エクスプローラーでプロジェクトを右クリックし「新規」「ファイル」を実行します。 次に表示されるダイアログの「ファイル名」に「.gitignore」と入力します。「.gitignore」のエディタが開くので先ほど検索したサイトのCodeをコピー&ペーストして保存します。
コミットの準備ができました。 Eclipseのパッケージ・エクスプローラーでプロジェクトを右クリックし「チーム」「コミット」を実行します。「Gitステージング」というビューが開くので、「ステージされていない変更」の右側「++」アイコンをクリックします。 すべてのファイルが「ステージされた変更」に移動します。
この時点でのスクリーンショットではないのですが「Gitステージング」のビューを掲載します。
またGitBashでgit status
を実行して状況を確認します。
$ git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .gitignore
new file: .project
new file: .pydevproject
new file: .settings/de.loskutov.anyedit.AnyEditTools.prefs
new file: .settings/org.eclipse.core.resources.prefs
new file: okoze/__init__.py
new file: okoze/__main__.py
git add
が実行されたようです。 右側の「コミット・メッセージ」欄に「Hello, world! プロジェクトを作成する」と記入して「コミット」ボタンを押します。
再びGitBashでgit status
を実行して状況を確認します。
$ git status
On branch main
nothing to commit, working tree clean
git commit
が実行されたようです。
GitHubリポジトリの作成
GitHubのアカウントがなければ作成します。 そしてGitHubに新しくリポジトリを作成します。 名前は「okoze」とします。名前以外はデフォルトの設定で作成します。ここはそう難しくないと思うので画面は省略しました。方法が良く分からなければ「github 使い方」でGoogle検索してください。
Eclipseのssh設定
EclipseからGitHubにはsshを利用して接続します。 その準備としてEclipseでsshの設定が必要です。「Eclipse GitHub ssh」で検索します。 次のサイトを参考にしました。
Eclipseでgit操作(GitHubからcloneしてpushまで/ssh接続)
参考サイトにスクリーンショットが掲載されているのでここでは文字だけで説明しておきます。次項以降も同様です。
- Eclipseのメニューから「ウィンドウ」「設定」を実行する
- 表示されるダイアログの左のフィルタ欄に「ssh」と入力する
- フィルタされた項目から「SSH2」を選択する
- 「鍵管理」タブを選択する
- 「RSA鍵の生成」ボタンを押して鍵を生成する
- 下方の「秘密鍵の保存」を押して鍵を保存する
- パスフレーズの警告が出ますが私はそのまま「OK」ボタンを押した
- 保存するファイル名は「pleiades23_id_rsa」として保存する
- 画面の中央に「ssh-rsa」で始まる公開鍵が表示されているので公開鍵を選択してコピーする。この公開鍵は次の項目で使用する
以上でEclipseでの操作は終了です。
GitHubのssh設定
続けてGitHubのページに移ります。
- プロジェクトではなくユーザーのSetting画面を表示する。 右上隅のアイコンをクリックして「Settings」を選択する
- 左側のリストから「SSH and GPG keys」を選択する
- 「New SSH key」ボタンを押す
- 表示された画面の「Title」に「pleiades23_id_rsa」と入力する
- その下の「Key」欄にEclipseでコピーした「ssh-rsa」で始まる公開鍵をペーストする
- 「Add SSH key」ボタンを押する
- 次に「okoze」リポジトリを表示する
- Quick setupに表示されているURLをコピーする
- 私の場合は「git@github.com:kibi2/okoze.git」
以上でGitHubの作業は終了です。
EclipseからGitHubへpushする
- Eclpseに戻ってSSHの画面を閉じる
- 「Gitステージング」ビューの左下「HEADのプッシュ」ボタンを押す
- 表示されるダイアログの「URL」に先ほどGitHubでコピーしたURLが入力されていることを確認して「プレビュー」ボタンを押す
- 次のダイアログでも「プレビュー」ボタンを押す
- 次のダイアログで「プッシュ」ボタンを押す
- 「プッシュ結果」ダイアログが表示されるので内容を確認して「閉じる」ボタンを押す
- GitHubページの「Code」タブでokozeプロジェクトがリモートリポジトリに保存されていることを確認する
いったんGitBashでgit remote -v
を実行して状況を確認します。
$ git remote -v
origin git@github.com:kibi2/okoze.git (fetch)
origin git@github.com:kibi2/okoze.git (push)
$ git diff --stat main origin/main
$
git remote add
git push
が実行されたようです。
GitHubでライセンスを追加する
次のサイトを参考にしてプロジェクトにライセンスファイル(LICENSE)を追加します。
ライセンスはGNU GPLv3にしました。
Eclipseでpullする
リモートリポジトリの内容を変更したのでローカルリポジトリに反映します。
- Eclipseのパッケージ・エクスプローラーでプロジェクトを右クリックし「チーム」「プル」を実行する
- GitHubで行ったリモートリポジトリの変更内容がローカルリポジトリに反映される
- okozeプロジェクト直下にLICENSEファイルがあることを確認してください。
- 確認ダイアログが表示されるので内容を確認してダイアログを閉じる
終わりに
今回はGitHubを使ってバージョン管理ができるようにしました。リモートリポジトリの場所は「kibi2/okoze」です。ちなみに「kibi2」は私の屋号から取っています。 Gitの操作はEclipseのGUIを使うよりGitBashで行った方が手早いように感じました。
やっとプログラムの作成環境ができあがりました。 いよいよ次回からはプログラムの実装に入ります。 といってもまだまだ決めないといけないことやら調べないと分からないことがたくさんあるのでどうなることやら。
続きは次回で、またお会いしましょう。
<< Back | -- Index -- | Next >> |
---|
Discussion