雑な認識なので正確でない内容を含みます
GitHubとは
Gitの内容をオンラインで公開/共有できるwebアプリ
Gitとは
ソースコードに対し「いつ」「誰が」「どの部分を」編集したか
いわゆるバージョン管理をするためのツール
利用者はエンジニアのみでなく、
文章を書く人や、会社によっては事務にも導入されているらしい
単語
リポジトリ
データを保存しているフォルダのようなもの
バージョン管理などの意味合いが含まれる
ローカルリポジトリ -> 手元のパソコンのリポジトリ
リモートリポジトリ -> GitHub上のリポジトリ
ブランチ
複数人で同じプロジェクトに関わる上で、全員が本体を編集すると
同じ箇所の編集であったり、間違えたときのバージョン巻き戻しなどが大変になる
なので、枝分かれさせた小さなバージョンを作り、それが問題なく動いたら本体に合流させる
マージ
ブランチを合流させる動作のこと
コマンド
sourcetreeなどgitをGUIで操作できるツールは色々あるので覚えなくてもいい
git init
リモートリポジトリが存在しないプロジェクトを一から立ち上げた場合
「ここをこのプロジェクトのローカルリポジトリとする」宣言
git clone
リモートリポジトリが存在するプロジェクトを文字通りclone(複製)して
ローカルリポジトリを作成するために使う
git add
変更した内容を認識(ステージ)させるためのコマンド
個人開発なら大体 -A オプションをつけて全部ステージさせても問題ない
git commit
変更して保存しただけではバージョンとして処理されない
commitすることで初めて一連の変更が新しいバージョンとして処理される
-m オプションでコミットメッセージを直接付与できる
コマンドプロンプトでコミットメッセージをつけなかった場合vimが立ち上がる
いつもの画面から変わる上、:q
などのコマンドを要求されるので初見詰みポイント
git push
ローカルでcommitした内容をリモートに共有する
git status
今のワーキングディレクトリの状態を確認
・どのブランチを編集しているか
・変更されたファイル
・ステージされているファイル
等の情報を確認できる
git branch
ローカルリポジトリに存在するブランチの一覧表示
git branch [new-branch]
新しいブランチの作成
git checkout [branch-name]
指定したブランチに切り替える
checkoutせずブランチをmainのまま編集には気を付けよう
git checkout -b [new-branch-name]
で新しいブランチを作成し、そのブランチに切り替えることができる
git merge [branch-name]
指定したブランチを現在のブランチにマージする
その他
git rebaseは基本的に使わない方がいいらしい
バージョンの巻き戻しはrestore