English Русский Español Deutsch Português
preview
GIT:それは何か?

GIT:それは何か?

MetaTrader 5 | 16 8月 2024, 15:58
15 0
Daniel Jose
Daniel Jose

はじめに

今回は、本題から少し外れます。リプレイ/シミュレーターシステムの話題から少し離れて、すべてのプログラマーにとって必須のツールに触れてみましょう。もしこのツールに馴染みがないのであれば、ぜひこの記事を読んでこのツールを導入してください。このツールは、あらゆるプログラマーにとって問題をより簡単かつ迅速に解決するのに役立ちます。

この記事は主に、資格のあるプロを目指す初心者を対象としています。残念ながら、これから紹介するツールはWindows 11ではWindows 10ほど使いやすくないので、Windowsユーザーならバージョン10を使用するのが望ましくなります(少なくともこの記事を書いている時点では)。

これから説明するツールはGITです。もともとはLINUX用に設計されたもので、プログラミングや新しいアプリケーションを開発したい人に最適です。現時点では、MQL5エディタと直接統合することはできませんが、このツールの使用を妨げるものではありません。GITの恩恵を受けるためには、必要なステップがいくつかあります。

もし、すでにGITを知っていたり、仕事で使用していたりするのであれば、この記事によって新しい知識は得られないので、興味本位で読むだけかもしれません。しかし、GITを知らずにプログラミングばかりしていると、遅かれ早かれ、特定のアプリケーションを開発し続けることを思いとどまらせるような状況に遭遇するでしょう。ここで話しているのは、コードの編集中に誤って発生し、数日または数週間後に初めて気付く可能性のあるミスのことです。信じてほしいのですが、このようなことは思っているよりずっとよくあることで、GITはそれを避けるのに役立ちます。


GITとは?

GITは、開発しているアプリケーションのバージョンを、シンプルで非常に効率的な方法で追跡し、カタログ化することを可能にするプログラム(私はツールと呼んでいます)です。これはユーザーマニュアルではありません。そんなことをするつもりはありません。主に、このトピックに関する教材がすでに大量にあるからです。このようなガイドの大半は、Visual Studioのように、GITとネイティブに統合されたエディタを対象としています。しかし、MetaEditorにはこれがないため、MQL5とともにGITで正しく動作させるためには、特別な設定が必要になります。

必要な変更をおこなったら、既存のGITチュートリアルのどれかを使用してさらに学ぶことができます。この記事はもっと早く書くべきでしたが、読者の中にプロを目指す初心者がこれほど多いとは知らなかったのです。そのような方々は、アプリケーションを修正し、その過程で学びながら修正するための正しい方法や手段を知らないため、上達するのに大変苦労します。ここで重要なのは、アプリケーションを修正することではなく、プロセスを文書化し、失敗から学び、改善する方法を知ることです。前述したように、GITはプログラミングの経験を学び、記録するのに非常に良い方法です。これは非常にシンプルでわかりやすいです。これから紹介するステップを実行するだけです。

このツールの威力をフルに発揮させるには、私たちのリプレイ/シミュレーターシステムなど、どんなアプリケーションでも、自分の仮説がうまくいくかどうかを調べるために改造してください。時間が経つにつれて、何が変更されたのかを理解するのが難しくなります。特に、異なる時点で変更をおこなわなければならない場合はなおさらです。適切なツールを使用せずにこれをおこなうのは非常に難しいです。結局のところ、こうした変化に戸惑い、学び、プロになろうという意欲を失ってしまうのです。しかし、GITはこれをやってくれます。アプリケーションを変更し、その変更をすぐにテストすることができます。仮説が正しければ、何が変更されたかを正確に示す最終文書を入手することができます。素晴らしいと思いませんか。私自身は習得の段階では、すべてを手作業でやらなければなりませんでした。しかしGITを使えば、すべての変更がハイライト表示され、見ることができます。

GITは非常にシンプルな概念に基づいており、基本的な形としては、毎日の手帳や日記のようなリンクされた変更リストに似ています。メモを取りながら作成します。どうやって取るかは後で見てみましょう。しかし、広い意味ではグラフになります。グラフであるため、任意の形式を取ることができ、同じ実装でもさまざまな方向を示すことができます。それぞれの方向性が、相関するアイデアを発展させます。グラフを見たことがない、あるいはグラフが何なのか知らないという方は、下の画像を見ていただければそのイメージがつかめるでしょう。

図00

グラフの各ポイントには、ノードと呼ばれる値があります。これらの値を結ぶ線はエッジと呼ばれます。これは単純なグラフの例ですが、もっと複雑な場合もあります。本当にプロになりたいのなら、グラフ理論を勉強する価値はありますが、すぐにグラフから始めてはいけません。リストから始め、ツリーを学び、グラフへと進みます。これはより一貫性のある学習方法です。


基本的なことから始める

最も基本的な部分は、実際にGITの最新バージョンをダウンロードすることです。これを行うには、リンクgit-scm.comに従ってください。そこにドキュメントも見つかります。この資料のほとんどはすでに翻訳されています。よくわからないことがあれば、必要なトピックを説明してくれる人はいくらでもいます。ただ検索し、勉強するだけです。よって、ここでは、GITを知らない人のために基本的なことを説明したいと思います。

Windowsユーザーであれば、下の画像のエリアをクリックするだけです。

図01

この記事を書いている時点では、これが最新版です。GITの最新バージョンをダウンロードしたら、それをコンピュータにインストールする必要があります。インストールはデフォルト構成でおこなうことができますが、私は下の画像にあるような小さな変更を加えています。

図02

これは必須のステップではありません。デフォルトのエディタは後で変更できます。しかし、私はNotePad++を使用するのが好きなので、GIT にそれを使用するように指示します。後で別のエディタを使用することになったら、GITグローバル変数を変更するだけです。この変数はCORE.EDITORです(詳細はドキュメントを参照)。そこで、GITをインストールした後、GITを設定する必要があります。心配無用です。とても簡単なことですし、何から始めればいいかわかるように、すべて明確に説明します。GITのインストールが完了すると、下の画像に表示されている場所にアクセスできるようになります。

図03

この2つのオプションがWindows11にはありません。これが、Windows10を使用することをお勧めする理由です。実際、これらの設定はWindows11でも有効にすることができますが、この記事の範囲を超えるいくつかの手順を踏む必要があります。注:これらのオプションは必要ありません。しかし、それらの存在は仕事を大幅に簡素化し、より楽しいものにしてくれます。Git GUI Hereを選択すると、以下のウィンドウが表示されます。

図04

ここでは、リポジトリを開いたり、クローンしたり、作成したりすることができますが、GITとMQL5を一緒に使いたいので、まだどこにもクリックしません。Git Bash Hereのオプションは気にしないでください。ここではGUIに焦点を当てていますが、BASHの使い方を説明したリソースはインターネットを検索すればいくらでもあります。GITを紹介するのが目的なので、GITの最もシンプルな部分、つまりGUIを使用することにします。しかし、あるインターフェイスでおこなわれることはすべて、別のインターフェイスでおこなうこともできます。まず、MetaEditorを開き、下の画像でマークされているエリアをクリックします。

図05

次のウィンドウが表示されます。

図06

次に、隠しファイルと隠しフォルダの表示を許可する必要があります。これでローカルにGITのバックアップを取ることができます。GITHUBを使用することもできます。しかし、ここではできるだけシンプルにしたいので、ファイルエクスプローラーを使用して、以下の設定を変更します。

図07

強調表示されたオプションにチェックを入れ、[適用]をクリックし、[OK]をクリックします。これで、GITによって作成されるフォルダを見ることができます。まだリポジトリがないので、フォルダは表示されません。もう一度右クリックして[Git GUI Here]を選択し、[Create New Repository]をクリックすると、以下のウィンドウが開きます。

図08

ここで[Browse]を選択すると、別のウィンドウが開きます。

図09

[Select Folder]をクリックすると、次のように表示されます。

図10

[Create]をクリックすると、次のような結果が表示されます:

図11

上の画像で強調表示されているこのフォルダは、まさに私たちが作成したかったものです。このフォルダが作成されると、下の画像のように新しいウィンドウが開きます。

図12

マークされた領域にEX5ファイルが含まれていることに注意してください。これらのファイルは、MetaTrader 5で実行できるアプリケーションです。しかし、これらのファイルが検索を汚染することは避けたいです。このファイルやその他のファイルタイプを削除するには、ちょっとした調整が必要です。これは、これから設定するリポジトリに対しておこなう必要があります。GITでは双方向の作業が可能なので、必要であればグローバルに変更を加えることができます。これらの不要なファイルをクリーンアップするには、削除する必要はありません。必要なことは下の画像の通りです。

図13

変更が必要なパスとファイルに注意してください。そのファイルを開きます。最初に以下の内容が表示されます。

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

excludeファイルのオリジナルコンテンツ

このコンテンツはコメントのみで構成されているため、削除することができます。しかし、いずれにせよ、数行を追加する必要があります。この場合、EX5拡張子を持つすべてのファイルとその他のいくつかのファイルは表示されません。そこで、以下のようにファイルを変更します。詳しくはドキュメントをご覧ください。それからファイルを保存します。

図14

これは、このリポジトリでは特定のファイルタイプを無視するようにGITに指示します。しかし、フィルタは私が示した場所にあるはずです。フィルタリングシステムには多くのオプションがあるので、ドキュメントを勉強することをお勧めします。フィルタリングが優れていればいるほど、次のステージは楽になります。ファイルを保存した後、GIT GUIウィンドウに戻り、下図の[Rescan]ボタンをクリックします。拡張子がEX5のファイルは表示されなくなります。画面をスクロールして、ファイルを編集する前の状態と比較してください。

図15

今のところ、特別なことは何もしていません。GITに、リポジトリの場所とフィルタリングすべき内容を伝えただけです。重要な注意:何かを保存するとき、MQL5フォルダにあるものすべてを保存する必要はありません。GITフォルダを保存するだけで、GITのトラックはすべて保存されます。これでスペースが大幅に節約できます。しかし、前述したように、GITHUB経由ですべてをクラウドに保存することができます。保存された内容は、.GITフォルダー内のリポジトリそのものになります。

しかし、いつになったらGITに何か保存するのでしょうか。読者の皆さん、落ち着いてください。まだ細かい設定がいくつか残っています。これらの最終設定をおこなうには、下の画像でマークされているコマンドを選択します。

図16

新しいウィンドウが表示されます。下記のウィンドウは、一見重複しているように見えるものがあります。しかし、重複はしていません。よくご覧ください。

図17

ご覧のように、右と左の2つのマークがあります。左側では、このリポジトリに関するデータを設定し、右側では、グローバル設定、つまり、作成されたすべてのリポジトリに関する設定をおこないます。どちらか一方、あるいは両方設定することも可能です。毎回設定する必要がないように、グローバルな設定にすることをお勧めします。したがって、表示されたフィールドに詳細を入力してください。これで最も基本的なことの設定を終えたので、次のトピックに移ります。


最初のコミットの作成

さて、基本的な設定が完了したところで、さらに理解しておかなければならないことがいくつかあります。GITでは、ファイルは主に3つの状態になります。

  • 最初の状態はCOMMITTEDと呼ばれ、すべてのデータを含むファイルがリポジトリに安全に保存されています。
  • 2番目の状態はMODIFIEDで、ファイルが変更されたが、その変更がまだリポジトリに保存されていない状態です。
  • 3番目(最後)の状態はSTAGEDで、ファイルがリポジトリに保存する準備ができたことをGITに伝えます。

それぞれの条件が何を意味するのか、下の画像を見てください。ExpertMACD.mq5というファイルがあるが、これはUNSTAGEDの状態です。つまり、GITに追跡されていません。

図18

GITにこのファイルへの変更を追跡させましょう。これをおこなうには、それをクリックします。右側のエリアには、ファイルの現在の内容が表示されています。

図19

ファイル内容の一番上にUNTRACKEDという文字が見えます。これはそのファイルがまだGITによって追跡されていないことを意味します。GITにファイルを見てもらうには、次のようにする必要があります。

図20

これを使用するか、CTRL+Tキーボードショートカットを使用すると、下の画像のようになります。

図21

どう変わったか見てみましょう。これでファイル内容の先頭に[Staged for Commit]という文字が表示されるようになります。つまり、それは3番目の状態にあり、保存する準備ができています。このファイルを追加する必要がない場合は、そのファイルを選択してCTRL+Uを押すだけで、STAGEDモードを終了し、UNTRACKEDモードに戻ります。注:ファイルは他の方法で削除することもできます。これについての詳細はドキュメントを参照してください。ここでは、できるだけシンプルにしたいです。

では、ヘッダーファイルにまとめてみましょう。それは以下のようになります。

図22

[Commit]ボタンをクリックするだけで、最初のコミットを作成できます。ただし、[Commit]ボタンを押す前に、コミットにメッセージを追加することを推奨します。こうすることで、後で変更点を見つけやすく、理解しやすくなります。

図23

上の画像は、コミットに対するコメントを示しています。この後、[Commit]ボタンをクリックすると、GITは指定されたファイルの追跡を開始します。結果はこうなります。

図24

マークされた部分は、GITが正常にコミットを作成し、それらのファイルの追跡を開始したことを示しています。これでGIT GUIウィンドウを閉じることができます。コードに取り組み、テストし、好みに合わせて変更し、それが終わって安定版ができたら、GITにリポジトリの更新を依頼する必要があります。混乱を避けるため、別の選択肢で説明しましょう。


リポジトリの作成

多くの場合、BASHを使用してリポジトリを作成する方が簡単ですが、ここではGIT GUIを使用してリポジトリを作成する方法を紹介します。これをおこなうには、下の画像に示すボタンを使用します。

図25

これをクリックすると、GITは追跡されたファイルのどこで何が変更されたかを確認します。そしてUNSTAGEDとして再び表示されます。上の画像で見ることができます。ファイルがMODIFIED状態であることに注意してください。ファイルの内容ウィンドウに、GITは何が変更されたかを表示します。変更は緑色で表示されます。お望みなら、この色を変更することもできます。しかし、ここでは基本的なことにしか触れていないので、そのような変更を加えるのはあなた次第です。

あとは、現在の変更を受け入れて保存するか、無視するかを決めるだけです。なぜなら、必要であれば、GITはファイルを以前の状態に戻すことができるからです。Windowsにあるオプションの、復元ポイントのようなものだと考えてください。このため、それぞれの新しいコミットに説明のメッセージを添えることが重要です。

では、変更を受け入れて保存しましょう。適切なコメントを追加して[Commit]ボタンを押すとどうなるか見てみましょう。

図26

なぜでしょうか。変更がSTAGED状態、つまりGITが文書化する準備がまだできていない状態ではなく、MODIFIED状態だからです。MODIFIED状態のファイルをSTAGED状態に追加するには、CTRL+Iを押すだけです。しかし、下の画像に見られるような詳細があります。

図27

[Yes]を選択すると、すべてのファイル(この場合はすべての403ファイル)がSTAGED状態に追加されます。しかし、追跡され、変更されたファイルだけを追加したいので、[Np]をクリックする必要があります。すると、次のような結果が得られます。

図28

[Commit]ボタンをクリックすると、GITが変更を記録します。もうお分かりのように、GITはSTAGED状態のファイルだけをリポジトリに記録します。それ以外のファイルは無視されます。まあ、この話題は簡単でした。次に、コードがぐちゃぐちゃになったので、変更を元に戻したい場合はどうすればいいのでしょうか。GITはどのように私達の役に立つのでしょうか。次の話題に移りましょう。


変更を戻す...

すでに加えた変更を元に戻したり、GITがリポジトリに文書化したものを復元したりするのはとても簡単です。前のセクションで説明したのと同じ手順を実行する必要があります。そのため、下の画像のような変化が見られるはずです。

図29

上の画像で、新しい変更が強調表示されていることに注目してください。それをキャンセルしたいので、GITに頼みます。リクエストするにはキーボードショートカットのCTRL+Jを使用しますが、以下のようにするとより便利です。

図30

GITは常にアクションを確認するよう求めます。これは下の画像で見ることができます。

図31

確認すると、GITはリポジトリの一番上にある内容のファイルを復元します。ファイルがMetaEditorで開かれている場合、MetaEditorがファイルの再読み込みを要求することに気づくでしょう。再読み込みすると、GITによって変更が削除されていることがわかります。このプロセスを理解することは、次のトピックを理解する上で非常に重要です。


コードをより安定したバージョンに戻す

コードをより安定していたバージョンに戻すことは、おそらく、最も便利なことの1つです。GITを使わずにこれをおこなうのは非常に難しく、場合によっては不可能です。つまり、すべてのコードを削除して最初からやり直す必要があります。しかし、GITではすべてが非常にシンプルで明快です。このようなバージョンに戻るには、以下に示すオプションのいずれかを使用します。

図32

すると次のようなウィンドウが開きます。

図33

これで、なぜコミットに説明コメントをつけることが常に重要なのかがわかります。変更点を理解しやすくなり、安定したバージョンを見つけやすくなるのです。この方法で、すべてのバージョンを表示し、復元したいものを正確に選択することができます。バージョンを選択した後、右クリックしてマークされた項目を選択する必要があります。

図34

これが完了すると、新しいウィンドウが開きます。ここで注意しなければならないことがあります。リポジトリから何も削除したくない場合は、以下のオプションを選択します。

図35

この結果、次のようになります。

図36

リポジトリのトップが変更されたことにご注意ください。リポジトリのトップは、コードで何を復元できるかを示すものだからです。GUIウィンドウに戻り、以下のオプションを選択します。

図37

これにより、古いバージョンになったリポジトリの一番上にあるすべてのコードが、適切なファイルに移動されます。注意:ファイルが削除された場合、GITはそれを再作成します。だからこそ、リポジトリのトップが何なのかを理解することが非常に重要なのです。これがないと、以前のバージョンに戻ることはできません。変更を適用する前に、以下のように動作を確認する必要があります。

図38

これで以前のバージョンに戻る方法はわかりました。さて、もしロールバックしすぎてしまったら?新しいバージョンに戻るには?混乱を避けるため、新しいトピックで見てみましょう。


リポジトリ内の新しいバージョンに戻す

時には、より安定したバージョンにロールバックする際に、やり過ぎて新しいバージョンにロールバックしなければならないこともあります。これを説明するために、3つ目のレベルを作ってみましょう。2つのレベルしか使用しないため、GUIでこの方法を理解することは不可能です。BASHを使えば、GITにコマンドを送るだけで、これを直接実行できますが、GUIでそれをおこなう方法をお見せしたいのです。例えば、次のようなシナリオがあるとしましょう。

図39

これで3レベルになりました。最初のレベルに戻ると、結果は以下のようになります。これは、前のトピックで説明した手順に従っておこないます。

図40

ここでロールバックしすぎたと想像してください。コードが機能するかどうかを確認するために、2番目のレベルに上がる必要があります。この場合、どうすればいいのでしょうか。面白いし、これを解決する方法はいくつかあります。決して慌ててはいけません。その方法を学ぶ前に、重要かもしれない些細な点を見てみましょう。.GITフォルダを見ると、以前はなかったファイルがあるかもしれません。下の画像をご覧ください。

図41

このファイルの内容はHASHで、重大なエラーが発生した場合にGITリポジトリで利用可能なデータを復元するために使用されます。以下の内容を見れば、HASHを見ることができます。

図42

HASHファイルの使い方の詳細については、すべてドキュメントに書かれているし、インターネット上にも多くの詳細なガイドがあるので、ここでは割愛します。2番目のレベルに位置するデータをどのように取得するかという問題に戻りましょう。2番目のレベルを選択し、リポジトリの最上位にする必要があります。いつもそうなのです。ただし、間違えてHardモードを選択しないように注意し、常にSoftモードを優先します。下の画像をご覧ください。

図43

オプションを適切に選択することで、以下のような結果が得られます。

図44

これにより、最新のコードにアクセスできます。このようにして、GITがリポジトリに保存しているバージョン間を移動することができます。しかし、最新の変更を削除して破棄したいと仮定しましょう。そのためには、以下を選択する必要があります。

図45

結果は次のようになります。

図46

もう1つ、考慮すべきコマンドがあります。ダウンロードした、あるいはバックアップからリポジトリ全体を復元したいとします。理由は重要ではありません。ディスクから削除する前に、リポジトリにある最新バージョンを復元したいだけなのです。ファイルごとにおこなうこともできますが、下の画像に示すオプションを使用することもできます。

このオプションを選択すると、リポジトリの内容全体が復元されます。まるで魔法のように、すべてのファイルとディレクトリが再び表示されます。バックアップとして保存したリポジトリ全体を復元する必要がある場合は、いつでもこのオプションを使用してください。これで、すぐにプロジェクトの作業に戻ることができます。


最終的な結論

この記事では、GITを使用するために必要な最も基本的な側面を示しました。この記事が、さらなる学習と自己研鑽のきっかけになることを願っています。なぜなら、さまざまなツールが存在し、誰かがその使い方を教えてくれるのを待つべきでないからです。常に新しいことを学ぶ気がなければなりません。そして、私がここで示したのがGITのすべてだと思ってはいけません。このツールは、大いに役に立ちます。少なくとも、GITに興味を持ってもらえたなら幸いです。

MetaQuotes Ltdによりポルトガル語から翻訳されました。
元の記事: https://www.mql5.com/pt/articles/12516

多通貨エキスパートアドバイザーの開発(第5回):可変ポジションサイズ 多通貨エキスパートアドバイザーの開発(第5回):可変ポジションサイズ
前回開発中のエキスパートアドバイザー(EA)は、固定されたポジションサイズのみを使用して取引をおこなうことができました。これはテスト用には許容できますが、実際の口座で取引する場合にはお勧めできません。可変のポジションサイズで取引できるようにしましょう。
リプレイシステムの開発(第43回):Chart Traderプロジェクト(II) リプレイシステムの開発(第43回):Chart Traderプロジェクト(II)
プログラミングを学びたいと夢見る人のほとんどは、実際に自分が何をしているのかわかっていません。彼らの活動は、ある方法で物事を創造しようとすることから成っています。しかし、プログラミングとは、適切な解決策を仕立てることではありません。このようなやり方は、解決策よりも多くの問題を引き起こす可能性があります。ここでは、より高度で、それゆえに異なることをします。
手動取引のリスクマネージャー 手動取引のリスクマネージャー
この記事では、手動取引用のリスクマネージャークラスをゼロから書く方法について詳しく説明します。このクラスは、自動化プログラムを使用するアルゴリズムトレーダーが継承するための基本クラスとしても使用できます。
知っておくべきMQL5ウィザードのテクニック(第24回):移動平均 知っておくべきMQL5ウィザードのテクニック(第24回):移動平均
移動平均は、ほとんどのトレーダーが使用し、理解している非常に一般的な指標です。この記事では、MQL5ウィザードで組み立てられたエキスパートアドバイザー(EA)の中で、あまり一般的ではないかもしれない使用例を探っていきます。