【Gitの流れ】開発現場で使うGitのコマンド
みなさんGitの知識はありますか?
この記事はGitのバージョン管理について聞いたことはあるけど、いまいちgit pushやgit pullなどについてよく分かってない方や、
そもそもgitについての全く知識がない方へ開発現場で使われるにgitの流れついての紹介です。
この記事でわかること
- gitについて
- gitのコマンド、オプションの意味
- gitの流れ
この記事を最後まで読めば「gitについて」から「gitの流れ」までの理解が深まりますので、最後まで読んで「git」についてマスターしましょう。
それでは順に見ていきましょう。
gitの開発の流れ
結論になりますが、以下がgitの流れです。
- git init
- git remote add origin リポジトリ
- git clone リポジトリ
- git checkout -b ブランチ名
- git push -u origin HEAD
- git add -A
- git commit -m “コメント"
- git push origin ブランチ名
- git pull origin mian
プロジェクトの有無について
これからプロジェクトを作ってgit管理する方は
このまま記事を読んでください。
すでにプロジェクトが作成されている場合は、
飛ばしてgit cloneから見てください。
スポンサードサーチ
git init
git initとは
git initはリポジトリを作ることができます。
そもそもですがgitとはバージョン管理システムで、git initすることでリポジトリが作成されます。
リポジトリとは
gitのリポジトリとは、ファイルやディレクトリの状態を記録する場所です。
保存されたファイルやディレクトリの内容は変更履歴として格納されます。
git add
initしたリポジトリをaddしてステージエリアに反映させます。
ここではgit add -Aのコマンドと叩いてください。
-Aで全ての変更点をステージングエリアに反映できます。
スポンサードサーチ
git commit
git commit -m "リポジトリ作成直後の最初のコミット"
git commitでローカルリポジトリーのインデックスにあるファイルの変更を記録します。 gitは更新履歴をインデックスで管理しているので、ステージエリア(git addした内容)をcommitすることでインデックス管理することができます。
git remote add origin リポジトリ
originとは
originとはリモートリポジトリのGitがつけている名前(リポジトリの場所の別名【URL】)のことです。
git remote add origin リポジトリではリモートリポジトリへ追加することができます。
追加することで、ローカルとgitを紐付けさせることができます。
git remote add origin URL
git remote add origin 追加したいリポジトリ
githubでリポジトリを追加
git remote add origin git@github.com:kami/sample_app.git
gitlabでリポジトリを追加
git remote add origin git@gitlab.com:kami/sample_app.git
スポンサードサーチ
git clone リポジトリ
git clone リポジトリ
git clone リポジトリ
git cloneするのは次の2つがあります。
- HTTP
- SSH
HTTPであればクローンすることができますが、privateリポジトリはgit clone時に認証または、
SSH公開鍵の設定が必要です。
git checkout -b ブランチ名
ブランチとは
ブランチとは作業した履歴の流れをブランチ毎に分岐して記録していく作業場のようものです。
git checkout -b ブランチ名
git checkout -b ブランチ名でブランチを作れます。
ブランチを作ることでmainブランチから任意のブランチへ切り替わります。
git checkout -b ブランチ名
開発現場や開発方法にもよりますが、gitのプロジェクト管理ではfeatureブランチを作ることが基本です。
git checkout -b feature/ブランチ名
詳しくはGit-flowで説明しますね。
git push -u origin HEAD
git push -u origin HEADとは
git push -u origin HEADについて説明するまえに、git push origin HEADとgit push -u origin ブランチ名を説明します。
git push origin HEAD
gitで出てくるコマンドのオプションなどを説明します。
- push:ローカルのリポジトリをリモートリポジトリにアップするために行う
- origin:リモートリポジトリのGitがつけている名前(リポジトリの場所の別名【URL】)
- HEAD:現在、自分が作業している場所を示します。
つまりgit push origin HEADは、「gitでカレントブランチをリモートの同名ブランチにプッシュ」する際に使用することができます。
※ローカルブランチとリポートブランチは同名にするのが一般的です。
git push -u origin ブランチ名
git push --set-upstream origin
–set-upstreamと-uは御一緒に説明します。
- –set-upstream:リモートリポジトリのブランチを上流ブランチ(Upstream branch)として設定する
- -u:-set-upstreamの略
上流ブランチ(Upstream branch)とは
上流ブランチ(Upstream branch)とは、ローカルブランチが、履歴を追跡できるように設定したリモートブランチの事です。
上流ブランチの設定を行うと、git push時にリモートレポジトリ名とブランチ名を省略できます。
git push –set-upstream originはgit push -u origin ブランチ名と同じです。
–set-upstreamの省略が-uです。
いよいよgit push -u origin HEADについてです。
git push -u origin HEAD
git push -u origin HEADとはローカルブランチをローカルと同じブランチ名でリモートへ、リモートリポジトリのブランチを上流ブランチ(Upstream branch)として設定します。
git add -A
git add -Aの前にgit add ファイル名を先に説明しますね。
git add ファイル名とは
git add ファイル名
git add
は、指定したファイルをインデックスに登録してコミットの対象にするコマンドです。
git add text.txt
gitはステージエリアに、変更点(新規のファイルや編集したファイル)を反映させるためにコミットします。ファイルをステージエリアに追加したら、git commitコマンドでコミットします。
コミットした内容は、git pushコマンドでステージエリアにある変更点をリモートリポジトリにプッシュします。
※pushとは同期のことです。
- git add –update:バージョン管理されている変更があるファイルのみaddする
- git add -u:git add –updateの略
- git add –all:変更があるファイル全てをaddする
- git add -A:git add –allの略
git add -uとは
git add -uではージョン管理されている変更があるファイルのみaddします。
変更したファイルや元々あったファイルを削除した場合はaddできます。
新しく作成したファイルはaddできません。
git add -Aとは
git add -A
変更があったすべてのファイルがaddします。
新しく作成、更新、削除したファイル、すべてがaddされます。
今回は詳しく説明しませんが、gitには多くのオプションがあります。
気になるものがあれば調べてみましょう。
- git add . :すべてのファイル・ディレクトリ
- git add *.js :すべてのjsファイル
- git add -n :追加したファイルを調べる
git commit -m “コメント"
git commit -m “コメント"とは
git commit -m "ステージエリアにいるaddしたファイルを"
git commit とはローカルリポジトリーへ、インデックスにあるファイルの変更を記録します。
リモートリポジトリへ記録する際にローカルリポジトリのどの変更点なのかをインデックスをつけることで、コミットが検引できます。
-mは–messageのことです。
どちらでも大丈夫です。
git push origin ブランチ名
git push origin ブランチ名とは
git push origin branch_name
git push origin ブランチ名はリモートリポジトリのブランチへcommitした内容を更新します。
※ブランチ名を指定することで、任意のリモートブランチへpushできます。
先ほど学んだgit push origin HEADでローカルとリモートが同じブランチにpushすることもできるので、まだgitの知識について不安な方はgit push origin HEADをおすすめします。
慣れている方や上流ブランチを指定できてるのがわかっている場合はgit pushのみでpushできます。
git push origin branch_name
or
git push origin HEAD
git pull origin main
pullとは?
pullとはリモートリポジトリからローカルリポジトリへ最新の情報を取得してローカルを更新することです。
git pull origin main
git pull origin mainはリモートのmainブランチからローカルの現在作業しているブランチを最新にすることです。
流れとしてはgit push後に自分の作業ブランチも他の開発者のpush情報などを反映させることから、mainをpullしてますが、任意のブランチのみpullしたりすることもできます。
git pullとgit pull origin mainの違い
- git pull:リモートにある全てのブランチ情報を取得する
- git pull origin main:リモートにあるmainブランチ情報を取得する
注意点としてはリモートブランチとローカルブランチがあるようにmainブランチもリモートブランチとローカルブランチがあります。
まとめ
- gitの奥は深く、すぐに覚えれないのでまずは開発の流れを頭に入れてください。
実装やエラーが解決できない場合
プログラミングの実装やエラーでどうしてもわからない場合はメンターに相談するのが一番です。
考えている、見えている範囲が狭くなり、解決から遠くに行って何時間も、何日も経っていることなんてよくある話です。
そういう時は聞ける先輩や、メンターに相談することが大事です。
僕にも相談可能なので気軽に相談してください。
Twitterからの連絡だと確実ですよ。
オンラインスクールやプログラミングスクールといったプログラミングを学べる方法もあるので、そちらもぜひ活用してもいいと思います。
Web開発で分からない時
オンライン完結型スクール DMM WEBCAMP PROアプリ開発で分からない時
プログラミング×稼げる副業スキルはテックキャンププログラミングについて分からない時
【コエテコ様限定】※ご案内を受けた以外のメディアが使用しても成果は承認されません。僕への個人でもメンターでも、スクールでもお好きな方を活用ください。