おすすめ記事

【バージョン管理】GitとGithub

Git?GitHub?ってなに??

自分の書いたコードを公開するツールだよ〜〜

企業では、その会社の中だけで公開し、バグやセキュリティ上の問題がないかを他の社員に見てもらい、レビューしてもらったりするよ〜〜

いつでも好きな時点に戻せて、各メンバーの修正を合体できるよ〜〜

Git とは  -> ファイルの変更履歴を記録できるバージョン管理を行うためのツールだよ〜〜

GitHubとは -> gitを使ったチーム開発をより便利にするwebサービスだよ〜〜

バージョン管理システムには、いくつか種類があるよ簡単にみて行こう!!



目次
  1. バージョン管理の種類
  2. GigHubの全体像
  3. バージョン管理で使われる用語
  4. 基本的な流れ
  5. リポジトリをローカルで新規作成してからリモートリポジトリにコミットする
  6. リポジトリをGitHubからクローンしてきてからローカルリポジトリにコミットしローカルリポジトリを登録する
  7. 自分以外のリポジトリをプルリクエストしてからマージされる
  8. リポジトリ内のファイルの削除や移動、リネーム
  9. バージョン管理対象から特定のファイルを除去する
  10. コミット履歴の確認
  11. ブランチの作成と確認と切り替え
  12. 過去のバージョンとの比較
  13. 指定したコミット時点のファイルを取り出す
  14. 別ブランチでの変更点をマージする
  15. タグの作成と削除する
  16. リモートリポジトリを追加する
  17. リモートブランチの確認とチェックアウトする
  18. ブランチやタグをプッシュする
  19. ブランチやタグのフェッチとプル
  20. プル・プッシュ時に発生した競合を解決する
  21. 作業ツリーへの変更を一時的に保存する
  22. リポジトリ内のファイルを整理する
  23. コマンド

バージョン管理の種類

バージョン管理方式 概要 管理ツール
集中型バージョン管理 サーバー上のリポジトリを複数のクライアントが操作して、バージョンを管理する CVS、
Subversion
分散型バージョン管理 サーバー上のリポジトリを複数のクライアントがローカル上に複製し、変更結果をリポジトリにマージする事で、バージョンを管理する Git MercurialGIthubの大まかな仕組み

GigHubの全体像

リモートリポジトリは複数あるわけではなくこれはイメージです

バージョン管理で使われる用語

リポジトリ

ファイルの内容やその変更履歴などを記録するデータベースのこと。

ファイル名.git がリポジトリの形

リモートリポジトリ

Github上の、データを保存している場所を指す

ローカルリポジトリ

Githubに送信するデータを登録しておく、自身のPC上の場所を指す

作業コピー/作業ツリー

作業コピー

バージョン管理システムで管理されているファイルのこと。

 バージョン管理システムで管理しているファイルの実態はリポジトリ内にあり、ファイルシステムは上のファイルはあくまでその一時的なコピーである考えから作業コピーと言います。

作業ツリー

作業コピーなどが格納されているディレクトリのこと

ブランチ

履歴の流れを分岐して記録していくためのもの。

分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができる

Masterブランチから、作業ブランチを作って移動してから作業することをブランチを切ると言う

コミットとコミットID

コミット=リビジョン

作業コピーに対してファイルの追加・削除・編集を行なった後に変更履歴を記録すること。

インデックス
これから登録するファイルが、以前とどう変わったかを登録する一次的な保管場所。

GitHubにデータを送信する前に一時的にローカル環境にデータを登録し,その後一気にGitHub上に送信します.
そのローカル環境にデータを登録することをコミットといいます.

コミットID

それぞれのコミットを識別するためのIDのこと。

タグ

GitではコミットIDに対して、わかりやすい別名をつけることができて、その別名のこと。

チェックアウト

ローカルリポジトリに記録されている、特定のコミット時のファイルを取り出す作業のこと。

HEAD

今チェックアウトされているコミットを指す時の呼びかた。これは今自分がどのコミットで作業しているかを意味する。HEADは常にコミットを指している。ツリーに変化をもたらすほとんどのgitコマンドは、このHEADを動かすことからその動作を始める。

ブランチ

コミットは時系列に沿って管理され、コミット日時が最近のものほど新しいものとして扱われる。

マージと競合(コンフリクト)

マージ

別の開発者が加えた変更点や別のブランチで加えた変更点をを取り込む作業のこと

競合(コンフリクト)

マージするとき同一の箇所に自分と他のユーザーが異なる変更を同時に加えている場合がある。その状況のこと。つまりマージ時に同じに場所に同時に別々の修正がなされたときに発生する

クローン

リモートリポジトリをコピーしてローカルリポジトリを作成する作業のこと

プッシュとプル

プッシュ

リモートリポジトリにローカルリポジトリの内容を送信すること。

プル

リモートリポジトリの内応をローカルリポジトリに取り込むこと。

フェッチ

リモートリポジトリから更新を取得

フォーク

他の人が公開しているリモートリポジトリを自分のアカウントにコピーする機能のこと



1 2 3 4 5