Gitとはどのようなものか、といったことをまとめています。
Gitは色々なところで使われているため、知っておくと良いのかもしれませんね(・ω・)ノ
専門用語が多いといったことも特徴の一つですね。
Gitは分散型のバージョン管理システムです。
分散型の他にはsubversionなどの集中型バージョン管理システムがあります。
バージョン管理システムでは、いつ誰が何をどうしたかといった変更履歴を管理することができます。そのため、Gitを使用することでディレクトリやファイルなどの変更履歴を管理することができるようになります。
分散型と集中型、どちらもバージョン管理システムですが、リポジトリの持ち方に違いがあります。
集中型のバージョン管理システムでは、変更履歴などを単一のリモートリポジトリで管理しているため、過去の変更履歴を表示したりする際にリモートリポジトリへの接続が必要となります。
分散型のバージョン管理システムでは、各ユーザーのローカル環境にリモートリポジトリの複製を作成するため、過去の変更履歴を表示したりする際にリモートリポジトリへ接続する必要がありません。リモートリポジトリへアクセスするタイミングは更新履歴を他のリポジトリへ反映するか、他のリポジトリから変更された更新履歴を取得する場合となります。また、それ以外の操作をローカル環境で行えるため場所を選ばずに作業を行うこともできます。
作業単位でのコミットが可能なため、何か間違いがあっても作業単位で戻す事ができます。
ローカル環境で自由にブランチを作成することができるため、ほかの開発者に影響を与えることなく機能を試すことができます。
他にもあると思いますが、学習中である為あまり理解できていません。。。集中型バージョン管理システムも利用してみるとより実感できそうな気がします。
初めは同じだと思っていました(・・;)
GitHubのことをGitと呼んでいるものかと・・・全く違いましたが(笑)
Gitはツールの名前、GitHubはWebサービスの名前。
GitHubは「Gitを利用した、開発者を支援するWebサービス」のことで、クラウド上でGitを用いたバージョン管理ができます。その他にBitbucketなどがあります。
分散型バージョン管理システムではローカル環境にあるリポジトリと他の人と共有するネットワーク上にあるリポジトリがあり、前者はローカルリポジトリ、後者はリモートリポジトリと呼ばれています。
リモートリポジトリは一ヶ所にのみ存在し、ローカルリポジトリは各マシン上に存在しています。ローカルリポジトリとは、リモートリポジトリの完全な複製でもあります。
Gitについては何となく理解したけど、実際どのように使うのか?
僕が理解している範囲で記載していこうと思います。
やっぱり実際に使ってみないとよくわかりませんよね(・ω・')
リポジトリのクローン(Clone)
ローカル環境にリモートリポジトリの情報をコピーします。
リモートリポジトリをクローンすることで、リモートリポジトリが持っている変更履歴の情報をコピーできます。
変更のステージング(Add)
ワークツリーからファイルなどの変更を禁止目録インデックスへ登録します。
Gitで管理しているフォルダにファイルを追加したり、ファイルの内容を変更した場合に、ローカルリポジトリに対してどのファイルを追加・変更したかを知らせます。
内容を確定(Commit)
ステージングされた情報を元にリモートリポジトリに対して変更を通知するための準備を行います。
情報の取得(Fetch)
ローカル環境で開発している間に、他の開発者が何か変更をしているかもしれない為、リモートリポジトリから最新の変更履歴情報を取得します。
取得した情報は、ローカル環境内で持っているリモートリポジトリの情報に更新されます。
情報をまとめる(Merge)
開発が完了したブランチを別のブランチに併合します。
バグの修正や新規機能の追加をする際に、メインとなるブランチとは別にブランチを作成し、作成したブランチでの開発が問題なく完了した際にメインのブランチに併合する。といったようなことを行います。
変更の通知(Push)
Commitした情報を元に、リモートリポジトリに変更の通知を行います。
変更を行った部分が既に他の開発者によって変更されていた場合、コンフリクトとなり、変更が重なった部分を修正することが必要になります。
ブランチは、管理している履歴の流れを分岐する機能です。
例えば、ある時点のブランチAから新機能追加を行うためのブランチB、バグ修正を行うためのブランチCを作成することで、ブランチAからブランチBを管理する履歴とブランチCを管理する履歴に分岐させることができます。
このようにブランチを分けることで、ブランチAに影響を与えず新機能追加とバグの修正をそれぞれ行えるようになります。
そして、それぞれのブランチでの作業が完了したら、マージを行いブランチを1つにまとめます。
また、完了して不要となったブランチは削除しておくことで、履歴を見やすい状態に保てます。
コメントはありません。