GitのCommitとは?AddやPushとの違いは?初心者向けに図解でやさしく解説!

GitのCommitとは?AddやPushとの違いは?初心者向けに図解でやさしく解説!

[st-kaiwa3 r]Gitを使い始めたけど、このcommitってなんなの?イマイチ理解できてないんだけど。[/st-kaiwa3]

というわけで、ここでは、GITを介して、あなたが書いたコードをGITHUBに保存したり、そこからサーバーにアップロードしたりする過程で必要になる、commitというコマンドの使い方と意味を初心者でもよく分かるように図解でやさしく解説していきます。

Gitにおけるcommitとは?

gitで使うコマンドのコミット(commit)。

このコミットという操作を一言で表現すると、「今回イジったファイル達を1つのフォルダにまとめて、名前を付けてローカルリポジトリに保存する行為」と言えます

[st-kaiwa3 r]長い・・[/st-kaiwa3]

もうちょっと短くすると、「イジったファイル達をコミットフォルダにまとめて、名前を付けて保存」って事です。

[st-kaiwa3 r]うーん、分かったような、分からないような・・[/st-kaiwa3]

CommitとAdd、Pushの違いを図で理解しよう!

[st-kaiwa1 r]この図を見れば分かるはずだ![/st-kaiwa1]

例えば、あなたがサイトを作っていて、今回コードを書き換えたとします。
書き換えたコードをgitにバックアップします。

図のような流れで、

まず、add(stage)をし、次にcommitする事で、まずPC上のブランチにデータが保存されます。

保存されたデータをpushする事で、さらにGITHUBにも今回の変更をコピーする事ができます。

この図で示している通り、

[st-mybox title=”ポイント” fontawesome=”fa-check-circle” color=”#0003b5″ bordercolor=”#0003b5″ bgcolor=”” borderwidth=”2″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]

add (stage): 変更したファイルのうち、今回のコミットに含めたいものを選ぶ行為。GITに保存したくないファイルがあれば、そのファイルだけstageしなければOK。1つのフォルダに今回コミットするファイル達を入れる行為。

commit: コミットはステージされたフォルダに「どこどこを変更したよ」というメモを付けて、PC上(ローカルリポジトリ)のブランチに保存する行為。

[/st-mybox]

この2つの行為で、PC上のGITに、コードのバックアップが取れた状態になります。

[st-kaiwa1 r]さらに、pushをする事で、GITHUBにも同じバックアップをコピーする事ができるというわけ。[/st-kaiwa1]

[st-kaiwa3 r]え、PC上にもmasterみたいなブランチってあるの?GITHUBにだけあるんだと思ってた。[/st-kaiwa3]

[st-kaiwa1 r]そう、PC上にもブランチはあって、そこに保存するのが、commitなんだ。GITHUBのブランチに保存する行為はコミットじゃなくてPUSHだからね。[/st-kaiwa1]

GITのPushとPullとは?Cloneとの違いは?初心者でも図で驚くほど分かる!

GITのブランチとは?初心者向けに図解でやさしく解説

Commitの流れを今度はSourceTreeで解説

[st-kaiwa1 r]今の図じゃやっぱり分からん・・というあなた!実際にやってるのを見れば分かるはず![/st-kaiwa1]

これは、GITを見える化するSourceTreeという超便利ツールの画面です。

ファイルを書き換えたところ、まず、Historyタブで、Uncommitted changes(コミットしてない変更)というのが現れました。

Unstaged files というのは、まだstage(add)してないファイル達一覧です。

+ボタンを押すか、StageAllを押す事で、Stage(add)が完了します。先程も説明した通り、これはコミットしたいファイルを1つのフォルダに入れる作業です。

次にFile statusタブに移動すると、コミット前のメッセージを入れる欄が出てきます。

ここに、今回ファイルの何をイジったのかのメモを書きます。そしてCommitボタンを押せば、
コミットが実行され、この場合は、PC上のaskブランチに今回の変更が保存されます。

Historyタブに戻ると、今書いたメモとともに、コミット一覧の最上段に追加されました。

これで、PC上のaskブランチにバックアップが保存されたというわけです。

下に「origin/ask」というのがありますが、これがGITHUB側のブランチです。
origin/askはまだデータが渡ってませんから、前回のコミットの段にあります。
この後、Pushする事で、GITHUBにも全く同じ変更がバックアップされるわけです。

[st-kaiwa1 r]今度こそ、commitがなんなのか分かったかな?[/st-kaiwa1]

SourceTreeのインストール方法<最新版>。GITHUBとつなぐとこまで詳細解説。

ターミナルからgitでcommitする場合のコマンド

SourceTreeを使わない場合は、ターミナル(コマンドプロンプト)を立ち上げて、コマンドを打ってコミットする必要があります。

流れとしては、

  1. まずcdを使って、リポジトリがあるフォルダまで移動する
  2. git status で現在の状態を確認する(option)
  3. git add . で、ファイルをstageする
  4. git commit -m “変更点のメモ” でコミットして完了

という流れです。

まずはターミナルを立ち上げます。Windowsならコマンドプロンプトを立ち上げればOKです。サーバー上なら、TeraTermとかRLoginなどのソフトを使ってSSH接続します。

そしたら、cd コマンドを使ってローカルリポジトリまで移動します。ローカルリポジトリっていうのは、.gitフォルダがある場所です(隠しフォルダになってて見えない場合もあります)。これからコミットしたいファイルやフォルダが入ってるフォルダとも言えます。

例えば、上の画像なら、cd D:\XAMPP\htdocs\japaslang と打つというわけです。(コマンドプロンプトの場合は、Dドライブの場合は、最初にD: とだけ打って、エンターしてから、上のコマンドを打たないと進まないですね。)

[st-kaiwa1 r]もし、まだローカルリポジトリを作ってない場合は、作りたい場所にcdで移動した後、git init とコマンドを打つ事で、作る事ができます。

[/st-kaiwa1]

こんな感じにすると簡単にパスがコピーできます。

次にgit status と打つ事で、現在の状況が表示されます(これはやらなくてもOK。)

そして、git add . と打てば、全部ステージされます。

もし、上げたくないファイルがあるとかそういう場合は、1つ1つ git add パス/ファイル名 を打ちます。git add resources/views/layout.blade.php みたいな具合です。.gitフォルダがあるフォルダに直接ファイルが入ってれば、ファイル名だけで大丈夫ですが、そうじゃない場合は、フォルダも含めて入力する必要があるって事です。

最後に、git commit -m “今回変更した内容のメモ” と入力してEnterすれば、コミット完了です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする