2018.03.20Gitは分散型のバージョン管理システムになります。GitはSubversionのような集中型のバージョン管理システムと異なり、ファイルのすべての変更履歴をそれぞれのマシンが持ちます。そのため、リポジトリを管理しているサーバーにアクセスできなくても、プロジェクトの履歴を確認することができます。cloneコマンドを用いたファイルのダウンロードについてスポンサーリンクGitのインストールLinuxの場合はパッケージ管理ツールを利用するのが簡単です。apt-getを利用する場合は以下のコマンドでインストールを行うことができます。16.04の場合、git-allをインストールする場合にgit-daemon-sysvinitをインストールする必要があるかもしれません。git-daemon-sysvinitまた、Windowsの場合はGitの公式サイトよりインストーラをダウンロードすることができます。Gitの初期設定Gitのコンフィグファイルについて、Linuxの場合、全てのユーザに対して、/etc/gitconfigで設定できます。<設定したい項目>で設定を行うことができます。<設定したい項目>で設定を行うことができます。<設定したい項目>で設定を行うことができます。ユーザ名とメールアドレスを設定Gitを使用する際の初期設定として、ユーザ名とメールアドレスを設定します。ユーザ名やメールアドレスは誰がリポジトリに書き込んだかの情報としてよく見る事になるでしょう。ここでは以下の設定を使用します。protected]'上の設定は、設定例としてのユーザ名と架空のメールアドレスを使用しています。実際に使用する場合は、自分のユーザ名とメールアドレスを設定してください。設定の内容を確認する場合は以下のコマンドが利用できます。protected]プロンプト文字を設定bashでは環境変数PS1を変更することでプロンプトの文字を変更することができます。Gitをインストールした場合、__git_ps1関数が設定されます。__git_ps1関数が読み込まれます。__git_ps1関数を用いてプロンプトの文字を設定するとGitを使用するときに現在のブランチを表示できます。これを設定すると以下のようにユーザ名、ホスト名、カレントディレクトリ名、現在のブランチが表示されます。'[master]$にし、Gitのリポジトリがあるディレクトリのときに、プロンプトの文字にブランチ名のみを表示します。ディレクトリにGitのリポジトリがない場合は、$の記号のみがプロンプトの文字として表示されます。Gitの簡単な操作Gitには多くのサブコマンドがあります。Gitの操作はサブコマンドを利用し操作できます。ここでは、Gitの簡単な操作としてリポジトリの作成、リポジトリのクローン、Gitでの簡単なファイル管理の方法を確認します。リポジトリの作成Gitでファイルを管理するにはリポジトリを作成しなければなりません。リポジトリを作成する方法は、大きく2つあります。1つ目は空のリポジトリを作成する方法です。2つ目は既存のリポジトリから複製して、ローカル環境にリポジトリをコピーする方法になります。initコマンドを利用することで空のリポジトリ(.gitディレクトリ)を作成することができます。.gitディレクトリにはGitで保存したファイルのデータの実体、ブランチや特定のバージョンへの参照等のメタ情報が管理されています。initの簡単な構文は以下のようになります。[directory]directoryを省略した場合、基本的にカレントディレクトリに.gitディレクトリを作成します。環境変数GIT_DIRが設定されている場合は環境変数GIT_DIRのパスのディレクトリを作成し、その中に.gitディレクトリを作成します。directoryを指定した場合、そのディレクトリを作成し、その中に.gitディレクトリを作成します。-A1.git.gitディレクトリの内容は以下のような内容になっています。directory.gitディレクトリの内容について簡単な解説を行うと、.git/hooksは特定の名前のファイルがあると、gitの特定の操作に対してそのファイルを実行するようなファイルが入ります。.git/HEADはGitでよく使うHEADの参照が記述されています。.git/configはGitでのリポジトリへの設定が記述されています。.git/objectsはGitで保存するファイルのデータの実体が入ります。.git/refsはリポジトリでのブランチやタグやリモートサーバ等の参照情報が入ります。.git/info/excludeはGit操作で無視したいファイルパターンを記述できます。.git/descriptionはGitWebを使用するときのリポジトリの説明を記述できます。manページを参照する場合、.gitディレクトリの内容についての情報はgitrepository-layout(5)にまとめられています。cloneコマンドを用いることで既存のリポジトリを複製し、ローカル環境に新しいディレクトリとしてリポジトリを作成することができます。既存のリポジトリが存在する場所は、リモート環境、ローカル環境のどちらでも指定できます。[directory]repositoryは既存のリポジトリの場所を指定します。リモート環境の場合は、https://example.com/repo.gitやgit://example.com/repo.gitのようなURLを指定できます。ローカル環境の場合は、ファイルパスまたはfile://のようなURLを指定できます。directoryは作成されるディレクトリの名前を指定できます。省略されている場合は、複製されるリポジトリからhttps://example.com/repo.gitならばrepoの部分が、/gitrepo/project_name/.gitならばproject_nameの部分が作成されるディレクトリの名前として使用されます。test空のリポジトリをコピーしたため、warningが表示されています。cloneを行うと以下のようにwarningは表示されません。statusコマンドはGitでのファイル管理の状態を確認することができます。track)のように表示されます。commitのような文字が表示されています。filesの場所にfile.txtが表示されます。これはGitがfile.txtは追跡していない(管理していない)という意味になります。addコマンドを用いることで、Gitはファイルを管理できます。file.txtGitでファイルを管理するのを始めたてのときは、管理に追加したいファイルが多くありますかもしれません。その場合は、.を用いて、カレントディレクトリを指定することでカレントディレクトリ内のサブディレクトリまで一気にファイルを追加することができます。addコマンドではファイルを追加した時点でのファイルのデータが一時的に保存されます。addコマンドをやり直さなければなりません。file3.txtしかし、まだリポジトリに保存されていません。データは一時的に保存がされている状態(ステージングエリアにある状態)で、リポジトリに保存するための前段階になります。ステージングエリアがあることでどのファイルから順番にリポジトリに保存するかを選択できます。リポジトリの歴史の管理方法によっては、どのように修正内容の見ていくかによって変わります。commitコマンドを用います。commitコマンドを用いるとエディタが開きます。エディタの変更は以下のようなコマンドで変更できます。ここではviに変更してます。viまた、環境変数GIT_EDITORを用いることで上の設定より優先して指定したエディタを用いることができます。Bashでは、環境変数の代入をコマンドの最初に付けることで、その環境変数を一時的に利用できます。commitコマンドを利用すると指定したエディタを開くことができます。commitコマンドでメッセージを書き、そのメッセージを保存して終了したら、リポジトリにファイルを保存できます。logコマンドで、リポジトリに保存した内容を確認できます。files.commitの右にあるアルファベットと数字の羅列はハッシュ値になり、gitは、このハッシュ値でファイルのデータやコミット情報などのオブジェクトを管理しています。logコマンドの--onelineオプションが便利になります。commitコマンドの-aオプションを用いることで、修正したファイルすべてを自動的にステージングエリアに登録してリポジトリに保存することができます。commitコマンドの-mオプションを用いると一行でのコメントを記述することができます。rmコマンドが利用できます。cloneコマンドはファイルをダウンロードするのにもよく利用されます。ファイルのみをダウンロードしたい場合は、--depthオプションを利用すると便利です。Gitは分散型のバージョン管理システムと呼ばれ、それは個々のマシンがバージョン管理のすべての歴史をコピーするためです。ファイルのダウンロードのみしたい場合はそのようなバージョン管理のすべての歴史はいらないので、--depthオプションでどこまでの歴史がほしいかを指定するとファイルのダウンロード時間を短縮できます。Coreutilsのソースコードのダウンロード時間を見てみます。0m4.072s最初は--depthオプションで1を指定して最新の歴史のみをダウンロードした場合で、ダウンロード時間は約8秒になりました。次は、--depthオプションを使用せずに全ての歴史をダウンロードした場合で、ダウンロード時間は約68秒になりました。cloneコマンドでファイルのみをダウンロードしたい場合は、--depthオプション使用して最新の歴史のみをダウンロードするとダウンロード時間を大幅に短縮できる可能性があるので覚えておくと役立ちます。LinuxコマンドのループLinuxでのfor(bash)の使い方です。便利ですが、多くの言語を使うとforの構文は良く混乱してします。bashのforは、リストを区切り文字によって分けてループする特徴もあります。ユーザIDやグループIDを表示するidコマンドは指定したユーザのユーザIDやグループIDを確認できます。ユーザが指定されていない場合はこのidコマンドを実行しているプロセスのユーザIDやグループIDを確認できます。環境変数を設定するexportコマンドはbashの組み込みコマンドで、環境変数を設定できるコマンドになります。環境変数は現在のシェルだけでなく、シェルで起動させるプログラム(子プロセス)に対して、影響を与えます。3つのファイルを比較・マージするdiff3コマンドは3つのファイルを比較するコマンドになります。一つのファイルを元に複数の人が作業したときにその作業内容の比較を行いたいときやその作業内容を一つのファイルにまとめたいときに利用できます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。Linuxコマンド.NET.。