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

Howto:GitとGithubとは何ですか?どのように使用し、なぜ気にする必要がありますか?

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を使用します。 。
例:git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git

init 現在のディレクトリで空のGitリポジトリを開始します。
例:git init /home/mycode
ステータス

リポジトリのステータスを表示します。

これは頻繁に行うため、リポジトリへの変更を追跡できます。
例:git status

追加

ファイルをステージング領域に追加して、変更をローカルで追跡できるようにします。

指定したファイルの変更の追跡を開始するようにgitに指示します。これはブランチにコミットしないことに注意してください。ローカルのステージング領域にあります。例:

git add <filename>

複数のファイル/ディレクトリを追加するには、必要 かっこ シェルがワイルドカードを操作する前にgitがファイルのリストを取得するように、ワイルドカードを囲みます。この例では、現在のディレクトリ(現在のディレクトリを含む)の下にあるすべてのディレクトリにすべての.jpgファイルを追加します。

git add '*.jpg'

コミット

段階的な(追加された)変更をコミットします。

変更をコミットするということは、「これらすべての追加」を意味します。 完了しました。ステージング領域から取り出して、リポジトリにコミットします。」 。メッセージでコミットすることは必須です。メッセージには、コミットの目的を説明する必要があります。たとえば、猫のjpegをいくつか追加したと言うことができます。
git commit -m "info about this commit".

リモート

コミットをプッシュするリモートリポジトリを構成します。

ローカルでコミットした変更はすべてリモートリポジトリにアップロードできます。たとえば、Githubはリモートリポジトリです。リモートのgitサーバー接続を初期化するには、gitremoteを使用します。

例:git remote add origin https://github.com/YOUR-USERNAME/your-repository.git

  • 名前(またはハンドル )「origin」は、リモートプロジェクトリポジトリの参照として使用されます。好きな名前を付けることができますが、メインの名前は「オリジン」にするのが一般的です。
  • your-repository.git gitinitを実行するとファイルが作成されます。
プッシュ

コミットされた変更をリモートリポジトリにプッシュします。

リモートリポジトリを初期化したら、push:
git push -u origin masterを使用してコミットされた変更をプッシュできます。

  • 「origin」は、リモート接続に指定した名前です。
  • 「master」はmasterと呼ばれるブランチです(プライマリブランチ。これについては後ほど詳しく説明します)。
  • -uオプションは、指定したパラメーターを記憶するようにgitに指示するため、次回は「gitpush」と入力するだけで済みます。
プル

リモートリポジトリからの変更をローカルコピーとマージします。

ユーザー(またはあなた)がリポジトリにさらに変更をコミットしたら、プルリクエストを発行して、ローカルで行った変更をアップストリーム(リモート)リポジトリにマージします。

git pull origin master

diff

最後のコミット以降にリポジトリにどのような違いがあったかを示します。

変更が複数の人によってリモートリポジトリにコミットされると、ローカルに保存したものとリモートサーバーに保存したものに違いが生じます。違いはdiffsと呼ばれます。 プルを行うとき 、これにより、ローカルになります

最新のコミットとリモートリポジトリに存在するコミットの違いを表示するには、HEADポインタを使用できます。HEADは単なる位置インジケータであり、デフォルトでは最も多くのコミットを指します。最近のコミット。

git diff HEAD

出力には、変更されたファイルのコピーとリモートコピー(加算と減算)の違いが表示されます。

ステージング内のファイル間の違いを確認するには(追加 ed)エリアとPC上のローカルファイルについては、diff --stagedを使用してください

チェックアウト

前のコミットに戻すか、ブランチを切り替えます。

あなたがfile.txtをコミットしたが、それは良くないと判断し、以前のコミットされたバージョンに戻したい場合は、次のように戻します。

git checkout -- file.txt

  • —は、チェックアウト操作にこれ以上のオプションがないことを単に示しています。

ブランチを変更するには、ブランチ名を指定します(—を使用したり、元に戻すファイル名を指定したりするのではなく):

git checkout <branchname>

ブランチ

新しいコピー(ブランチ)を作成します。このコマンドは、現在のブランチも削除または一覧表示します。

「ブランチ」とは何かについて詳しくは、以下の用語を参照してください。次の例では、「newbranch」という新しいブランチを作成します。

git branch newbranch

次の例では、「 newbranch」を削除します。 ‘:

git branch -d newbranch

rm

現在のブランチとローカルディスクからファイルを削除します。

すべてのファイルを削除するには、 rmを使用します 追加するのと同じように:

git rm '*.txt'

  • コミットすることを忘れないでください rmを発行すると変更されます!
マージ

あるブランチを別のブランチにマージします。

実際の例として、 rmから続けます。 上記のコマンド例では、ブランチ newbranchからrm*.txtを実行したと仮定します。 。その変更をマスターにマージする場合 ブランチ、最初にマスターに切り替えます git checkout master を発行して分岐します 次に、mergeコマンドを使用して、newbranchからの違いを現在のブランチにマージします( master )。開発者のほとんどのチームは、1日の終わりにマスターブランチにマージする前に、別々のブランチでコードを処理します。

git merge newbranch

リセット

段階的な変更を元に戻します(削除します)。

たとえば、git add file.txtを実行した後、コミットする前に、file.txtをコミットしないことを決定した場合は、resetコマンド(例:git reset)を発行します。 file.txt

ログ

コミットされたすべての変更のジャーナルを表示します。

例:git log

用語

理解する必要のある用語は次のとおりです。

    • プルリクエスト–チームがコードの変更に取り組んでいる場合、プルリクエストは、新しい変更をマージするようにリポジトリのメンテナに通知するために使用されます。
    • ブランチ–ブランチは単に既存のリポジトリのコピーです。デフォルトでは、各リポジトリは「マスター」で始まります ' ブランチ。マスターはメインブランチの名前です。
      • マスターブランチは通常、作業ブランチではありません。すべての開発者がコードを完了(コミット)したときにブランチとして使用されることがよくあります。その後、1日の終わりに、他の作業部門からマージされます。
    • フォーク–フォークは誰かのリポジトリの複製コピーです。これにより、元のプロジェクト/リポジトリに影響を与えることなく、コードに必要な変更を加えることができます。これは、元のコードベースから新しいアプリケーションを作成するため、または開発者がプロ​​ジェクトへの変更を提案できるようにするためのスクラッチとして使用されます。
    • ステージング–ファイルが追加されたとき (git addを使用して)ステージングされている、またはステージングプロセスにあると言われます。変更をコミットすると、ステージングされなくなります。
      • ステージングは​​、リモートリポジトリではなく、ローカルマシンで保持されます。
      • 実際の例では、リモートリポジトリに多数のファイルがあるとします

関連項目

「gittutorial」と呼ばれる組み込みのマニュアルページは、Gitの使用法の詳細を説明する、よく書かれたチュートリアルです。表示するには、次のコマンドを入力します。

man 7 gittutorial

次のWebリンクを強くお勧めします:

      • インタラクティブチュートリアル(trygit)
      • 公式ウェブサイト
      • githubウェブサイト

Linux
  1. LinuxでのChownコマンドとは何ですか?その使用方法

  2. cURLコマンドとは何ですか?その使用方法は?

  3. Chrootの「刑務所」–それは何で、どのように使用するのですか?

  1. キャッシュとしてのRedis:その仕組みと使用理由

  2. いつ、なぜApt-get Updateを使用する必要がありますか?

  3. コンテンツキュレーションとは何ですか?どのように行う必要がありますか?

  1. chroot jailとは何ですか?その使用方法は?

  2. Linuxファイルコマンド:その機能と使用方法

  3. Bash で eval を避ける必要があるのはなぜですか? 代わりに何を使用する必要がありますか?