見出し画像

[Git/GitHub]今日の学習アウトプット!

Gitはバージョン管理システム。
いつ、誰か、どこを、編集したのか時系列で管理できる。
履歴の確認や、バージョン戻しも容易。

GitHubは、Gitを使ったWebサービス。
複数人での開発を容易にしてくれる。

GitHub Desktopは、GitHubが提供するデスクトップ用のアプリ。
GUIで、操作しやすく、より開発を容易にしてくれる。

Gitを使うには、まずリポジトリを作成する。
これは≒フォルダのようなもので、変更履歴やファイルを保存しておく。
このリポジトリ作成時に、管理したい範囲を選択する。
例えば、アプリを管理したいなら、それがまるっと入ったディレクトリを選ぶ。

実際の操作方法は、Git Hub Desktop画面左のadd exidintg Re~をクリックして、ディレクトリを選び、Addする。

2回目以降は、画面左上のCurrent~からAddで、add exidintg Re~、ディレクトリ選択、Add ~。

これで、ロカールレポジトリ、自分のPCに置く箱が作成できた。
次は、これをサーバーにアップロードする。

その際、サーバーにもリモートレポジトリを作成する。
ただしローカルと異なり、リモートで直接変更はしない。
あくまで、ローカルの変更を反映させる。

やり方は、commit後にPublish repositoryをクリック。
初回は、レポジトリの作成+commitした変更が同期される。

2回目以降は、レポジトリの作成は不要なのでcommitのみの反映(アップロード)となる。
これをpushという。
やり方は、commit後にpush originをクリック。

そもそもcommitとは何かというと、レポジトリに変更修正内容を記録すること。
commit時に記入するメモをコミットメッセージという。
メモだけで変更点がわかるように記載する。

また、そのためには細かい頻度でcommitする。
ただ、頻繁な操作はわずらわしいので後述するインデックスとaddを使う。

Git Hub Desktopのchangesには変更点が全て表示されるが、
変更にチェックを入れているとインデックスというところに一時保管される。

インデックスという場所に移すことで、commit(変更の記録)ができるようになる。
つまり、チェックを入れた状態がインデックスにaddされているということ。

なのでチェックの有無でcommitするか、しないかを操作できるため、
後から細かい粒度でcommitをしていける。

Git Hub Desktopを使用してるのでGUIを使った簡単な操作が行えているが、
ターミナル上で行う場合は、下記のようになる。

#これでチェック状態かどうか確認できる
git status
→未チェック状態だとファイル名が赤で、チェック状態だと緑で表示される

#チェック状態にするには
git add .

・・・Git Hub Desktopの恩恵を非常に感じた。

また、commitのログの確認をcommit logという。
push前の履歴の確認は、Git Hub Desktop左のHistoryタブで、
pushあとは、リモートにも反映されているのでwebからも確認できる。

また、commitする際にmacだと.DS_Storeというディレクトの情報を記録する隠しファイルも一緒にアップされてしまう。

それを防ぐ方法として、.gitignore_globalファイルが使える。
方法としては、ホームディレクトリに.gitignore_globalファイルを作成。(vscode上で操作)
ファイルに.DS_Storeを記述。
ここまでで、このファイルは無視してね!という設定ができたので、
あとはターミナルで下記コマンドを実行して設定を反映させる。

git config --global core.excludesfile ~/.gitignore_global

上記ファイルに記述することで、
全レポジトリにこの設定を適応できる。

レポジトリ固有で無視したいファイルがある場合は、.gitnoreを使うといい。