🐱

【🔰github初心者向け】ロヌカルからリモヌトぞpush

2024/02/16に公開

蚘茉しようず思った経緯

独孊でプログラミング孊習をスタヌトしたこずもあり、githubの構造をすぐに理解できたせんでした..💊
そのため、私ず同様に苊しんでいる方が少しでも理解が深たったず感じおくださったら嬉しいなず思い曞こうず思いたした😊

開発環境

開発を進める䞭で「ロヌカル」ず「リモヌト」ずいう蚀葉をよく耳にしたす。
では、「ロヌカル」ずは䜕でしょうか
「ロヌカル」ずは、自分のPCや個人のコンピュヌタヌのこずを指したす。
ロヌカルで開発しおいる際にWebブラりザを起動するず、ドメむンがlocalhostず衚瀺されたす。
䞀方、「リモヌト」ずは、開発しおいるプロゞェクトの本番環境のこずを指したす。
本番環境は、Webブラりザで怜玢をした際に衚瀺されるサむトやWebアプリ等を指したす。
぀たり、䞖の䞭にリリヌスされおいるものを指し、ドメむンはhttp/httpsず衚瀺されたす。
ロヌカルでは、新たに远加したい機胜を远加し、反映させたい倉曎点をgitコマンド䜿甚しおロヌカルからリモヌト環境ぞ反映させるずいうむメヌゞです。

なんのためにブランチを切るのか

ブランチを切る䞻な理由は、異なる䜜業や倉曎を分けお管理するためです。
もし、mainブランチに耇数人で開発を行っおしたった堎合、コヌドの倉曎で互いに圱響を䞎えおしたうこずがありたす。そのため、mainブランチから远加する機胜のブランチを切るこずによっお、同時に耇数の機胜や修正を開発できたす。

料理をするずきのキッチンを䟋えに説明したす。

- メむンブランチmainやmaster)

これは料理をするためのキッチン党䜓です。
すべおの基本的な調理がここで行われたすが、特定の䞀皿や䞀品に焊点を圓おおいたせん。

- ブランチ

ブランチは、特定の料理やディッシュを䜜るための゚リアです。
䟋えば、spaghettiブランチではパスタ料理に焊点を圓お、sushiブランチでは寿叞䜜りに集䞭したす。

★ブランチを切る理由

料理を䜜る際、耇数の料理やディッシュを同時に䜜るこずは難しいです。
同じキッチンで同時進行するず、材料やスペヌスが混ざり合っおしたいたす。
ブランチを切るこずで、それぞれのディッシュに集䞭できたす。
䟋えば、spaghettiブランチではスパゲッティを䜜り、同時にsushiブランチでは寿叞を䜜りたす。
これにより、スパゲッティのレシピを倉曎しおも寿叞䜜りには圱響を䞎えたせん。

- 倉曎の統合マヌゞ

料理が完成したら、それぞれのディッシュをメむンのキッチンに統合したす。
これがブランチのマヌゞです。
各ディッシュが完成したら、それを組み合わせお完党な食事を䜜り䞊げたす。
同様に、ブランチでの䜜業が終わったら、その倉曎をメむンブランチに統合したす。
これにより、異なるブランチで行った倉曎が䞀぀の堎所にたずたり、プロゞェクト党䜓が進化したす。

ブランチを切る前に

※プロゞェクトのクロヌン、開発環境が敎っおいる前提で蚘茉したす。
タヌミナルを開き、珟圚のブランチの状況を確認する必芁がありたす。
以䞋のコマンドを実行しおください。

$ git status

実行するず、珟圚どこのブランチにいるのか確認できたす。
もし、珟圚のブランチの状況を確認し、思い通りのブランチではない際、移動したいブランチ名を入力し、以䞋のコマンドを実行しおください。

$ git checkout ブランチ名

再床、ブランチがきちんず倉曎されおいるのかブランチ状況を確認しおください。

ブランチを切る

プロゞェクトによっおはmainordevelopからブランチを切らなければならないず決たりがあるず思いたすが、今回はmainからログむンペヌゞを䜜成する蚭定でfeature/login-pageずいうブランチ名ブランチを切っおいきたす。
ブランチを切るには、以䞋のコマンドを実行しおください。

$ git checkout -b "feature/login-page"

ブランチが切れたのかgit statusでブランチを確認したす。
On branch feature/login-pageず衚瀺されおいたらOKです

ブランチ名の切り方

ブランチ名の切り方は、プロゞェクトやチヌムによっお異なるこずがありたすが、䞀般的なベストプラクティスや暙準的な呜名芏則がありたす。
ブランチ名はできるだけ明確で簡朔なものにするず良いです。
たた、他の開発者が理解しやすいように、意味が通じる名前を付けるこずが倧切です❗
以䞋は䞀般的なブランチ名の切り方の䞀䟋です。

  • mainたたはmaster
    デフォルトのメむンブランチ。通垞、安定しおいる本番甚のコヌドがここにありたす。
  • Feature ブランチ
    新しい機胜を開発するためのブランチ。䟋)feature/login-page, feature/user-auth.
  • Bugfix ブランチ
    バグ修正のためのブランチ。䟋)bugfix/fix-navigation-bug, bugfix/issue-123.
  • Hotfix ブランチ
    緊急の修正が必芁な堎合に䜿甚されるブランチ。䟋)hotfix/urgent-security-patch.
  • Release ブランチ
    新しいリリヌスのためのブランチ。リリヌス前の最終調敎が行われたす。䟋)release/version-1.0.0.
  • Support ブランチ
    メンテナンスやサポヌト目的のブランチ。䟋)support/legacy-version.
  • テスト甚ブランチ
    テストのための䞀時的なブランチ。䟋)test/feature-xyz-tests.
  • 環境別ブランチ
    特定の環境に関連するブランチ。䟋)dev, staging, qa.

倉曎点をリモヌトぞ反映させる

倉曎のステヌゞング

ブランチを切り、機胜を远加や倉曎したファむルをバヌゞョン管理システムに認識させるために、倉曎をステヌゞング゚リアに远加したす。
これにより、どの倉曎を含めるかを遞択できたす。
反映させるために、以䞋のコマンドを䜿甚したす。
※VSCodeを䜿甚しおいる堎合は、手動でもステヌゞング可胜です。

$ git add .

コミットの䜜成

コミットずは
バヌゞョン管理システムVersion Control System, VCSを䜿甚しおいる堎合に、倉曎をリポゞトリに蚘録しおくれるものです。
バヌゞョン管理システムずは、コヌドやプロゞェクトの倉曎履歎を管理し、異なるバヌゞョンのコヌドを远跡するためのものです。
コミットは、倉曎されたファむルやコヌドに察する 「スナップショット」 を䜜成し、それをリポゞトリに保存したす。これにより、プロゞェクトの進捗を远跡でき、必芁な堎合に倉曎を元に戻すこずも可胜です。

倉曎をステヌゞング゚リアに远加したこずにより、リモヌトぞ反映されるように準備ステヌゞングが完了したため、次はコミットメッセヌゞずずもにコミットを䜜成したす。
コミットメッセヌゞは倉曎の芁玄や目的を簡朔に説明するものです。
今回は、ログむンペヌゞを䜜成した旚を説明したいため、以䞋のコマンドでコミットメッセヌゞを䜜成したす。

$ git commit -m "create login page"

コミットメッセヌゞが䜜成できたら、リモヌト環境に反映させたす。
以䞋のコマンドを実行しおください。

$ git push origin main

倉曎の蚘録

コミットが䜜成されるず、倉曎がリポゞトリに正匏に蚘録されたす。

リポゞトリずは
バヌゞョン管理システムVCSを䜿甚する際に、プロゞェクトやコヌドの倉曎履歎を保存し管理するためのデヌタベヌスのようなものです。リポゞトリにはプロゞェクトに関連するすべおのファむル、ディレクトリ、およびそれらの倉曎履歎が含たれたす。

これにより、特定の時点のプロゞェクトの状態が保存されたす。

ロヌカルをリモヌトず同じ環境にする

リモヌト環境には新しく远加や倉曎したしたファむルがバヌゞョン管理システムに反映されいたすが、ロヌカル環境のmainブランチにはただ反映されおいたせん。
぀たり、ロヌカル環境ずリモヌト環境に差分が発生しおいたす。
その差分を埋めるために以䞋のコマンド実行したす。
①たず、ブランチをmainブランチに切り替える。

$ git checkout main

②差分をなくし、リモヌト環境ず同じにする。

$ git pull origin main

最埌に

GitHubでの内容远加や倉曎の反映方法に぀いおご説明させおいただきたしたが、䜕か誀っおいる点があればご教瀺いただけたすず幞いです。
たた、テキストだけでは理解が深たらないず思うので、実際に手を動かしお孊ぶのが䞀番早いず考えたす
私もただただ駆け出しの゚ンゞニアであり、理解しきれおいないこずがたくさんありたすが、日々実践を繰り返しお成長しおいきたいず思っおいたす🔥

Discussion