このヘージと関連するページ一覧

  • 一人でイチから始めるGIT 導入編
  • 一人でイチから始めるGIT gitignore
  • 一人でイチから始めるGIT push
  • 一人でイチから始めるGIT merge
  • 一人でイチから始めるGIT conflict

  • このページの最終更新日 2020/10/25

    一人でイチから始めるGIT push

     このページは一人でイチから始めるGIT gitignoreの続きのページです。

    1、Pushを実行できるようになるまで

     今までローカルリポジトリしか扱いませんでしたが、複数人で作業を行う場合には開発者がソースコードを共有できるようサーバーにリポジトリを作成して作業を進めていきます。各作業者のローカルで管理されているものをローカルリポジトリと言うのに対して、サーバーでのリポジトリをリモートリポジトリというように呼ばれます。
     一人で作業する場合には絶対に必要という訳でもありませんが、データのバックアップを残すために使用することもありますので、今回はリモートリポジトリの触りだけ解説していこうと思います。

     実際の運用ではサーバーを立てて管理していくのが通例かと思いますが、勉強の際にはわざわざサーバーを立てる必要はありません。ここでは自分のパソコン1台の中で、ローカルリポジトリとリモートリポジトリを作成して学習を進めていきましょう。
     まずはデスクトップに「git_test」フォルダを作成し、こフォルダ内にローカルリポジトリもリモートリポジトリも作成してしまいます。

     まずはローカルリポジトリ用のフォルダ「local」を作成します。pic.1のように、mkdirコマンドでフォルダを作成し、cdコマンドでフォルダを移動します。左側のように、わざわざエクスプローラーでフォルダの中身を表示する必要はありませんが、ここでは解り易さのために逐一ファイル一覧を表示していくことにします。

    ローカルリポジトリ用フォルダの作成

    - pic.1 -

     次にローカルリポジトリにviでファイルを作成して登録します。ファイル名は「f1.txt」とし、ファイルの中身は「a~n」のアルファベットを並べたものとします。viのデフォルトでは改行コードがLFで保存されますが、通常のWindowsの改行コードのCRLFで保存させるために「:se ff=dos」とviコマンドを打ってから保存します(pic.2)。

    ローカルリポジトリでの編集作業

    - pic.2 -

     ローカルリポジトリにコミットし終わったら、次はリモートリポジトリ用のフォルダを作成します。「cd ../」というコマンドは上の階層のフォルダへ移動することを意味し、ここでは「git_test/local」フォルダから「git_test」フォルダへ移動します。次にmkdirコマンドで「remote」フォルダを作成し、cdコマンドで「remote」フォルダへ移動します。(pic.3)

    ローカルリポジトリでコミット

    - pic.3 -

     remoteフォルダへ移動したら、リモートリポジトリを作成します。ローカルリポジトリを作成するときは「git init」としていましたが、リモートリポジトリの場合は「git init --bare」とコマンド打ちます。左側のエクスプローラーに示すようなフォルダとファイルが自動生成されることを確認して下さい(pic.4)。
     ローカルリポジトリと同じフォルダ内にファイルを作成して編集を行いましたが、リモートリポジトリというのはローカルリポジトリとデータのやり取りを行うだけで、リモートリポジトリと同じフォルダであれこれ作業を行うことはしません。

    リモートリポジトリの作成

    - pic.4 -

     今度はローカルリポジトリに戻って、このローカルリポジトリとリモートリポジトリを対応させるようにします。コマンドは
    「git remote add origin [リモートリポジトリ]」となります。また、「git remote -v」でリモートリポジトリの設定先を確認することが出来ます(pic.5)。

    ローカルリポジトリとリモートリポジトリの対応

    - pic.5 -

     push コマンドはローカルリポジトリをリモートリポジトリへ反映するコマンドです。しかし「git push」とコマンド打つと何やらエラーが表示されます。「git push --set-upstream origin master」というコマンドを替わりに使えということが書いているのでその通りにします。

    git push

    - pic.6 -


     次に「git log --oneline」とコマンドを打つと、pic.7のように表示されていれば問題ありません。水色の HEAD -> の後に続く緑色の「master」はローカルリポジトリの現在位置を表しており、赤色の「origin/master」はリモートリポジトリの現在位置を表しています。

    pushが出来たことの確認

    - pic.7 -


     ローカルリポジトリとリモートリポジトリの位置関係を理解するため、もう一度commitとpushを行ってlogの表示を確認してみることにします。まず、「f1.txt」ファイルを適当に編集した後、「git commit -m "f1.txtファイルの登録"」とコマンドを打って、 さらに「git log --oneline」とコマンドを打ちます。すると「HEAD -> master」はローカルの現在地を指し示しているため、最新の位置に移動しますが、リモートリポジトリに対しては何も操作を行っていないため「origin/master」は先ほどの「f1.txtファイルの登録」の位置に留まったままになっています。


    ローカルリポジトリの現在位置が移動

    - pic.8 -

     ここから続けて「git push」とコマンドを打ち、「f1.txtファイルを編集」で変更されたファイルをリモートリポジトリへ反映させます。すると今度は「origin/master」が最新の位置に移動します。このように「origin/master」はリモートリポジトリを示しているため、commitのときには元の位置に留まっているがpushしたときに更新内容が反映されることが、gitの表示から解るようになっています。

    リモートリポジトリの現在位置が移動

    - pic.9 -