随時更新します。
◎ Git
☆Gitとは、ファイル増えることで、ファイルの区別が困難になったり、複数作業者による衝突を防ぐために、存在するバージョン管理システム(特に分散バージョン管理システム)の一種のことです。
バージョン管理システムの話題になると、だいたい「Git」か「SVN」が主役なんります。
未だに、最前線で活躍するエンジニアが、ファイル名でバージョン管理をしているのをよく見ます。
いますぐ、バージョン管理システムを使うように、説得してみましょう(☝︎ ՞ਊ ՞)☝︎
以下の記事を参考にさせて頂きました。ありがとうございました。
ようこそ、サル先生のGit入門へ。Gitをつかってバージョン管理ができるようになるために一緒に勉強していきましょう!…
◎ 覚えておくべきこと
Gitを使用するにあたり、覚えておくべきことがいくつかあります、Gitを使用していくうちに慣れるものなので心配はありません。
主に以下の つは基本的な概念です。
- リポジトリ
- コミット
- ワークツリー
- インデックス
◎ リポジトリ
☆リポジトリとは、ファイルやディレクトリの状態を記録する場所のことです。
変更履歴を管理したいディレクトリを管理下におくことで、ファイルやディレクトリの状態を記録することが出来ます。
Gitのリポジトリは以下の2つに分けることが出来ます。
- ローカルリポジトリ
- リモートリポジトリ
基本的には、リモートリポジトリから個人の手元もマシンにダウンロードをし、個人がローカルリポジトリで、修正やら追加の作業を行い、作業が完了次第、リモートリポジトリにアップロードします。
○ ローカルリポジトリ
個人が手元のマシンで、使用するためにリポジトリです。
ローカルリポジトリを作成する方法には以下の2つがあります。
- 新しいリポジトリの作成
- リポジトリのコピー
・新しいリポジトリの作成
・リポジトリのコピー
○ リモートリポジトリ
サーバーを用意して、複数人で共有するためのリポジトリです。
◎ Commit
☆Commitとは、ファイルやディレクトリの状態をリポジトリに記録するために、行う操作のことです。
コミットを行うことで、前回コミット時からの差分を記録したコミット(=リビジョン)が作成されます。
コミットには、コミットの情報から重複のない名前が付けられ、この名前を指定することで、リポジトリの中からコミットを指定することができます。
また、コミットをする際には、コミットメッセージが必須となります。
◎ Worktree
☆Worktreeとは、Gitの管理下に置かれた、実際に作業をしているディレクトリのことです。
◎ Index
☆Indexとは、リポジトリにコミットする準備をするための場所のことです。
コミットした際の、記録は直接リポジトリにいくのではなく、インデックスに設定された状態を記録するようになっています。
インデックがあることによって、ワークツリーにある不要なファイルを気にせず特定の変更内容をリポジトリに記録することが出来ます。
◎ Push
☆Pushとは、ローカルリポジトリで作業が完了し、リモートリポジトリでその変更履歴を共有するために、行う操作のことです。
Pushを実行すると、リモートリポジトリに変更履歴がアップロードされ、ローカルリポジトリと同じ状態になります。
◎ Clone
☆Cloneとは、自分以外の変更履歴があったリモートリポジトリをローカルリポジトリに複製する操作のことです。
Cloneを実行すると、リモートリポジトリの状態をまるっとローカルリポジトリに複製することが出来ます。
◎ Pull
☆Pullとは、ローカルリポジトリの状態をリモートリポジトリの最新状態にするための操作のことです。
Pullを実行すると、リモートリポジトリの最新状態を、ダウンロードしてローカルリポジトリを更新します。
◎ Branch
☆Branchとは、履歴を分岐しながら記録するための操作のことです。
これは、複数人で機能追加やバグ修正を行うときや、複数のリリースバージョンが存在する時に大いに大活躍します。
同一リポジトリ内で複数の変更を同時に進めていくことができます。
また、分岐したBranchをマージさせる事も可能です。
自分がすべきことを行い最終的にマージすることによって、問題が発生した場合に原因を見つけることが容易になります。
○ MasterBranch
☆MasterBranchとは、リポジトリに最初にコミットした時に、作成されるBranchのことです
○ 統合Branch
☆統合branchとは、release版として作成可能なbranchのことです。
普通はMasterBranchを統合branchとして使用します。
○ TopicBranch
☆TopicBranchとは、機能追加やバグ修正といった特定の課題に関する作業を行うために作成するBranchのことです。