【Git】プッシュ(Push)

【Git】プッシュ(Push)図解 P
PR
PR

プッシュ(Push/Git)とは、バージョン管理システムのGitにおいて、自分のパソコンで記録した変更を、GitHubなどにある共有のリポジトリへ送り届ける操作のことです。手元でコミットしただけでは変更は自分のパソコンにしかないため、ほかの人と共有するには、プッシュで送り出す必要があります。

現実世界に例えると、プッシュは自宅で書き進めた原稿を、編集部の共有の棚に届けることのようなものです。自分の机にある間はほかの人は読めませんが、棚に置けば、チームの誰もが最新の原稿を手に取れるようになります。

プッシュ(Push)図解

【Git】プッシュ(Push)図解
※画像をクリックすると拡大表示します。

手元とリモートの2つのリポジトリ

前提となる仕組みです。Gitでは、自分のパソコンにある「ローカルリポジトリ」と、サーバー上で共有される「リモートリポジトリ」の2つを使い分けます。コミットはローカルへの記録で、プッシュはそれをリモートへ反映させる操作です。この2段階に分かれていることで、通信のない場所でも作業を進められます。

プッシュの基本

使い方です。「git push」に続けて、送り先のリモートの名前とブランチの名前を指定して実行します。初めてプッシュするブランチでは、送り先との対応を覚えさせる設定を付けておくと、次からは「git push」だけで送れるようになります。

コマンドの例 していること 使う場面
git push 今のブランチを送る ふだんの作業
git push -u origin main 送り先を覚えさせて送る 初めて送るとき
git push –tags タグを送る リリースの印を共有するとき

拒否されることがある

よく出会う場面です。自分が最後に取り込んだあとに、ほかの人がリモートへ新しい変更を送っていると、プッシュは拒否されます。そのまま上書きすると、相手の変更が消えてしまうからです。この場合は、先にプルでリモートの変更を取り込み、自分の変更と合わせてから、改めてプッシュします。

強制プッシュは慎重に

危険な使い方です。拒否を無視してリモートの内容を手元の状態で上書きする「強制プッシュ」という方法もありますが、ほかの人の変更を消してしまうおそれがあります。どうしても必要な場合は、リモートが自分の知っている状態から変わっていないときだけ上書きする、より安全な指定を使うのが一般的です。

大事なブランチは守る

チームでの工夫です。GitHubなどのサービスでは、本番用のブランチに直接プッシュできないよう保護する設定があります。変更は作業用のブランチへプッシュし、プルリクエストで確認を受けてから取り込む流れにすることで、確認されていない変更が本番に入る事故を防げます。

プッシュをきっかけに動く仕組み

開発の自動化との関係です。多くの開発現場では、プッシュされたことをきっかけに、テストやプログラムの組み立て、公開の作業が自動で始まるように設定されています。こうした仕組みはCI/CDと呼ばれます。プッシュは単に送るだけでなく、一連の作業の出発点にもなっています。

送ってはいけないものに注意

セキュリティの注意点です。パスワードやAPIキーのような秘密の情報を含むファイルをプッシュすると、リポジトリを見られる人すべてに漏れてしまいます。公開のリポジトリなら世界中から見えます。あとから消しても履歴に残るため、送る前に内容を確かめ、秘密の情報は管理の対象から外しておくことが大切です。

こまめに送るのがよい

使い方のこつです。手元にだけ変更をためておくと、パソコンの故障で作業が失われたり、ほかの人の変更との食い違いが大きくなったりします。区切りのよいところで作業用のブランチにプッシュしておけば、バックアップにもなり、チームの仲間も進み具合を確かめられます。

あわせて知っておきたい用語

  • プル(PULL):
    リモートリポジトリの変更を、手元に取り込む操作です。
  • コミット(COMMIT):
    ファイルへの変更内容を、記録として保存する操作です。
  • リポジトリ(REPOSITORY):
    ファイルとその変更履歴をまとめて保管する場所です。
  • CI/CD:
    テストや公開の作業を自動化し、継続的に行う仕組みです。

コメント

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