GitHub入門チュートリアル-Gitの常識とクイックスタート

はじめに:
この記事を読む前に、GitとGitHubの概念はまだ非常にあいまいで、同じものだと思っていたかもしれませんが、実際には、2つは完全に異なるものではありません。 、GitHubのドアに足を踏み入れたい場合は、最初にGitの山を渡る必要があります。ここで著者は2人の比喩を大胆に作成します。Gitはトラックのようなもので、GitHubは倉庫であり、Gitのアイデンティティは各倉庫間のリンクとして機能することです。輸送もちろん、この類推はあまり適切ではなく、作者の文学的才能も非常に限られていますが、以下の説明とアプリケーションを読んだ後、GitとGitHubが何であるかをすぐに理解する必要があると思います。ここでは販売しません。今日のトピックを入力しましょう。

1.Gitの背景

  • Gitは、2005年にLinuxシステムの創設者であるLinus Torvaldsによって作成されました。当時、Gitは基本的な形式であり、Linuxカーネルの開発に使用された既存のバージョン管理システムの開発者ライセンスのため、本当の意味でGitと呼ぶことはできませんでした。変更が発生しました。新しいバージョン管理システムを置き換えるために、Linusは後で以前のバージョンに基づいてGitを開発しました。ご存知のように、Linuxカーネルの更新速度は世界でも類を見ないものです。したがって、強力で高性能なバージョン管理システムにより、開発速度が向上します。当時のオープンソース環境では、いくつかのバージョン管理ソフトウェアが開発されていましたが、機能や性能は十分ではありませんでした。また、GitはLinus Torvaldsによって個人的に開発されたものであり、機能性とパフォーマンスの点で申し分のないものと言えます。Gitを受け入れるプログラマーの意欲は、開発の恩恵を受けるために、この背景に大きく依存しています。

  • 実際、CSV(Concurrent Version System)、SVN(Subversion)など、多くのバージョン制御ツールが市場に出回っています。

  • では、Gitが表示される理由と、他のバージョン制御ツールとの違いは次のとおりです。

    まず、GitとSVNの最大の違いであるCSVは、Gitが分散され、後者の2つです。 1つはそうではなく、これが最も重要な違いです

    (2)Gitのコンテンツの整合性はSVNよりも優れています。GitのコンテンツストレージはSHA-1ハッシュアルゴリズムを使用します。これにより、コードコンテンツの整合性が確保され、ディスク障害やネットワークの問題が発生した場合のリポジトリへの損傷を減らすことができます。

    (3)GitブランチはSVNブランチとは異なります。ブランチはSVNに特化しておらず、実際にはリポジトリです。 Gitの別のディレクトリでは、ブランチはユーザーのことをほとんど認識していません。2つのブランチの間に接続がないことを完全に感じています。現在の携帯電話の環境と少し似ている、2つの異なる環境のようです。携帯電話のクローンの効果

    注:実際、多くの違いがありますが、すべてがここにリストされているわけではありません

  • 先ほど、Gitと他のバージョン管理ツールの違いについてお話ししたときに、キーワード(分散についてお話しましたが、ビッグデータの開発により、どこにでも見られるようになり、分散バージョン管理ツールと通常の集中型バージョンコントロールツールと誰が優れているかの違いは何ですか?

  • 実際、この著者は、バージョン制御ツールの2つの異なるアーキテクチャの間に違いはないと確信できます。どちらを使用するかは、作業のニーズに完全に依存します。

  • 一元化されたバージョン制御ツールのアーキテクチャモデルを見てみましょう

ここに写真の説明を挿入上の図によると、ウェアハウスはサーバーに格納されているため、ウェアハウスは1つだけです。これが、このバージョン管理システムが集中型と呼ばれる理由です。集中型はすべてのデータをサーバーに格納するため、管理が容易であるというメリットがあります。欠点は、開発者の環境がサーバーに接続できなくなると、最新のソースコードを取得できなくなり、開発がほとんど不可能になることです。サーバーがダウンしているときも同じことが言えます。サーバーに障害が発生してデータが消えた場合、開発者には最新のソースコードが表示されなくなるのではないかと心配しています。

  • 分散バージョン制御ツールのアーキテクチャモデルについて話しましょう。
    ここに写真の説明を挿入
    図を見ると、GitHubはパブリックブリッジに相当します。このブリッジとGitツールを使用すると、いつでもどこでも他の開発者と通信できます。GitHubユーザーにクラウドストレージウェアハウスを提供し、すべてのユーザーにウェアハウスフォークを提供できます(オープンまたは承認されていることに注意してください)。Forkは、特定のリポジトリをGitHubからアカウントにコピーすることです。フォークの倉庫と元の倉庫は2つの異なる倉庫です。開発者は自分の倉庫で編集できます(上記の倉庫は引き続きサーバー側に保存されます)。実際の開発では、通常、 GitHub上の自分のウェアハウスをローカルに複製してから、ローカルGitウェアハウスのリモート(アップストリーム)をGitHub側に設定します。分散アーキテクチャのバージョン制御ツールには複数のウェアハウスがあり、比較的複雑です。ただし、ローカル開発環境には倉庫があるため、開発者はリモート倉庫に接続しなくても開発できます。これは図の簡単な例にすぎません。実際、インターネット上の複雑な関係の下では、実際のGitモデルは図に示されているモデルよりもはるかに複雑です。

注:前の説明では、多くのGitモデルの概念について説明しましたが、まだ何も聞いていない可能性があるため、次のアプリケーションを参照して理解を深めることをお勧めします。

2.初期化設定


  • Linuxシステムへのインストールは非常に簡単で、コマンドは1つだけです。

    # Debian 发行版(Ubuntu,Kali ..):
    sudo apt install -y git
    # Red Hat 发行版(CentOS):
    sudo yum install -y git
    

    Windowsでは、コマンドラインがDosコマンドを使用して対話するため、公式WebサイトにアクセスしてWindowsバージョンの
    Git for Windowsをダウンロードする必要があります
    。この記事の焦点では​​ないため、スペース上の理由からここでは言及しません。読者はGoogleまたはBaiduを参照できます。関連するインストールチュートリアル。
    初心者の場合は、グラフィカルインターフェイスGitを使用して操作することもできます

    MacOsユーザーは自作を使用してインストールできます

    brew install git
    
  • 構成
    インストールが完了した後も、Gitを構成する必要があります。結局のところ、これがGitの使用方法です。
    (1)名前を設定します。優れた開発者として、他の人はあなたのコードを見た後、あなたにもっと興味を持つでしょう。 、他の人にあなたのことを覚えてもらう必要があるので、自分の名前を設定することは非常に重要です。また、コードを送信するときにIDレコードを区別することも重要です。

    git config --global user.name "firstname lastname"
    

    (2)名前だけでは不十分です。無限のインターネットでは、あなたと同じ名前の人がいないことを保証できる人はいないので、あなたを表すことができる一意のIDが必要なので、メールアドレスを設定するだけです。他の人からの連絡が便利です。

    git config --global user.email "[email protected]"
    

    (3)コードブックは退屈です。この灰色の世界をいくつかの色で飾ってみませんか。ハイライトを設定することをお勧めします。

    git config --global color.ui auto
    

    (4)これらの数行のコードは何をするのでしょうか。HOMEディレクトリに戻って確認することもできます。

    cat .gitconfig
    ============================= .giticonfig ==========================
    [user]
    	name = firstname lastname
    	email = [email protected]
    [color]
    	ui = auto
    ================================= END ===============================
    

    HOMEディレクトリには、gitconfigという名前が追加されます。内部のコンテンツは、構成に使用したものです。このファイルの構成情報を同じになるように直接変更することもできます。

    注:もちろん、パラメーターはこれらよりはるかに多く、構成できるパラメーターは多数あります。構成については、公式ドキュメントを参照してください。

  • git作業ディレクトリの初期化
    インストールと構成が完了したら、作業ディレクトリとしてディレクトリを実行する必要があります。HOMEディレクトリにGitテスト用の新しいディレクトリを作成し、Gitコマンドを使用してこのディレクトリに入ります。このディレクトリは初期化されています。

    mkdir GitTest
    
    cd GitTest
    
    git init
    

    これはあなたが学んだ最初のgitコマンドです。それは簡単ですか?このコマンドが何をするか見てみましょう。

    ls -a
    

    GitTestディレクトリに.gitという名前の追加の非表示ディレクトリがあることがわかります。実際には、Git作業ツリー全体が保存され、ファイルのメタデータ情報、履歴バージョン、操作ログなどが保存されます。待つ。

3.コマンドの練習

  • gitの状態
    あなたは下図のハウスキーピングを実行することができるはずです後にプロンプト
    ここに写真の説明を挿入
    最初の行は、我々は(INIT Gitが自動的に私たちのメインブランチであるmasterブランチを作成した後、分岐がコンセプトの背後に詳しく説明します)masterブランチであることを示し
    秒この行は、ステータスまたは最初の
    送信ステータスを示しています。3行目は、現在送信するファイルがないことを示しています。

    新しいファイルを見てみましょう
    ここに写真の説明を挿入
    。作成したファイルはREDEME.mdファイルです。このファイルはMarkDown構文を使用しています。これは、コードを見る人にコードの目的を紹介するために使用されます。通常のファイルとして扱うことができます。もちろん、 MarkDownの構文も学ぶことができます。それでも非常に便利です。仕事でもよく使用されます。上の図から、「git status」コマンドを実行すると、プロンプトが1行余分に表示され、まだ赤であることがわかります(比較を参照)。重要)、そのプロンプトは、このファイルがまだ送信されていないことです。指定されたコマンドを試して送信できます。

  • git add
    ここでは、上記のプロンプトに従ってコマンドを実行し、新しく作成したファイルをファイル一時ストレージ領域に追加します。
    ここに写真の説明を挿入
    図の実行プロセスから、新しく作成したファイルがファイル一時ストレージ領域にすでに追加されていることがわかります。 、ただし、まだ提出されていないことに注意してください。

  • git commit
    なので、一時ストレージ領域に保存されているファイルを再度送信する必要があります。
    ここに写真の説明を挿入
    ここで「-m」パラメーターを使用すると、次の文字列(つまり、送信の説明)が直接書き込まれます。この送信ログを入力します。このパラメーターを追加しない場合は、コマンドインタラクションラインインターフェイスを入力し、関連情報を入力します。送信が完了したら、前のビューステータスコマンドを使用して、プロジェクト全体を見つけることができます。状態は元の状態に復元されます。

  • git log
    プロジェクト全体の過去の提出記録を表示したい場合は、このコマンドを使用して表示できます。
    ここに写真の説明を挿入
    上の図によると、心のログ情報が4行に分割されていることがわかります。
    最初の行は提出のハッシュコードを表します。このコードはこの中にあります。この項目は一意であり、唯一の操作を示すために使用されます
    。2行目は送信者の情報、名前、および電子メールです
    。3行目は送信日時です。4
    行目は送信時に入力される説明情報です。

  • git diff
    次に、ファイルにコンテンツの行を追加してみましょう。
    ここに写真の説明を挿入
    図から、最初にコンテンツの行をファイルに追加してから、「gitdiff」コマンドを使用してファイルと現在の状態の違いを確認してください。出力情報は、ファイルの内容とブランチに保存されているファイルが異なることを示していることがわかります。現在のファイルには、元のファイルと比較して内容の行が追加されています。
    その後、以前の方法を使用して、この変更を一緒に送信します。 :
    ここに写真の説明を挿入
    REDEMEファイルは現在最新バージョンと変わらないことがわかります

さて、Gitの最も基本的なコマンドをマスターしました。もちろん、分岐、バックトラック、送信情報の変更、ローカルウェアハウスのデータのリモートウェアハウスへのプッシュ、リモートウェアハウスからのプルなど、より高度な操作があなたを待っています。 、プロジェクトのクローン作成など。知識を学ぶことは気にしないが、理解することについては、一度に多くの連絡先をすぐに消化できないため、ブロガーはこのトピックの後半の記事でより高度な操作について詳しく説明します。これを見た後、ブロガーのブログを読むために貴重な時間を割いていただきありがとうございます、そして熱心な知識のあなたの態度に感謝します、CSDNプラットフォームに感謝します、ありがとう!

おすすめ

転載: blog.csdn.net/qq_42359956/article/details/105815130