fc2ブログ

GitHubを使う(3)

 前回の続きです。今回は、前回リモートリポジトリにpushしたファイルを再度cloneで呼び出して、編集後、再pushします。

 VS Codeで前回gitに使用したフォルダは一旦削除しておき、新たに「git clone」して、フォルダを作成してスタートしました。
 まず、README.mdを編集しました。git_redit_1_200927.pngPythonコードに計算を追記することにします。3、4行目が追加されたコードです。実行結果も問題なしです。2つのファイルは編集済みなので、M(Modified)表示されています。git_redit_2_200927.pnggit addを実行し、Staging Areaに変更し、git_redit_3_200927.pnggit commitを実行しました。この時のメッセージとして「add calcuration」を設定しました(calculationのスペルミスにいまさら気付いた。そのまま行かせてもらいます・・)。最後に、git pushコマンドでリモートリポジトリに変更内容を保存しました。git_redit_4_200927.png
 次に、GitHub上で変更内容を確認しました。README.mdは更新されていました。git_redit_5_200927.pngソースコード(test.py)も同様に更新済みです。git_redit_6_200927.pngリモートリポジトリのメッセージ(add calcuration)にリンクがついているのでクリックすると、git_redit_7_200927.png先程編集した履歴を確認することができました。大変便利な機能ですね。git_redit_8_200927.png
 Gitのビギナーで、取り急ぎ、何とか使えるレベルになったと思います。これから更に細かい使い方を調べていこうと思います。
スポンサーサイト



GitHubを使う(2)

 前回の続きです。今回はVisual Studio Code(VS Code)から前回作成したリモートリポジトリのクローンを作り、編集して行きます。

 本題に入る前に、Gitの概要についてファイルの記録保存の流れを以下に示します。git_flow_200920.png Gitは大きく分けて、保管場所(リポジトリ)が「Local」と「Remote」の2箇所あります。Localリポジトリは個人PC内の保管場所(フォルダ単位)で、RemoteリポジトリはGitHub等の編集後のファイルを最終的に保管する場所です。
 Localリポジトリ内のファイルの状態は、Worktree(Working directory)、Staging Area、Git directoryの3つに分けられ、gitコマンド(git add、git commit)で状態を変更することができます。git directoryにあるファイルは最終的に「git push」コマンドでRemoteリポジトリに保管することができ、逆に、Remoteリポジトリにあるファイルは「git clone」コマンドでLocalリポジトリに保管することができます。
 今回は、「git clone」コマンドを実行する所からスタートします。gitコマンドが実行できない場合は、Gitをインストールして始めてください。

 それでは、VS Codeのターミナルからgitを使って編集していきます。
まず、以下のコマンドを実行しました。
git clone (作成したリモートリポジトリのURL)
GitHub上のリポジトリ名のフォルダが作成され、VS CodeがGitHubにサインインして良いかを聞いてきますので「許可」ボタンを押しました。github_VScode_edit_1_200920.pngサインインしたGitHubで、以下の認証画面が出ますので「Continue」を押すと、github_VScode_edit_2_200920.png以下の画面が出ますので「Authorize github」ボタンを押しました。github_VScode_edit_3_200920.pngその後、VS Code側でURLを開いてもよいかを聞いてきますので「開く」ボタンを押すと、github_VScode_edit_4_200920.pngGitHub側で「Success!」が表示され、VS CodeとGitHub間でアクセスOKの状態になりました。github_VScode_edit_5_200920.png
 ようやく編集ができるようになりましたので、README.mdファイルに追加記入をしました。ファイルが変更されると、VS Codeのエクスプローラ上のファイル名の色が変わり、M(Modified)が表示されました。github_VScode_edit_6_200920.png 次に、新しいファイル(test.py)を作成します。Pythonのコードです。保存するとファイル名は緑色で、U(Untracked)の文字と一緒に表示されました。これはGit管理下にない(追跡されていない)ファイルを意味しています。現在のファイルの状態がWorktreeであることを示しています。github_VScode_edit_7_200920.pngファイルの状態を知るには以下のコマンドを実行します。
git status
github_VScode_edit_8_200920.pngModified/Untrackedの状態が確認できました。
 次に、以下のコマンドでフォルダ内の全ファイルをWorktreeからStaging Areaに状態変更させます。
git add.
U(Untracked)のtest.pyファイルがStaging AreaにA(Add)されました。「git status」コマンドでもStaging Areaに変更されたことが確認されました。github_VScode_edit_9_200920.png 次に、Staging AreaのファイルをGit directoryに以下のコマンドで状態変更させます。
git commit -m "Free comment"
実行するとエクスプローラ上のファイル名の色が消えました。github_VScode_edit_10_200920.png 最後に、リモートリポジトリにファイル変更内容を反映させるために、以下のコマンドを実行しました。
git push -u origin master
github_VScode_edit_11_200920.png 実行後に、GitHub上のリモートリポジトリの中身を確認すると、編集内容が反映されていることが分かりました。github_VScode_edit_12_200920.pngソースコードも中身が確認できました。github_VScode_edit_13_200920.png
 次回は再度、ローカルでこれらのファイルを編集して、リモートリポジトリに再pushしてみます。

GitHubを使う(1)

 プログラムを組む際は、その時の気分次第でMacやUbuntuの環境を使い分けています。双方の環境で作成したソースコードをお互いに確認することもあるので、Raspiで構成した自宅のファイルサーバでソースコードを一元管理しています。ただし、ソフトの更新履歴がたまに良く分からなくなることがあり、ファイルのバージョン管理ツールの「Git」を使ってみようと思いました。いつもの思いつきです。

 Gitの仕組みをWebサービス上で行っている「GitHub」は他人のソフトをよくダウンロードさせてもらっているので利用はしていますが、自分の環境を作って利用するのは今回が初めてです。用語や使い方について分からないことばかりだったので、一から勉強しました。その備忘録です。

 今回は、GitHubのユーザ登録をして、新規のリポジトリ(保管場所)を作る所までお話します。
まず、ユーザ登録はGitHubのサイトからサインアップしました。github_registration_1_200920.pngアカウント作成画面で、人間であることを証明するために「検証する」ボタンを押しました。github_registration_2_200920.png「渦巻き銀河」がどれかというクイズが出たので回答し、「Join a free plan」ボタンを押しました。画像は6つの中で1つだけ異質なのでAIでも判断できそう・・(余談)。github_registration_3_200920.png職種やプログラミング経験を聞いてくるので、適当に回答して、進みました。github_registration_4_200920.png確認用に自分宛にメールが届きますので「Verify email address」ボタンを押し、ユーザ登録完了です。github_registration_5_200920.png
 次にGitHubにサインインして新規のリポジトリを作成します。「Create Repository」ボタンを押します。github_repository_1_200920.png「Repository Name」を入力し、今回は公開するほどのものでないので「Private」を選択、「Add a README file」にチェックを入れ、「Create Repository」ボタンを押しました。github_repository_2_200920.png無事にGitHub上にリポジトリ(リモートリポジトリ)が作成できました。リポジトリ内にはREADME.mdファイルが1個のみありました。ファイルの中身はリポジトリ名が記載されているだけでした。github_repository_3_200920.png
次回は、Visual Studio Codeから今回作成したリポジトリのクローンを作り、編集していく所からお話します。

wiringPiをインストールする

 Raspberry PiのI/Oを触って遊ぶには、wiringPiを用いるのが大変便利です。インストール方法は、wiringPiのサイトや林和孝著『Raspberry Piで遊ぼう! 改訂第3版』に記載があります。 手順は、以下の通りです。
 ① I2Cのライブラリを事前にインストールする。”sudo apt-get install libi2c-dev"
 ② Gitをインストールする。"sudo apt-get install git-core"
 ③ wiringPiのソースファイルをダウンロードする。"git clone git://git.drogon.net/wiringPi"
   ファイルは、/home/pi/フォルダにダウンロードされます。 
 ④ フォルダを変更して "cd wiringPi"、プログラムをコンパイルします。”./build”
正しくインストールが完了したことは、"gpio -v"コマンドで確認できます。wiringPi1.pngバージョン情報とともに、マシン情報が表示されます。Maker欄を見てびっくり、あのSonyが作っていたのですね。

 I/Oの確認については、”gpio mode”コマンドと"gpio write"コマンドで確認できます。ここで注意することは、ピン番号を指定する際に、Raspberry Piの実際の端子番号、wiringPiが独自で持っている番号を混同しないことでしょう。例えば、Raspberry Piの11番端子は「GPIO17」という番号が振られていますPi-GPIO-header.png【出典:http://elinux.org/images/5/5c/Pi-GPIO-header.png
その端子はwiringPiでは0番になっています。プログラムを書く上では、同じ端子でも番号が異なるので注意が必要です。Cプログラムでは、GPIO17の番号17を使用します。gpio1.png【出典:http://wiringpi.com/wp-content/uploads/2013/03/gpio1.png
前置きはそれまでにして、実際のI/O確認方法は以下の通りです。出力を例に説明します。
 1. wiringPiのI/O番号(0)の場合
  gpio mode 0 out '0番を出力に設定
  gpio write 0 1  '0番に1を出力する(ON)
  gpio write 0 0  '0番に0を出力する(OFF)
 2. Raspberry PiのGPIO番号(17)の場合 (-gオプションをつけます)   
  gpio -g mode 17 out '0番を出力に設定
  gpio -g write 17 1  '0番に1を出力する(ON)
  gpio -g write 17 0  '0番に0を出力する(OFF)
以上、実際に、LEDのON/OFFの確認もできました。

Raspberry PiのSDカード交換時のSSH接続不具合とその対応

 Raspberry PiのSDカードに不測の事態が起きて、使用できないことも考えて、予備のSDカードを準備しています。2枚のSDカードを交換しながら、作業をすることがありましたが、その際にMacBook AirからのSSH(Secure SHell)接続ができずに、下図のような警告が出ました。ssh対策1内容を確認すると、対処するには「.sshフォルダのknown_hostsファイル」の情報を修正する必要があるとのこと。隠しフォルダ内のファイルの中身は接続先のサーバの情報が暗号化されたコードで記されています。複数のサーバに接続しているならばそれらの情報も記載されますが、1つのサーバにのみ接続している場合には、ファイルごと削除するのが手っ取り早いかもしれません。荒技でしょうか・・?ssh対策2ファイル削除後、再度ssh接続でRaspberry Piに接続しようとすると、接続できないとメッセージは出ますが、接続したいですかに"yes"で答えるとパスワードを聞きに来てくれます。ssh対策3パスワードを入れれば、無事に接続ができます。若干面倒ですが、これで、2枚のSDカードを使い分けることもできますね。

ご訪問者数

(Since 24 July, 2016)

タグクラウド


プロフィール

Dr.BobT

Author: Dr.BobT
興味のおもむくままに生涯考え続けるエンジニアでありたい。

月別アーカイブ

メールフォーム

名前:
メール:
件名:
本文: