作成日:2019-06-24, 更新日:2020-02-07
基本
よく分からん(なんとなくニュアンスが分ければ大丈夫!でOKな人向けのメモ)
GitとGitHub、Bitbucket
・Gitがソース管理の仕組みそのもの
・GitHub(or Bitbucket)がGitを使ったサービス名
Sourcetree
・アプリ。「Gitクライアント」になる
・作業した内容を「Sourcetree」を使ってソース管理に反映する感じ。
→Bitbucketにファイルを送ったり、Bitbucketからファイルを落としたりする(GitHubでも使えるかは未調査)
リポジトリ
・ソースの変更履歴などがある
ソース自体は関係無いが、「ソース」と「ソースの変更履歴」を合わせてリポジトリと言っているような気がする。
リモートリポジトリとローカルリポジトリ
・リモートリポジトリが大元
・ローカルリポジトリで作業
1.リモートリポジトリからソースとかを落としてローカルリポジトリを作る。
2.ローカルリポジトリで作業して、リモートリポジトリに組み込む感じ
リポジトリ、ステージング・エリア(インデックス)、ワークスペース
▼基本:ファイル構成が下記のような感じ
/ ├.git/ │├index │└略 ├ファイルA ├ファイルB └略
・「.git」フォルダがリポジトリ
・「.git/index」がステージング・エリア(インデックス)
・ワークスペースはその他(「.git」フォルダの置かれている場所がワークスペースになるのかな?)
▼リポジトリとワークスペースを分ける場合
/ ├.git/ │├index │└略 ├フォルダ ←コイツの中がワークスペース │├ファイルA │├ファイルB │└略
ブランチ
・「リポジトリ」が「Excelファイル」なら「ブランチ」は「Excelのシート」みたいな感じ
・作業する際は、このブランチを指定する必要あり
チェックアウト
「ブランチを指定すること」が「ブランチをチェックアウト」という表現になる
※Excelだとシートを切替えるのと同じような感じだね。
マスターブランチ、リリースブランチとか
・作業、テスト、公開にあわせてブランチ名を決めよう(ルール)ってのがある
例えば
・マスターブランチは本番環境と同じ
・マスターブランチを作るにはリリースブランチを使う
って感じ。
プッシュやプル、マージとか
プル:リモートリポジトリからソースをダウンロード
プッシュ:リモートリポジトリにソースをアップロード
フェッチ:リモートリポジトリからソースの差分の履歴とかの確認
コミット:ローカルリポジトリに変更履歴を保存
マージ:変更の差分を合体
流れ
▼基本(初回)
1.リモートリポジトリからソースをダウンロード→プル
2.ローカルリポジトリでソースをゴニョゴニョ
3.修正した内容(履歴)を保存(確定?)→コミット
4.修正した内容(ソース)をリモートリポジトリにアップロード→プッシュ
▼2回目以降
5.リモートリポジトリからソースの変更が無いか確認→フェッチ
6.変更されたソースをダウンロード→プル
▼ローカルリポジトリのソースとリモートリポジトリのソースの修正箇所が被っている(コンフリクト)
7.ソースの合体→マージ
初回のソースをダウンロードするトコについて
・「アプリ:Sourcetree」で作成(「Clone」とか)