Git操作 一覧

Introduction

前提として、Gitをインストールしてリモート・リポジトリに接続した状態での実行を想定しています。
大まかな概要として、動画もあります。
「早い話がこんな感じ」ということです。

参考サイト

Gitbook(日本語版)

Index

Git init

Git 初期化方法、リポジトリとして使用するディレクトリに移動して下のコマンドを叩きます。
ラズパイ上で実行してみました。ただし、一度初期化していたので「再初期化」になっています。

git init

Git pull

リモートリポジトリからソースを取得します。参考サイトはこちら

git pull <対象のURL>

<実行結果>

Connect Github

Git接続について

EclipseでGithubからチェックアウト(PULL)してくる手順を記載しています。「プロジェクトの作成From Github」という項で記載しています。

Git Command

操作の履歴を見る

  • log: 参考サイト
    <コマンドサンプル>

    操作の取り消し

  • reset: 参考サイト
    --hard:コミット取り消した上でワークディレクトリの内容も書き換えたい場合に使用。
    --soft:ワークディレクトリの内容はそのままでコミットだけを取り消したい場合に使用。

    1. HEAD^ 直前のコミットを意味する。
    2. HEAD~{n} n個前のコミットを意味する。
    3. HEAD^やHEAD~{n}の代わりにコミットのハッシュ値を書いても良い。
    4. gitのv1.8.5からは、「HEAD」のエイリアスとして「@」が用意されている。
    5. HEAD~とHEAD^と@^は同じ意味。
    6. HEAD^^^とHEAD~3とHEAD~\~~とHEAD~{3}と@^^^は同じ意味。
      <コマンドサンプル>
    git reset --soft "HEAD^"


    まとめると下のようなかたち、参考サイトはこちら

    やってしまったコミット(だけ)をなかったことにしたかったら、--soft
    addもなかったことにしたかったら、オプションなし
    ファイルの変更自体をなかったことにしたかったら、--hard

git操作の現状を確認する

  • status: 現在の状態を表示する上記キャプチャ参照

    git status
  • commit: 参考サイト
    -m(--message): コミットコメントを設定する
    <コマンドサンプル>

    git commit -m "Part1.Chapter1.Section1: じゃんけんゲームを設計する~フローチャート~"

コミットメッセージの修正

参考ページ

  1. コマンドラインで、修正したいコミットのあるリポジトリに移動します
    コマンドプロンプトを開きリポジトリのディレクトリに移動

  2. git commit --amend と入力し、Enter を押します。

  3. テキストエディタでコミットメッセージを編集し、コミットを保存します。

実際にやってみたところGUIでの操作はわかりませんでした(見つけられませんでした)しかし、コマンドでやると簡単に行けました。実際に行った操作は以下の通りです。

> D:
>cd D:\リポジトリのディレクトリ
>git commit --amend (ファイル名の指定)
># VIエディタが開くのでコメントを修正
>git pull
>git push

VIエディタでの編集は下のように文字化けていますが、入力した文字は決定前に通常の文字で入力できます。

Set Charset

文字コードの設定を行います。
git logコマンドを実行すると文字化する場合があります。これの解決方法としては環境変数にLESSCHARSETを追加することです。
具体的には下のコマンドを叩きます。

set LESSCHARSET=utf-8

そして、下のコマンドも叩きます。

git config --global core.quotepath false

Branch

ブランチ操作を行います。
参考にしたサイトはGitbookです。

ブランチの作成
git branch ブランチ名

実行したコマンドは以下の通りです。

git branch preceding1

確認に使用したコマンドは

git branch -a

ブランチを作成しても、現在のブランチは移動していないので、移動する必要があります。

git checkout ブランチ名

移動したら、状態確認

git status

をしてリモート側に、ローカルで作成したブランチをアップロード(PUSH)します。

とりあえずPUSH!とやるとエラーが出ました。

git push

下のコマンドを使用してください。ということで。。。

git push --set-upstream origin preceding1

こんな感じでできました。

新しいブランチに切り替える

git fetch origin 新しいブランチ名

git checkout 新しいブランチ名

fetch origin の部分は、現在選択している~という意味のようです。なので、現在のブランチを新しいブランチにfetchするというようなコマンドになります。

submodule

外部リポジトリを参照して差分ジュールを追加します。参考サイトはGitbookです。
これは、単純に以下のようなコマンドを実行するだけです。

git submodule add "githubのURL"

実際に起動したコマンドは、

git submodule add https://github.com/ZenryokuService/DocumentRepo.git

です。

Mac Git

Macでのgitをインストールはこちらのサイトを見ればできると思います。

brew install git

コマンドでインストールできるようです。
しかし、自分のPCでは下のようなエラーが出ました。

   Use sudo xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools, or use xcode-select --install to install the standalone command line developer tools.
See man xcode-select for more details.

そんなわけで、別の方法を使用しました。
単純に以下の手順を踏みました。

  1. Xcode.appの場所をさがしました→/Application/Xcode.appにあった
  2. 以下のコマンドを叩きました。
    xcode-select --switch /Applications/Xcode.app/

関連ページ一覧

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

JavaFX関連ページ

  1. Eclipse SceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  4. Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜

ステップアップ関連ページ一覧

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine

JavaFX + ND4Jで機械学習準備

  1. JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
  2. JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
  3. Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜

オブジェクト指向関連ページ

  1. [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
  2. オブジェクト指向の概念2〜クラスとは〜

AtomでのGit clone~clone is not available in present state~

clone is not available in present state

Atomで以下のような操作を実行したときに表題のエラーが出ました。

ちょっと調べてみたら、Atomでうまくいかないことがあるようです。

面倒なのでgitコマンドでやったほうが早そうです。

gitコマンドを使う

Git install

  1. Gitのサイトからアプリをダウンロードします。
  2. インストーラがダウンロードできるので、そのままインストール(ダブルクリック)

    ※インストール画面ではすべてデフォルトでOK(そのまま次へ)
  3. インストールが終わったら、ウィンドウズボタン+Rでコマンドプロンプトを開きます。
    + R
  4. そしてgitコマンドでインストール確認
    git -V

リポジトリのクローン

これは自分の場合です。
コマンドプロンプトを立ち上げたらCドライブにいるので(カレントディレクトリがCドライブなので)以下のコマンドでDドライブに移動します。

  1. インストールしたgitに環境変数を設定します。(パスを通すなどと言ったりします。)
    コントロールパネルを開き、検索部分に「環境変数」と入力すると候補が出てくるので「環境変数」を選択します。
    そして、自分(ウィンドウズユーザー)だけで使用するのなら「ユーザー環境変数」
    このPC全体で使用するのならシステム環境変数に設定します。
  2. Github(ウェブサイト)に作成したリポジトリ(リモートリポジトリ)のURLをコピーして、ローカルリポジトリへ(自分のPCへ)クローンします。
    • ローカルリポジトリを配置するディレクトリに移動
      cd D:\privateDocs\MyDoc
    • git clone リモートリポジトリのURL
  3. リポジトリをクローン出来たか確認

想定では、MyDocディレクトリをリポジトリとして使用したかったのですが、このディレクトリにリポジトリが作成されました。。。
まぁ、よしとして続けます。
今まで作成したドキュメントをコミットしたいのでこれらのファイルをリポジトリのディレクトリに移動します。
すると下のように、UnstagedとかStagedの文言を見ることができます。

これらを選択、右クリックすると下のような画面が見れます。

そして、Stageを選択、コミットします。

すると、下のエラーが出ました。

GitError

上のエラーに対する対応を行います。結論から言うとユーザー情報が設定されていないので、それを設定します。コマンドは以下の通り

git --global user.email "自分のEメール"
git --global user.name "Githubのユーザー名"

これで、コミットができました。しかし、これではローカルリポジトリに登録されただけなので、PUSHしてリモートリポジトリへ登録してやる必要があります。

git push

その実行結果が下のようになります。※Githubとコマンプロンプトを重ねてキャプチャしました。
AfterPush

コマンドのみでコミット

  1. 「git status」で未コミットファイルを確認
  2. 「git commit」で全体のコミット ※今回はファイル一つなので後ろにファイルのパスをつける
  3. 「git commit -m "メッセージ"」コミットコメントをつける、上のものと使い分けるようにする
  4. コミットしたらあとはPUSH

実行結果

関連ページ

関連ページ一覧

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

JavaFX関連ページ

  1. Eclipse SceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  4. Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜

ステップアップ関連ページ一覧

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine

JavaFX + ND4Jで機械学習準備

  1. JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
  2. JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
  3. Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜

オブジェクト指向関連ページ

  1. [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
  2. オブジェクト指向の概念2〜クラスとは〜

php GitApi 〜GitApiを使用する〜

GIt APIを使用する

〜API(WebAPI)を使用するのに、レンタルサーバーの都合でPHPを使用することになってしまったんでPHPでのGitAPIを使用します。

作成物は下のリンクです

https://zenryokuservice.com/mokuhyoAP.php

ツイッターが表示されています。

Gitにコミットした時に自動ツイートする処理を作成しました。

WebAPIはリクエストを送ればOK

PHPだろうが、PythonだろうがJavaだろうが。。。早い話が、WebAPIというのは以下の手順で使用します。

  1. WebAPIを提供してるURLにリクエストを送信。
  2. レスポンスを取得。

上記のような手順で使用します。。。なので使用する言語はリクエストが遅れればなんでもOKです。本当はJavaで実装したかった。。。がこれも今使っているレンタルサーバーでJavaが使えなかったので(もうちょっと調査すれば使えるかも?)後々に方法を考えることにします。

チュートリアル(コマンド実行)

参考にしたサイト
上のリンクにはGitAPIのチュートリアルが記載されています。(Githubのページなので英語です)
そして、そこにはコマンドでの使用方法が記載されています。
とりあえずはハローワールド的なコマンドを叩くような記載があったので、それを実行します。

curl https://api.github.com/users/ZenryokuService

これはcurl https://api.github.com/users/Gitユーザー名でコマンドを叩いた時のものです。
追伸:パスワードなしでアクセスできる情報ですので問題ありません。

レスポンスの内容は以下のようなものです。

{
  "login": "ZenryokuService",
  "id": 11029365,
  "node_id": "MDQ6VXNlcjExMDI5MzY1",
  "avatar_url": "https://avatars2.githubusercontent.com/u/11029365?v=4",
  "gravatar_id": "",
  "url": "https://api.github.com/users/ZenryokuService",
  "html_url": "https://github.com/ZenryokuService",
  "followers_url": "https://api.github.com/users/ZenryokuService/followers",
  "following_url": "https://api.github.com/users/ZenryokuService/following{/other_user}",
  "gists_url": "https://api.github.com/users/ZenryokuService/gists{/gist_id}",
  "starred_url": "https://api.github.com/users/ZenryokuService/starred{/owner}{/repo}",
  "subscriptions_url": "https://api.github.com/users/ZenryokuService/subscriptions",
  "organizations_url": "https://api.github.com/users/ZenryokuService/orgs",
  "repos_url": "https://api.github.com/users/ZenryokuService/repos",
  "events_url": "https://api.github.com/users/ZenryokuService/events{/privacy}",
  "received_events_url": "https://api.github.com/users/ZenryokuService/received_events",
  "type": "User",
  "site_admin": false,
  "name": "Takunoji",
  "company": "ZenryokuService",
  "blog": "https://zenryokuservice.com/wp",
  "location": "Japan",
  "email": null,
  "hireable": null,
  "bio": "My favorite word is \"Rock'n roll must not be a day\"\r\n好きな言葉は「ロッケンロールは一日にしてならず」です。",
  "public_repos": 23,
  "public_gists": 1,
  "followers": 2,
  "following": 3,
  "created_at": "2015-02-16T12:53:02Z",
  "updated_at": "2019-05-19T08:53:20Z"
}

見ての通りJSON形式でレスポンスを受け取りました。

PHPでのGit API

PHPの場合は。これをインストールしてやったほうが楽かも?

しかし、今作成しているプロジェクトサイトはツイッターAPIでコミットコメントを取得するので使わないかな?










TwitterAPI 〜PHPコードでツイートする手順〜

イントロダクション

TwoitterAPI(PHP版)を使用して、自分のプロジェクトサイトに以下の機能を追加しました。

  1. ツイートを表示する。
  2. GitからWebhookを受ける

TwitterAPIの使い方

実行結果

ツイートの実行結果

ソースコード

/** エンコード */
header("Content-Type: text/html; charset=UTF-8");
// TwitterOAuth
require_once("twitteroauth-master/autoload.php");
use Abraham\TwitterOAuth\TwitterOAuth;

// エラー出力
//ini_set('display_errors', 'On');
$access_token = "デベロッパ登録したときに表示されるアクセストークン";
$access_token_secret = "デベロッパ登録したときに表示されるアクセストークン_シークレット";

$connection = new TwitterOAuth("コンシューマ・キー"
        ,"コンシューマ_シークレット・キー"
        , $access_token, $access_token_secret);

// 自分のツイートの取得
// $content = $connection->get("account/verify_credentials");
// var_dump($content);

// ツイート検索
// $statuses = $connection->get("search/tweets", ["q" => "twitterapi"]);
// var_dump($statuses);

// ツイート送信
$statues = $connection->post("statuses/update", ["status" => "Testing hello world"]);
var_dump($statues);

関連ページ

Tweetボタンの追加方法
ツイッターデベロッパ登録
Githookのリクエスト内容一覧










Twitter APIを使うために〜Twitterへのデベロッパ登録〜

イントロダクション

TwitterAPIを使用してツイッター連携を実装しようとしています。現状は

PHPでGithookからのリクエストを受けてツイートする

というプログラムを作成しようとしています。そんなわけで。。、

Twitterへのデベロッパ登録

早い話が、Twitterへの開発者登録を行い、TwitterAppと登録(作成したアプリのあるURL場所を登録)します。

まずは下のサイトにアクセスします。

ツイッターのデベロッパサイト

そして、アプリケーションの登録のために、下ようなインデックスの部分をGoogleに翻訳してもらって読みます。

Creating a Twitter app

そうすると、デベロッパ登録のページに誘導されるのでそちらに移動します。

操作は画面の指示に従う感じでスムーズに完了できました。

入力するときに、アプリケーションの用途や目的などを説明してください(discribe your app)なんて文言がありますので、ちょっと考えておくと入力が楽です。
でわでわ。。。

続きはこちらの記事になります。

<参考>

TwitterAPIライブラリの使い方