LoginSignup
0
0

More than 1 year has passed since last update.

Git & GitHub まとめてみた

Last updated at Posted at 2023-03-18

git とは

バージョン管理システムのこと

  • バージョン管理:変更履歴を保存・管理すること
  • 目的:任意の状態にファイルを戻せるようにするため
  • 利用機会
    • ① 変更したけど、前の状態に戻したい!➡︎すぐに戻せる
    • ② いつ・誰が・どんな変更をしたか分かる➡︎ 複数人での共同開発が可能!!
  • gitを使わないとどうなるのか?
    • → 変更 ➡︎ 保存 ➡︎ やっぱ前の状態に戻したい ➡︎ 手作業で戻す = human errorの原因…
    • → 変更後、随時ファイル保存してバージョン管理 = ファイルの数が膨大に&ファイルの命名ミス➡︎正確なバージョン管理✖︎
  • ➡︎ git を使わないことで多くの不都合が起こりやすくなる!

gitのイメージ

  • スナップショット: 一場面を切り取ったもの
    <<写真>>
    ■ git = 変更履歴を保存・管理
    → 変更履歴をスナップショットとして保存
    → スナップショット・・・+αデータ:変更日時・変更者を保存する
    → 「いつ・誰が・どのファイルに・どんな変更をしたか」がわかる!!

変更時のファイルの移り変わり/開発フロー

  1. ワークツリー:ソースコードを編集するファイルがある、 Git管理下のディレクトリ
     → ファイルの変更をするディレクトリ(別名:作業ディレクトリ・ワーキングツリー)
  2. ステージングエリア(別名:インデックス):コミット前にスナップショットを配置する領域
     → ワークツリーから直接、ローカルリポジトリにいかない。
     → 「add」して初めて、Git 管理下にファイルを移動させられる
  3. リポジトリ:ステージングエリアのスナップショットを保存する領域
     = コミットを記録する領域
     → ローカルリポジトリ:それぞれのPCにあるリポジトリ(localのスナップショットを保存する領域)

<<写真>>

※ ステージングエリア&ローカルリポジトリ=ワークツリー内部にある領域
 → 構造:ワークツリー ▶︎ .git ▶︎ ステジングエリア・ローカルリポジトリ(.git配下にあるファイルのみgitのバージョン管理対象になる
※ 「コミット」2つの意味
① ステージングエリア → ローカルリポジトリ :スナップショットを登録すること
② ローカルリポジトリにあるスナップショットそのもの

「ステージングエリア」の存在意義

■ Git の考え方:コミット履歴は綺麗な方が良い
→ 理由:コミットが綺麗 = 任意の変更地点に戻りやすくなるから
→ 「コミットが綺麗」とは: 一つの変更目的=一つのコミット
<<写真>>

ステージングエリアの流れ
流れ 領域 状態
[1] ワークツリー それぞれの目的で変更したスナショが多数
[2] ワークツリー→ステージングエリア ある目的で変更した一つのスナップショットを add
[3] ステージングエリア→ローカルリポジトリ ある目的で変更した一つのスナップショットのみ保存
[4] [2][3]繰り返し
▶︎ ステージングエリア ある  → **一つ一つの変更履歴がどういう目的で行われたのか明確になる**

▶︎ ステージングエリア なし
 → ワークツリーにあるすべてのスナップショットがローカルリポジトリに登録される
 → どういう目的でどういう変更がなされたのか分からなくなる

Git を使う

Gitをはじめる → ユーザー名&メアド登録 なぜ?

共同開発時する際:誰がコミットしたの?→他のユーザに伝えるため

gitconfig(アカウント作成に使うコマンド)の基本

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0