ホーム » Tips » 第3回Git活用 ファイル管理

第3回Git活用 ファイル管理

Tips

前回(第2回)の続きです。

ファイル更新管理概要

ファイル状態について

ファイル更新について説明する前に、ファイルの状態について説明します。
予備知識として覚えておくとこの後の理解がし易いですが、後から読み返してもらっても良いです。

  1. ファイル更新するとローカルPCのファイルが更新されます
  2. コミットするとローカルリポジトリの内容が更新されます
  3. プッシュするとローカルリポジトリコミットされた変更点をリモートリポジトリに反映します
  4. プルするとリモートリポジトリの更新分をローカルリポジトリに反映します
  • 例で説明すると、EAがバージョンアップしたら入手したEAファイルを上書きコピーしてファイル更新
  • コミットしてEAの更新がローカルリポジトリに格納されることで新EAが確定したことになります
  • 他のMT4(MT5)や別PCのMT4にこの新EAを配布する場合はプッシュしてリモートリポジトリを更新
  • 他のMT4のローカルリポジトリプルして新EAを受け取る

リポジトリ間の関係

下の図の通り、ローカルリポジトリはリモートリポジトリとのやり取りのみで、ローカルリポジトリ同士でやり取りすることはありません。必ずリモートリポジトリを介してそれぞれの変更を他のローカルリポジトリへ配布します。

ファイル操作

ファイル追加

ここまで手順通りでは、ローカルリポジトリもリモートリポジトリも空の状態です。
ここではローカルリポジトリにファイル追加してファイル管理の開始を行えるようにします。
ファイルの管理を行うにはファイル追加を行います。
説明のために、MT4の標準で格納されている「MACD Sample.mq4」を追加してみます。

  • 「MQL4¥Experts」にある「MACD Sample.mq4」を選択して、マウス右クリック[TortoiseGit]-[追加…]を選択してください
    追加がない場合はこちらで対処方法を説明しています
  • 追加終了のダイアログボックスがでたら[OK]をクリックして閉じてください

追加されると「MACD Sample.mq4」に青い+(追加を表す)のアイコンが付与されます

「MACD Sample.mq4」の上位フォルダである「Experts」フォルダのアイコンは赤のビックリマーク(更新を表す)のアイコンが付与されます

アイコンが変わっていることが確認できればファイル追加は完了しています。

アイコンが変わらない場合はこちらで対処方法を説明しています。

「追加」がない場合の対処

ファイルを追加する場合に、ファイルを選択してマウス右クリックして[TortoiseGit]を選択しても[追加]メニューがない場合の対処方法について説明します。

メニューの[設定]を選択して「Windows 11 Contex Menu」の「追加(A)…」にチェックがないと思いますのでチェックしてください

チェック前

チェック後

チェックしたら[OK]をクリックしてください

コミット

ファイルを更新したり、ファイル追加しただけではローカルリポジトリに格納することはできていません。
ローカルリポジトリに格納するにはコミットが必要になります。

ファイル追加した「MACD Sample.mq4」をコミットしてみます。

  • 「MQL4」フォルダ下(どこでもよい)で、マウス右クリック[TorroiseGit]-[コミット -> “master”…]を選択します
  • コミット確認のダイアログが表示されるので、メッセージにコミットの際に付与するメッセージを入力してください(コミットには入力必須)
    ここでは「Add MACD Sample.mq4」としています

[コミット]をクリックするとコミットが行われて結果表示されます。
青字で「成功」となっていればコミット成功ですので[閉じる]で閉じてください。

コミットされて、ローカルリポジトリと現在のファイルに差分がないと緑のチェックが付与されたアイコンになります。

コミットにより、ローカルリポジトリに格納されました。
ここでの説明はファイル追加してコミットでしたので、新たにファイルをローカルリポジトリに格納したイメージですが、ファイル更新した場合も更新されたファイルの内容をコミットによりローカルリポジトリに格納することとなります。

プッシュ

ローカルリポジトリにファイルをコミットしたら、リモートリポジトリに更新を反映させないと別のローカルリポジトリに更新を伝えることができません。
コミット毎に行う必要はありませんが、コミットした内容を確定させる場合はリモートリポジトリを更新します。
当サイトで説明の予定はありませんが、コミットは取り消すことができるのでローカルリポジトリで閉じた更新を行っていくが取り消すといったことも可能です。

リモートリポジトリにローカルリポジトリの更新を反映させるプッシュの手順を説明します。

  • 「MQL4」フォルダ下(どこでもよい)で、マウス右クリック[TorroiseGit]-[プッシュ…]を選択します

プッシュ確認のダイアログボックスがでます。
ここまでで説明してませんが、ローカル(プッシュ元)とリモート(プッシュ先)のブランチ名「master」が表示されていますが、「master」ブランチにプッシュするという意味であまり気にする必要はありません。
(機会があればブランチを使ったファイル管理についても記載します)

  • 下記の内容で[OK]をクリックします

プッシュの状況表示ダイアログボックスが表示されます。
青字で「成功」となっていればプッシュ成功ですので[閉じる]で閉じてください。

[TortoiseGit]-[ログを表示]を選択するとリポジトリの状況を確認することができます。

プル

別のMT4で追加されたファイルをリモートリポジトリから反映(取得)するプルの方法を説明します。
ファイル追加で説明しますが、ファイル更新も方法は同じです。

予め、プルする側のMT4にローカルリポジトリを作成しておいてください。

  • 「MQL4」フォルダ下(どこでもよい)で、マウス右クリック[TortoiseGit]-[プル…]を選択します
  • プルの取得元に関する確認のダイアログが表示されますが、そのまま[OK]をクリックしてください。
  • 手順通りに進めてきた場合、以下のように失敗します
    失敗の理由としては、今回ファイル追加をローカルリポジトリに反映するのですが、「MACD Sample.mq4」ファイルは元から存在するファイルのため失敗します
    プッシュしたローカルリポジトリでの操作がそのままプルしたローカルリポジトリで実施されるために起こるエラーです(ファイル追加しようとしたが、ファイルが存在したためエラー)

失敗するので以下のように「MACD Sample.mq4」のファイル名を変更して再度プルしてみます。

プルの状況表示ダイアログボックスが表示されます。
青字で「成功」となっていればプル成功ですので、成功したことがわかります。
[閉じる]で閉じてください。

フォルダの中身を確認してもファイルが追加されたことがわかります。

ファイル更新

ファイル更新のケースについて実際の手順を例に説明します。
「MACD Sample.mq4」の8行目に1行追加します。

変更前
変更後

変更するとアイコンに赤のビックリマークが付与されて更新されていることがわかります。

「MACD Sample.mq4」を選択してマウス右クリック[TortoiseGit]-[差分]を選択すると変更点が表示されます。
※この環境は変更点の表示を外部エディタ(WinMerge)に変更しているので見え方が違うと思います

ファイル更新したら、ファイル追加の際のコミットと同じ手順でコミットできます。
リモートリポジトリへのプッシュと別ローカルリポジトリへのプルも同様に実施できます。

コメント

タイトルとURLをコピーしました