学生の時以来で久しぶりにGitHubを使うことになって、自分のためのメモを作成。
Gitのインストール方法とかは書きません!
👮開発の流れ
こんなんが多いと思う
クローンする
作業用ブランチを切る
作成したブランチに移動する
実装する
ステージングにあげる
リモートリポジトリにpushする
PR作成する
masterマージ(リリース)
👮gitコマンド
git clone 🧬
指定したリポジトリのコピーが作成される
あらかじめ作成した作業用ディレクトリ配下にリポジトリ名と同名のフォルダができあがる
git status🧐
リポジトリの状態を見てみよう!
今いるリポジトリでどのファイルが変更/ステージングされているかな👀を確認できる
想定外に変更が発生していたり、していなかったりを確認できる
git branch 🌿
自分の居場所がわかります
ブランチの一覧も確認できます
git checkout <ブランチ名> 🔄
ブランチの切り替え
よく使う素敵なおまじないはこれ
git checkout -b <新規ブランチ名>
指定した名称でブランチ作成&作成したブランチに移動できる
git add➕
変更をステージングする
-A
オプションでステージングできるファイルを全部指定できる
git commit💾
ステージングされた材料をコミットする
git push📤
コミットしたものをリモートリポジトリにアップロードする
これで自分が開発したものを他の人がGitHub上で見れるようになる👀
git pull📥
リモートから最新の変更を取得して、ローカルのブランチに反映
git fetch origin🚚
リモートリポジトリから最新の変更を取得するけど、ローカルにはマージしない
git merge origin/master🔗
fetchで取り込んだ変更をローカルにマージする
👮コマンドを調べていて困ったこと
コマンドの意味もわからないくらいの雑魚エンジニアなのに、カタカナで説明しないでくれるー?って私の中のギャルが騒いでました
マージってなに?
ニュアンス的になんか統合するんでしょ〜は分かる。
もう少し加えると、異なるブランチの変更を統合するプロセスのことを指している。
featureブランチで新しい機能を開発して、mainブランチに統合する場合とかにマージするよね。
別々の料理を一つの大皿に盛り付けるようなイメージ。🍲
コミットってなに?
リポジトリ上に変更を保存するプロセスを指している。
ゲームを途中でセーブするような感じ。ちなみに私は一切ゲームしない⛪️
コミットという機能があることの利点としてはいくつかあって、
- いつ、誰が、どんな変更をしたか追跡できる
- 新しい機能を追加するコミット、バグを修正するコミットなど、変更の単位を管理できる
- コミットを遡って変更を復元できる
ステージングってなに?
コミット前に変更を準備するプロセスを指している。
ステージングエリアにあるものだけをコミットできる。
ステージングという仕組みがあると
- コミットする変更対象を選択できるため、変更の柔軟性が上がる(いくつかファイルを変更したけど、とりあえずこれとこれだけコミットして様子みたいな〜とか)
- 変更を整理していコミットできるため、プロジェクトの履歴を後から遡りやすい
ステージングってなんで必要なんや、って思ってたけどこのサイトを読んでメリットが分かった。
さいごに
学生の頃はプログラム書くの嫌いで、開発なんかやってやるかー!って思ってたのに、なんでかエンジニアになって個人開発にも手を出すように
個人開発だし、わざわざgitで管理しなくてよくないか?とゴリゴリやってたけど、一度知ると便利ですね、、、(気付くのが遅い)