Gitは、プログラマー間の調整を容易にすることにより、Linuxカーネルの開発を簡素化するツールとして2005年に開発された分散バージョン管理ソフトウェアです。今日、Gitは世界で最も人気のあるバージョン管理ソフトウェアの1つになりました。
Gitはコマンドラインインターフェイスから使用でき、任意のデータセットの変更を追跡できます。 Gitソフトウェアの利点は、その高速性、データの整合性、ワークフローのサポートです。 Gitを使用すると、任意のデバイスに配置されたすべてのデータフォルダーが、すべての変更を追跡できる履歴と可能性を備えた実際の「リポジトリ」になります。
このガイドでは、主にUbuntu 18.04を参照して、主要なLinuxディストリビューションにGitをインストールして使用する方法について説明します。
まず、SSH接続を介してサーバーに接続します。まだ行っていない場合は、SSHプロトコルで安全に接続するために、ガイドに従うことをお勧めします。ローカルサーバーの場合は、次の手順に進み、サーバーのターミナルを開きます。
配布リポジトリを更新し、apt-getを介してGitのインストールを開始します:
$ apt-get update && apt-get install git
手順が完了すると、Gitがインストールされます。インストールが成功したこととソフトウェアのバージョンを確認するには、「-version」引数を使用します。
$ git –version
最後に、「Git」の使用を開始するには、作成する各パッケージに関連付けられるユーザー情報(名前とメールアドレス)を構成します。
$ git config --global user.name "Name Surname"
$ git config --global user.email "[email protected]"
今後、このガイドでは、ソフトウェアのさまざまな機能の説明に焦点を当て、各コマンドの構文を報告します。これらのさまざまな機能はUbuntuでテストされていますが、他のLinuxディストリビューションでも有効です。
Gitの主な目的は、特定のプロジェクトの複数のワークフロー間のコラボレーションを促進することです。したがって、最初に行うことは、ワークスペースを初期化するか、空のローカル「リポジトリ」を作成するか、リモートで取得することです。
最初のケースでは、新しい「リポジトリ」を作成または再初期化するには、「init」コマンドを使用します。
$ git init
このコマンドは、「リポジトリ」に必要なすべてのファイルを含む「.git」フォルダを作成します。フォルダには、追跡するプロジェクトを構成するすべてのファイルが含まれます。すべての新しいファイルは最初は追跡されません。つまり、追跡されません。これは、スナップショットのロード時にそれらが考慮されないことを意味します。
ファイルの追跡を開始する場合は、「add」コマンドに続いて「commit」を使用するか、何を含めるかを簡単に示します。 :
$ git add <FilePath/FileName>
$ git commit -m ‘<Description>’
図1では、新しい「リポジトリ」の初期化と「FileTestA」ファイルのインクルードの例、および、。操作の成功を報告する端末からの出力が表示されます。
ただし、既存の「リポジトリ」に貢献したい場合は、「クローン」コマンドを使用します。このコマンドを使用すると、Gitは指定されたサーバーに存在するすべてのプロジェクトファイルバージョンのコピーを受け取ります。
$ git clone <URL> <Destination_Folder>
URLに関しては、Gitが「リポジトリ」をダウンロードするために使用できる複数の転送プロトコルがあります:
・Gitプロトコル(git://);
HTTPプロトコル(http://またはhttps://);
SSHプロトコル(ssh://);
ユーザーとサーバー(ユーザー名@サーバー:/path.git)。
ブック内の各ファイルのステータスは、「未追跡」、「追跡済み」、「未変更」、「変更済み」になります。前の段落で示したように、「追跡されていない」ステータスのファイルは、スナップショットに存在しない作業ディレクトリ内のすべてのファイルです(新しい「リポジトリ」を作成する場合)。
既存の「リポジトリ」のクローンを作成する場合'一方、ダウンロードされたすべてのファイルの基本的なステータスは「追跡」されます。したがって、これらのファイルは、ダウンロード後に編集されていない場合は「変更されていない」場合もあれば、最後のコミット以降に変更されている場合は「変更されている」場合もあります。
ファイルのステータスを確認するには、「status」コマンドを使用します。
$ git status
次の画像は、新しいプロジェクトが初期化され、ファイルが追加され、最初のコミットが作成されたターミナルのスクリーンショットを示しています。 「status」コマンドを使用することにより、端末は更新する変更されたファイルがないことを指定します。緑の線以降、ファイルを変更した後、「status」コマンドが再度実行されます。
新しく変更されたファイルは、「変更はコミット用にステージングされていません」という見出しの下に表示されます。これは、追跡されたファイルがワークブックで変更されたが、まだステージ上にないことを意味します。
したがって、2つの異なる方法で進めることが可能になります。
-
ステージでファイルを更新します(追跡手順を繰り返す、つまり「git add」コマンドを実行する必要があります)。
-
変更を破棄します(「gitcheckout
を使用)。
「gitadd」コマンドを実行し、「git status」を繰り返してステータスを評価することで、編集したばかりのファイルをステージングしたいとします。
ファイルは変更されますが、コミットの準備ができています(図3の緑色の長方形)。コミットの前に、ファイルにさらに変更が加えられ、そのステータスがチェックされると、両方が「コミット準備完了」ファイルとして、およびまだステージ上にないファイルとして示されます(図3の赤い長方形)。
これは、ステージ上のファイルが変更されていないファイル(「commit」コマンドが実行された場合にコミットされるファイル)であるのに対し、外部ファイルは変更されたばかりのファイルであるために発生します。このさらなる変更をコミットするには、もう一度追加します(図3の青い長方形)。
「ログ」ファイルなど、特定のファイルを自動的に追加したくない場合は、除外するファイルのリストを含む「.gitignore」ファイルを作成します。
特定の種類のパターンを自動的に含めるには、無視する個々のファイルをすべてリストするのではなく、すべてのフォルダーを含め、特殊文字を使用します。パターンのルールは次のとおりです。
- 空白行または「#」で始まる行は自動的に無視されます。
- スラッシュ「/」は、サブフォルダーを示すために使用できます。
- 「!」を使用しますパターンを拒否するキャラクター;
- グロブパターンを使用できます。
グロブパターンは、文字列のセットを表すために使用される構文です。最も一般的なものは次のとおりです。
- 任意の文字列を示すアスタリスク(*)(特定の拡張子のすべてのファイルをマークするためによく使用されます)。
- 任意の文字を示す疑問符(?)と、一連の文字または数字を指定するための角かっこ([…])。
ファイルがステージに配置されたら(「gitadd」コマンドを使用)、変更をコミットします。コミットは、ステージ領域に保存されたスナップショットを記録するために使用されます。
ステージに配置されていないものはすべてコミットに含まれませんが、もちろんローカルフォルダーに変更されたままになります。
コミットする最も簡単な方法は、次のコマンドを使用することです。
$ git commit
そうすることで、最初の行が空白の「git」ステータスコマンドの最後の出力を表示するテキストエディタが開きます。ここで、コミットメッセージを入力して、次のようにすることができます。行っている変更を適切に示してください。
これで、最初のコミットが作成されました。ガイドを締めくくる前に、ファイルをさらに削除または変更するための手順を示します。
Gitファイルを削除するには、追跡されたファイルからファイルを削除するだけでなく、コミットをもう一度繰り返して変更を保存します。実際、フォルダからファイルを削除するだけで、結果のファイルはステージ上にないファイルとして表示されます。
コマンド「gitrm」に続けてファイルのパスと名前を使用すると、ファイルの削除が段階的に行われ、次のコミット後に完全に消えます。
$ git rm <File>
ファイルを既に変更してインデックスに追加している場合は、「-f」オプションを追加してファイルを強制的に削除できます。
$ git rm -f <File>
ただし、ステージに誤って挿入されたファイルをディスクに保持したまま削除したい場合は、「-cached」オプションを使用できます。
$ git rm --cached <File>
もう1つ、ファイルを移動したり、名前を変更したりすることができます。 Gitはファイルの移動を明示的に追跡しないため、これは自動操作ではありません。つまり、「名前の変更」オプションを追跡するためのメタデータは生成されません。
この操作は、最初に名前を変更し、Gitから「前の」ファイル(git rm)を削除してから、「新しい」(git add)を追加することにより、既知のコマンドで実行できます。
名前の変更/移動ごとにこの一連のコマンドを実行しないようにするために、Gitには独自のコマンド「gitmv」があります。これは、上記の3つと同じ結果を同時に提供します。
$ git mv <OldPath/OldName> <NewPath/NewName>
このコマンドは、次の3つとまったく同じ結果を提供します。
$ mv <OldPath/OldName> <NewPath/NewName>
$ git rm <OldPath/OldName>
$ git add <NewPath/NewName>
そうすることで、ファイルの名前が変更されたり、移動されたりして、すでにステージ上にあり、コミットする準備ができています。操作が成功したことを確認するには、「gitstatus」コマンドを実行して次のセクションを解放します。コミットする変更のリストで「名前が変更されました」。名前またはパスが変更されたすべてのファイルが一覧表示されます。ファイルごとに、前の名前と現在の名前/パスの両方を指定します。