Git / Github / Sourcetreeについて

よく出てくる単語とかのメモ

作成日: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」とか)