Gitは、2005年にLinus Torvaldsによって作成されました。元々は、寄稿者がLinuxカーネルにコードをアップロードできるようにするためのバージョン管理ソフトウェアとして作成されました。 Gitはバージョン管理システムです。 SCM(ソース管理)システムと呼ばれることもあります。
それ以来、その使用はLinuxエコシステムをはるかに超えており、世界中の何百万ものソフトウェア開発者によって使用されています(すべてのソフトウェア開発者の42.9%が他のバージョン管理システムよりも使用しています)。ソフトウェア開発者だけでなく、構成ファイルやWebサイトなどを共有または保存したい通常のジョーもいます。 Gitを使用すると、保存できる場所を確保できます(さらに重要なのは、コラボレーション、つまりマージ )そのコンテンツ。
素人の言葉で言えば、それは正確に何をするのですか?
Gitを使用する主な理由は次の2つです。
- コラボレーション :いくつかのファイルで共同作業をしたい場合–たとえば、開発者が1行のコードを書き込み、別の開発者が2行のコードを書き込みます。これを「gitserver」に「マージ」して、1つのファイルにすることができます。
- バージョン管理/追跡 :他の寄稿者が行った変更を追跡できるようにする必要があります。追跡機能を使用すると、元に戻す必要のある間違いがあるかどうかを確認できます。
もう1つの理由は、何らかの方法でアプリケーション開発を伴う仕事をしている場合(たとえば、コーダーである場合、構成管理データのリビジョンを作成する必要があるシステム管理者である場合、または開発者コードをクローン化する場合など)です。 )– Gitの使用は、最近一般的に受け入れられているバージョン管理システムです。使い方がわからないと、キャリアに不利になる可能性があります。
Git vs Github
Gitサーバー 任意のLinuxサーバーにインストールできます。通常、アクセスするにはgit clientを使用する必要があります 、これはコマンドラインツールです。詳細については、以下のセクションをご覧ください。
Githubは、インターネットを介してプロジェクトに取り組むために広く使用されているWebベースのパブリックGitサービスです。それはLinusTorvaldsやgitプロジェクトの人々とは提携しておらず、gitサーバーのWebベースの適応です。 gitのすべての主要コンポーネントを活用し、Webインターフェイスを介してさらに拡張性を提供します。 githubの主な利点は、通常のgitクライアントを介して接続できるパブリックgitリポジトリであるということです。 Githubはプライベートリポジトリサービスも提供していますが、これらは有料です。
Atlassian Bitbucketなど、gitのサービスの一部またはすべてを実装する他の商用製品も利用できます。
重要な用語とコマンド
git clientコマンドはターミナルで入力され、いくつかのオプションがあります。 gitはおそらくLinuxマシンにすでにインストールされていることがわかります。そうでない場合は、apt-getまたはyumのインストールのみであると予想するのは間違いありません。
それらの中で最も適切なものを以下に示します。 チートシートとして役立つので、これを手元に置いてください Gitを使い始めるとき:
コマンド | 説明 |
クローン | gitリポジトリのコピーを作成します。 たとえば、github / gitサイト(リポジトリ)からダウンロードする場合は常に、 cloneを使用します。 。 |
init | 現在のディレクトリで空のGitリポジトリを開始します。 例: git init /home/mycode |
ステータス | リポジトリのステータスを表示します。 これは頻繁に行うため、リポジトリへの変更を追跡できます。 |
追加 | ファイルをステージング領域に追加して、変更をローカルで追跡できるようにします。 指定したファイルの変更の追跡を開始するようにgitに指示します。これはブランチにコミットしないことに注意してください。ローカルのステージング領域にあります。例: 複数のファイル/ディレクトリを追加するには、必要 かっこ シェルがワイルドカードを操作する前にgitがファイルのリストを取得するように、ワイルドカードを囲みます。この例では、現在のディレクトリ(現在のディレクトリを含む)の下にあるすべてのディレクトリにすべての.jpgファイルを追加します。 |
コミット | 段階的な(追加された)変更をコミットします。 変更をコミットするということは、「これらすべての追加」を意味します。 完了しました。ステージング領域から取り出して、リポジトリにコミットします。」 。メッセージでコミットすることは必須です。メッセージには、コミットの目的を説明する必要があります。たとえば、猫のjpegをいくつか追加したと言うことができます。 |
リモート | コミットをプッシュするリモートリポジトリを構成します。 ローカルでコミットした変更はすべてリモートリポジトリにアップロードできます。たとえば、Githubはリモートリポジトリです。リモートのgitサーバー接続を初期化するには、gitremoteを使用します。 例:
|
プッシュ | コミットされた変更をリモートリポジトリにプッシュします。 リモートリポジトリを初期化したら、push:
|
プル | リモートリポジトリからの変更をローカルコピーとマージします。 ユーザー(またはあなた)がリポジトリにさらに変更をコミットしたら、プルリクエストを発行して、ローカルで行った変更をアップストリーム(リモート)リポジトリにマージします。 |
diff | 最後のコミット以降にリポジトリにどのような違いがあったかを示します。 変更が複数の人によってリモートリポジトリにコミットされると、ローカルに保存したものとリモートサーバーに保存したものに違いが生じます。違いはdiffsと呼ばれます。 。 プルを行うとき 、これにより、ローカルになります 最新のコミットとリモートリポジトリに存在するコミットの違いを表示するには、HEADポインタを使用できます。HEADは単なる位置インジケータであり、デフォルトでは最も多くのコミットを指します。最近のコミット。 出力には、変更されたファイルのコピーとリモートコピー(加算と減算)の違いが表示されます。 ステージング内のファイル間の違いを確認するには(追加 ed)エリアとPC上のローカルファイルについては、 |
チェックアウト | 前のコミットに戻すか、ブランチを切り替えます。 あなたがfile.txtをコミットしたが、それは良くないと判断し、以前のコミットされたバージョンに戻したい場合は、次のように戻します。
ブランチを変更するには、ブランチ名を指定します(—を使用したり、元に戻すファイル名を指定したりするのではなく): |
ブランチ | 新しいコピー(ブランチ)を作成します。このコマンドは、現在のブランチも削除または一覧表示します。 「ブランチ」とは何かについて詳しくは、以下の用語を参照してください。次の例では、「newbranch」という新しいブランチを作成します。 次の例では、「 newbranch」を削除します。 ‘: |
rm | 現在のブランチとローカルディスクからファイルを削除します。 すべてのファイルを削除するには、 rmを使用します 追加するのと同じように:
|
マージ | あるブランチを別のブランチにマージします。 実際の例として、 rmから続けます。 上記のコマンド例では、ブランチ newbranchからrm*.txtを実行したと仮定します。 。その変更をマスターにマージする場合 ブランチ、最初にマスターに切り替えます git checkout master 、を発行して分岐します 次に、mergeコマンドを使用して、newbranchからの違いを現在のブランチにマージします( master )。開発者のほとんどのチームは、1日の終わりにマスターブランチにマージする前に、別々のブランチでコードを処理します。 |
リセット | 段階的な変更を元に戻します(削除します)。 たとえば、git add file.txtを実行した後、コミットする前に、file.txtをコミットしないことを決定した場合は、resetコマンド(例:git reset)を発行します。 file.txt |
ログ | コミットされたすべての変更のジャーナルを表示します。 例:git log |
用語
理解する必要のある用語は次のとおりです。
- プルリクエスト–チームがコードの変更に取り組んでいる場合、プルリクエストは、新しい変更をマージするようにリポジトリのメンテナに通知するために使用されます。
- ブランチ–ブランチは単に既存のリポジトリのコピーです。デフォルトでは、各リポジトリは「マスター」で始まります ' ブランチ。マスターはメインブランチの名前です。
- マスターブランチは通常、作業ブランチではありません。すべての開発者がコードを完了(コミット)したときにブランチとして使用されることがよくあります。その後、1日の終わりに、他の作業部門からマージされます。
- フォーク–フォークは誰かのリポジトリの複製コピーです。これにより、元のプロジェクト/リポジトリに影響を与えることなく、コードに必要な変更を加えることができます。これは、元のコードベースから新しいアプリケーションを作成するため、または開発者がプロジェクトへの変更を提案できるようにするためのスクラッチとして使用されます。
- ステージング–ファイルが追加されたとき (git addを使用して)ステージングされている、またはステージングプロセスにあると言われます。変更をコミットすると、ステージングされなくなります。
- ステージングは、リモートリポジトリではなく、ローカルマシンで保持されます。
- 実際の例では、リモートリポジトリに多数のファイルがあるとします
関連項目
「gittutorial」と呼ばれる組み込みのマニュアルページは、Gitの使用法の詳細を説明する、よく書かれたチュートリアルです。表示するには、次のコマンドを入力します。
man 7 gittutorial
次のWebリンクを強くお勧めします:
- インタラクティブチュートリアル(trygit)
- 公式ウェブサイト
- githubウェブサイト