GNU/Linux >> Linux の 問題 >  >> Linux

方法:Gitの使用の概要

はじめに

Gitはバージョン管理システムです。これにより、以前のすべてのバージョンの記録を自動的に保持しながら、多くのファイルを維持、変更、バックアップ、および共有できます。これらのファイルタイプには、コードファイル、ドキュメント、契約、HTMLおよびCSSファイルなどが含まれますが、これらに限定されません。テキストベースのものはすべてGitで使用できます。

Gitを使用する理由

以前のバージョンが手元にあることを願うためだけに、プログラム、Webサイト、またはドキュメントを更新したことがありますか?たぶんあなたの変更はプログラムやウェブサイトを壊したかもしれません、たぶんあなたはいくつかのバイアル情報を切り取って貼り付けました。いずれにせよ、変更のタイムラインは時間と労力を節約します。これはまさにGitプロトコルが構築された目的です。

さらに、Gitは、ファイルを保存(「コミット」)するとき、またはシステムに変更するときに、任意のファイルの自動バックアップを作成するように設定できます。また、高速で軽量なシステムです。Gitプロトコルは、各ファイルに加えた変更のみを保存し、各ファイルを個別に保存することはありません。

最後に、Gitは、コードを操作する際の業界標準です。複数のユーザーが競合することなく同じファイルにアクセスして編集したり、プロジェクトのローカルコピー(「クローン」)をユーザーのコンピューターに持ってきたり、元のファイル(「ブランチ」)に影響を与えないテスト目的で新しいコピーを作成したりできます。 )、またはシングルクリックまたはコマンドで編集するために、自分または他の人のプログラムのまったく新しいバージョン(「フォーク」)を作成します。ブランチの変更を元に戻す(「マージ」)こともできます。

Gitクライアントのインストール

さて、Gitを使い始めるには、いくつかのソフトウェアをインストールする必要があります。世の中には多くのクライアントがいますが、主要なオペレーティングシステムごとに1つに焦点を当てます。

Windowsのインストール:

http://msysgit.github.io/にアクセスし、[ダウンロード]をクリックしてプログラムをインストールします。

WindowsGitクライアントのダウンロードページ

Mac OSXのインストール:

SourceForgeはMaxOSXインストーラーをホストしています。 OSXのバージョンと一致するバージョンをクリックしてダウンロードし、プログラムをインストールします。

MacOSXGitクライアントのダウンロードページ

Linuxのインストール:

Debian / Ubuntuの場合:

sudo apt-get install git

CentOS / RedHat / Fedoraの場合:

sudo yum install git

その他のLinuxまたはUnixディストリビューションについては、ここでパッケージのインストールオプションを確認してください。

Gitについて

コマンドに入る前に、Gitで使用される主要な機能と用語のいくつかを確認する必要があります。

リポジトリ :特定のプロジェクトのすべてのファイルが保存されているメインデータベース。
インデックス (ステージング領域):リポジトリにコミットするファイル変更の一時的な保持スペース。
HEAD :変更がコミットされる現在のブランチを指します。

注:HEADは、gitシステム内のコマンドおよびポインターです。これは、編集する現在のブランチをシステムに示すマーカーである「ヘッド」の境界を定めるために使用されます。

ブロブ :Git内のファイルの名前。
タグ :ドキュメントまたはコードのバージョン番号を識別するメモ。
メッセージ :コミットで行われた変更の説明(ファイルの更新またはタグ)
履歴 :ブランチまたはリポジトリに対して行われたすべてのコミットの記録。

Gitの使用

上でインストールしたGitbashプログラムを開きます:

WindowsでのGitbash

デフォルトのフォルダ以外のものを使用してリポジトリを保存する場合は、新しいフォルダを作成してから、Gitクライアントを正しいフォルダに移動します。

フォルダに移動する例:

(Windows)

cd C:/Users/username/foldername/

(Linux / Mac)

cd /Users/username/foldername

username はコンピュータ上のユーザー名であり、 foldername 作成したフォルダの名前です。

Gitリポジトリの作成

開始する1つの方法は、新しいリポジトリを作成することです。

新しいリポジトリを作成するには、次のコマンドを入力します。

git init

Gitリポジトリのクローン作成

開始する別の方法は、別の既存のリポジトリのクローンを作成することです。 GitHub(Gitを使用してプロジェクトを保存および共有するための一般的なサイト、以下でさらに説明します)から既存のリポジトリのクローンを作成するには、次のコマンドを入力します。

git clone git://github.com/repositoryname

(アクセスできる)別のオンラインリポジトリのクローンを作成するには、次のコマンドを入力します。

git clone [email protected]:/path/to/repository.git

Gitリポジトリのコミット

変更を加えてリポジトリに追加したい場合は、次の短いプロセスに従います。

  1. コミットするファイルをインデックス(ステージング領域)に配置します
  2. ローカルリポジトリにコミットする
  3. 変更をリモートリポジトリにプッシュします(リモートリポジトリを使用している場合)。

インデックス

更新する前に、各ラウンドでコミットするファイルをインデックス(またはステージングエリア)に配置する必要があります。 Gitクライアントは、そこに配置されているファイルのみを更新します。インデックスにファイルを配置するには、次のコマンドを入力します。

git add filename

注:ファイル名の代わりにピリオド(。)を使用して、ディレクトリ内の現在のすべてのファイルを追加できます。

git add .

コミット

追加したファイルをローカルリポジトリにコミットするには、次のコマンドを入力します。

git commit -m "message"

message コミットの変更の説明です。引用符を必ず含めてください。

ヒント:

ここにいる間に、コミットとメッセージに触れましょう。上記の例で、すべてのファイルをコミットに追加しました。ただし、Gitを使用する場合のベストプラクティスは、毎回関連する一連の変更のみをコミットすることです。コミットは、短いメッセージで説明できる小さな個別のチャンクである必要があります。これがバージョン管理(Gitが存在する理由)を便利にする理由です。小さな変更が問題を引き起こしたり、後で不要であることが判明したり、他の変更と競合している場合は、元に戻すことができます。無関係な変更の大きなブロックをコミットすると、問題やバグが発生した場合に、その原因を特定することが困難になります。経験則として、コミットを説明するのに1、2文以上かかる場合は、より小さな部分をコミットする必要があります。

プッシュ

変更がコミットされたので、それらをリモートリポジトリにプッシュできます(リモートリポジトリを使用している場合):

git push origin master

リモートリポジトリにプッシュすると、他のユーザーがあなたが行った変更にアクセスして変更できるようになります。

Gitブランチの作成、使用、マージ

ブランチについて簡単に説明しましたが、確認してみましょう。

ブランチは、コンテンツまたはプログラムの別の考え方です。たとえば、ウェブサイトの新しいカラーパレットを検討する場合は、マスターに影響を与えることなく、ウェブサイトの1つ以上のブランチを作成し、さまざまなカラーパレットの概念をテストできます。新しいオレンジのテーマに落ち着いたら、「オレンジ」のブランチをマスターにマージして、古いパレットを置き換えることができます。これがどのように機能するか見てみましょう。

オレンジ色のカラーパレットを収容する新しいブランチを作成するには、次のように入力します。

git checkout -b orange

チェックアウト ブランチを切り替えるGitコマンドです。 -b オプションは、それに続く名前(この場合は「オレンジ」)で新しいブランチを作成します。

注:新しいブランチを作成する前に、エディターで行った作業をすべて保存して、ブランチが失われないようにしてください。

マスターブランチでの作業に戻る場合は、次のように入力します。

git checkout master

注:Gitでは、ブランチを切り替える前にすべての変更をコミットする必要があります。

この例では、その新しいカラーパレットを使用するため、新しいブランチを使用します。

マスターブランチと同じコマンドでブランチをコミットします。

git commit -a -m "branch demonstrating an orange palette"

-a flagは、追跡されたすべてのファイルを自動的に追加します。つまり、最後のコミットに含まれ、変更されたすべてのファイルを追加します。

オレンジ色のブランチをリモートリポジトリにプッシュする場合は、次を使用します:

git push origin orange

テストに満足していて、プライマリバージョン(マスターブランチ)に変更を含めたい場合は、マージすることをお勧めします。

まず、マスターブランチにチェックアウトします。

git checkout master

次に、mergeコマンドを使用して、マスターを「オレンジ」のブランチ情報で更新します。

git merge orange

マージ後もブランチは存在しますが、不要になります。 -dを使用して「オレンジ」ブランチを削除します オプション:

git branch -d orange

マージ時の競合

同じファイルを編集しているブランチが2つ以上ある場合、それらを連続してマージするときに競合が発生する可能性があります。 Webサイトの「テストレイアウト」ブランチと最近マスターにマージした「オレンジ」ブランチの間の競合の例は、次のようになります。

$ git merge orange
<<<<<<< HEAD:index.html
<div id="footer">contact : [email protected]</div>
=======
<div id="footer"> contact us at [email protected]</div>
>>>>>>> test-layout:index.html

競合領域で一致するように2つのファイルを変更してから、コマンドを実行してマージを完了する必要があります。

git add index.html

diff を利用すると、マージ前にいつでもブランチを比較できます。 コマンド。

git diff <one-branch> <another-branch>

Gitを使用したプルとフェッチ

変更をリモートリポジトリにプッシュする方法については説明しましたが、他のユーザーと協力していて、他のユーザーが行った変更にアクセスする必要がある場合はどうでしょうか。ここでpull コマンドが入ります。

プルすると、最後にクローンまたはプルした後にリモートリポジトリに加えられた変更が取得され、変更がローカルリポジトリにコピーされます。

git pull

変更を反映するためにローカルコピーを自動的に変更せずにリモート更新が必要な場合は、 fetchを使用します :

git fetch

その後、変更を確認し、更新をマスターにマージする機会があります。

フォークとGitHub

Gitを使用して学習するとき、「フォーク」または「フォーク」という用語に出くわします。フォークとは、他の誰かのリポジトリを自分のスペースに複製することです。そこで、他の人のリポジトリを中断することなく変更して独自のバージョンを作成できるため、独立したバージョンまたは「フォーク」を作成できます。

また、GitHubという名前に出くわします。 GitHubを使用すると、フォークが簡単になり、ボタンをクリックするだけで実行できます:

GitHubのフォークボタン

主にコラボレーションツールとして請求されるGitHubは、リポジトリをバックアップして共有したり、他の人のプロジェクトに貢献したりフォークしたりできるサービスです。 GitHubに似たサービスは他にもありますが、GitHubは依然として最も人気のあるオプションの1つです。

クライアントをダウンロードするか、詳細を確認するには、Githubにアクセスしてください。

その他のリソース

Gitの高度なオプションを学ぶための多くの情報源があります。最も徹底的な情報源の1つは、オンラインで入手できるProGitの本です。

そして、Gitの公式ドキュメントは常にあります。

GitHubは、ビデオレッスンのプレイリストも提供しています。

Atlantic.Net

Atlantic.netは、VPSホスティングと、ホスティングパッケージにビジネスに不可欠なマネージドサービスのレイヤーを含むマネージドホスティングサービスを提供します。詳細については、今すぐお問い合わせください。


Linux
  1. AWK を使用して 2 つのファイルをマージする方法は?

  2. コミット時にファイルサイズを制限するには?

  3. ddを使用してFFでファイルをパディングする方法は?

  1. コマンドを使用してPPKをPEMファイルに変換する方法

  2. パイプを使用してvimでファイルを開く方法

  3. rm を使わずにファイルを削除するには?

  1. Gitオートコンプリート?

  2. Linux で「split」コマンドを使用して iso またはファイルを分割する方法

  3. ファイル内で \n を grep する方法