6時だョ!!全員集合!!

Rails・JavaScrictを中心にアウトプットします。

2021年9月17日 GitとGitHub

Gitとは?

ソースコードをはじめとしたファイルの変更履歴(バージョン)を管理することを「バージョン管理」と呼びます。 ファイルの追加や変更の履歴情報を管理することで、過去の変更箇所を確認する、特定時点の内容に戻す、などの「バージョン管理」という作業が可能となります。 そのバージョン管理を行うのがGitです。

GitHubとは?

複数人のエンジニアがリモートリポジトリとして活用する他、チーム開発を行うための機能を提供するWEBサービスGitHubです。

git status

git status コマンドは、このワークツリーという領域で変更・追加した状態のファイルや、インデックスという領域に反映されている状態のファイルを確認することができます。

つまり、現在のインデックスの状態を見ることができるのです。 画像引用

# 現在の状況を確認する
$ git status

#ディレクトリの状態を確認する
$ git status [ディレクトリ]

以下の表示結果では、項目ごとに該当するファイルを確認できます。

  • Changes to be committed = コミットする予定の変更したファイル(インデックスに反映されているファイル)
  • Changes not staged for commit = まだインデックスに追加されていない、変更したファイル
  • Untracked files = Gitでまだ管理されていないファイル(新しく追加したファイル) 画像引用

直前のコミットからの変更があった場合、以下のものがファイルの前についています

  • modified:修正したファイル
  • deleted:削除したファイル
  • Untracked files:新規作成したファイル

git add

git add コマンドを打つと、インデックスにaddで指定したファイルが入ります。(コミットする前の準備段階) インデックスとは、コミット前に変更内容を一時的に保存する領域を指し、インデックスに追加されたファイルのみがコミットの対象となります。

$ git add 変更したい(コミット)ファイル名
$ git add .
# git add .は変更したファイルを全て、インデックスに追加してしまうので、色んなファイルの変更したコミットする時は、色んな変更をしたコミットとして登録されます。
# 色んな変更をまとめてaddとcommitはしないほうが良い。

あどちょんの"ちょん"はカレントディレクトリを指しています。 カレントディレクトリ配下の全てのディレクトリやファイルを指定していることになります。

git commit

ファイルの追加・変更をローカルリポジトリに反映する操作を意味します。 以下のコマンドを入力すると、インデックスに存在するファイルがローカルリポジトリへ追加されます。

※)コミットは編集した機能や修正内容ごとにすることが大切です。1修正ごとにコミットするのをオススメします。
※)コミット時点で正常に機能しているか確認しましょう。

# Add:の部分はprefix名
$ git commit -m "Add:ファイル名"

ここで -m はコミットメッセージを入力するためのオプションです。 コミットメッセージは任意ですがAddやFixなどを先頭につけたり、作業内容などを分かりやすく書いておくと良いです。

push

ローカルのコードをリモートリポジトリに送ります。 画像引用

origin

リモートリポジトリの保管場所の名前です。 名前は実は変更することも出来ますが慣習的にoriginとされることが多いです。

GitHubのフォークとクローンの違い

  • clone リポジトリの複製をローカル環境に作成することを指します。 ローカルにクローンしたリポジトリに対しては、自由にコミット、プッシュ、マージをおこなうことができます。

  • fork リモート上で公開されているリポジトリを自分のGithubにコピー出来ます。フォークすると、オリジナルのリポジトリの所有者にforkしたことが通知されます。

単に公開されているリポジトリをベースにして何かを作ろう、とか、ビルドして動きを見てみようという場合ならforkを使います。

画像引用

じゃあ、ナイフは?git knife??🔪🔪🔪

参照

【超入門】初心者のためのGitとGitHubの使い方

GitHubのforkはリポジトリの複製 フォークの手順と、クローン、ブランチとの違い

GitHub初心者はForkしない方のPull Requestから入門しよう

リポジトリのフォークポリシーを管理する

【Git入門】git status の使い方(ファイルの状態を確認する)