ホップ、ステップ、プッシュ‼ 『 git push 』どしどし押し出そう
こちらの記事でリモートリポジトリを作成し登録しましたね。
今回の記事はこれをこの後どうするかの話です。
結論から言うと、「リモートリポジトリにデータを登録していく」のです。
今回は、ローカルリポジトリのコミット(変更内容)をリモートリポジトリ(Bitbucket)にアップロードしていこうと思います。
コマンドの名は ❓
記事のタイトルにもある通り😅、 『 git push 』 コマンドです。
git push コマンドとは ❓
✔ ローカルリポジトリの内容をリモートリポジトリに反映させるためのコマンド
✔ 「ローカルの現在のブランチ」を「リモートの指定したブランチ」に反映
という感じで、ローカルリポジトリにあるコミットをリモートリポジトリにアップロード(プッシュ)します。
書式
$ git push [オプション] プッシュ先のリモートリポジトリ名 プッシュ元のローカルブランチ名
これでローカルリポジトリのとあるブランチのコミットを、リモートリポジトリまで運んでくれます。
もう少し補足すると、ローカルリポジトリのとあるブランチの変更履歴と
リモートリポジトリで持つそのブランチの変更内容の差分を運びます。
ちなみに、
ローカル:ブランチA
リモート:ブランチA存在せず
だった場合には、リモート側に新しくブランチAが作成され、ローカルブランチAのコミットも併せてリモート側にプッシュされるわけです。
☝ 実際にやってみる ☝
下準備
今回対象とするファイル
C:\Users\mevius\Documents\BitbucketRepository\Test というフォルダ(ローカルリポジトリ)にある、notedemo.xlsx というエクセルファイルです。
A1、B1、C1 セルに数値が、D1 セルには関数(=SUM(A1:C1))が入っています。
リモートリポジトリについて
以前の記事で作成した『 Test 』というリモートリポジトリです。
前述した対象ファイルの状態までは既に反映させてあります。
次に示す master の状態です。
今回の記事では、これ以降に発生したコミットをプッシュして反映させていきます。
ブランチの状態
ローカル:2つ
master
develop
リモート:1つ
master
「master」については予めプッシュをしてあり、内容は同じです(揃っています)。
「develop」ブランチは、「master」からブランチを切り、次の通り一つコミットを加えた状態です。
ローカルで対象ファイルに変更を加えてコミット
こうような形のテーブルにしてコミットしました。
$ git log
・・・
最上行に行追加し、テーブル化
・・・
はい、これでローカルとリモートに差分が生まれました。
このようにしてできた差分をプッシュして、リモート側に反映していくわけです。
さあ、いよいよプッシュ ❗
mevius@SurfaceLaptop MINGW64 ~/Documents/BitbucketRepository/Test (develop)
$ git push -u origin develop 👈プッシュコマンドを実行
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 5.32 KiB | 1.77 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote:
remote: Create pull request for develop:
remote: https://bitbucket.org/mevius_mktg/test/pull-requests/new?source=develop&t=1
remote:
To https://bitbucket.org/mevius_mktg/test.git
* [new branch] develop -> develop 👈リモート側に新たにブランチが作成された
Branch 'develop' set up to track remote branch 'develop' from 'origin'.
オプション「-u」をつけることで、ローカルのブランチとリモートのブランチを紐づけ、次回から「git push」だけで実行可能になります。
でも、書式の通り明示的に毎回記載したほうが理解のためには良いと思います。慣れてきたら「git push」だけでパパっとプッシュしちゃいましょう。
SourceTree の場合には
さらにローカル側で変更を加えてみます。
$ git log
・・・
テーブルに1行追加し値を入力
・・・
このようにして、ローカル側にコミットしローカルとリモートに差異が発生したら
このような表示になります。
「数字の1」と「↑」が表示されました。
SourceTree からのメッセージは
ローカル側が1コミット分進みましたよ、プッシュしてリモートに差分を反映できますよ
です。
上部の「プッシュ」ボタンをクリックします。
すると
という画面がでてきますので
✔ どこにプッシュするのか
✔ どのローカルブランチのコミットをプッシュするか
を念のため確認し、「プッシュ」をクリックします。
これでコマンドで行った場合と同様の操作になります。
補足
コミットメッセージを入力する欄の付近に
コミットしてそのままの流れでプッシュも行うか?
を聞いているチェックボックスがあります。
この画像では、リモートリポジトリ(origin)の developブランチにプッシュするか聞かれていますね。
プッシュまで一気に行いたい場合には、☑して『コミット』してください。
ちなみに、私はほとんどコマンドで操作するのですが、add からコミットにかけては状況を見たりコメントを入れたり諸々が楽なので SourceTree で行うことも多いです。
その時、このように☑してついでにプッシュも度々行ったりします。
リモートリポジトリを確認
ブランチを見てみる
master より 2つコミットが進みましたよ
と書かれています。今回プッシュした2つのコミットが追加されたので。
コミットを見てみる
今回ローカルで追加したコミット(メッセージ)がちゃんと見れますね。
しっかりリモート側にも反映されたことが確認できました。
今回はここまで 🔚
これでリモートリポジトリの活用も一歩進みましたね。
プッシュしておけば万が一ローカルでデータが消えても、リモートから持ってくれば何とかなります🎵
これはまた別の記事で書きますね。
ちなみに、この記事ではブランチの内容(コミット)をプッシュしましたが
$ git push プッシュ先のリモートリポジトリ名 プッシュ元のタグ名
例.
$ git push origin v1.0
$ git push origin 初版
とすると、ローカル側でタグ付けをしたけどリモート側に付けられていないタグについてもプッシュして反映できます。
あと、今回はコミット1つ追加された時点、つまり少しでもリモートと差分が生まれたらプッシュしましたが、コミットをいくつも溜めておいて後でまとめて一気にプッシュということもできます。
最後までお読みいただきありがとうございました 😊
▶ 続けて読むのにおススメな記事
#スキしてみて #いま私にできること #最近の学び #学び #これからの仕事術 #IT #学習 #パソコン #駆け出しエンジニア #ITエンジニア #PC #windows #Git #Sourcetree