Gitクローンブランチ–特定のブランチのクローンを作成する方法

SVNやCVSなどの古い集中型バージョン管理システムとは異なり、Gitは分散されています。すべての開発者は、ローカルまたはリモートでコードの完全な履歴と制御を持っています。また、さまざまな場所から適切と見なされるため、コードのいくつかの部分にアクセスしたり操作したりすることもできます。

Linus Torvalds(Linuxオペレーティングシステムカーネルの有名な作成者)が2005年にLinuxカーネル開発用にGitを作成して以来、Gitは世界で最も広く使用されている最新のバージョン管理システムになりました。

この記事では、GitクローンとGitブランチのワークフローを紹介し、ニーズに基づいて特定のブランチを複製する方法を紹介します。さぁ、始めよう!?

前提条件

  • ターミナルの基礎知識
  • ターミナルでコマンドを入力する機能
  • Gitがインストールされました(方法は引き続き説明します)
  • GitHubアカウント
  • あなたの顔に笑顔(その笑顔の友達を立てる?)

GitとGitHubの簡単な紹介

ウィキペディアによると、

Gitは、ソフトウェア開発におけるプロジェクト(コード)への変更を追跡するように設計された分散バージョン管理システムです。これは、開発者間の調整、コラボレーション、速度、および効率を強化することを目的としています。

一方、GitHubは、Gitを使用したバージョン管理のためのWebベースのホスティングサービスです。Gitのすべての分散バージョン管理およびソースコード管理機能を提供するだけでなく、コンピューターコードの機能を追加します。

WindowsにGitをインストールする方法

こちらから最新のGitforWindowsインストーラーをダウンロードしてインストールします。

LinuxにGitをインストールする方法

Linuxディストリビューションに基づくコマンドは次のとおりです。

DebianまたはUbuntu

sudo apt-get update sudo apt-get install git

Fedora

sudo dnf install git

CentOS

sudo yum install git

Arch Linux

sudo pacman -Sy git

Gentoo

sudo emerge --ask --verbose dev-vcs/git

MacにGitをインストールする方法

こちらから最新のGitforMacインストーラーをダウンロードしてインストールします。

または、次のコマンドを入力できます。

brew install git

Gitがインストールされたので、チュートリアルに移りましょう。

Gitクローンの紹介

Gitを使用すると、「リポジトリ」でプロジェクトを管理およびバージョン管理できます。このリポジトリは、GitHubなどのバージョン管理用のWebベースのホスティングサービスに保存されます。

次に、このリポジトリをローカルマシンに複製し、すべてのファイルとブランチをローカルに配置できます(ブランチについては後で詳しく説明します)。

たとえば、次のようにSSHを使用してfreeCodeCampのリポジトリのクローンを作成できます。

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Gitブランチの概要

プロジェクトで作業するときは、さまざまな機能を使用する可能性があります。そして、複数の貢献者がこのプロジェクトとその機能に取り組んでいます。

ブランチを使用すると、masterブランチ内の同じファイルを使用して「遊び場」を作成できます。このブランチを使用して、本番コードを壊したり影響を与えたりすることなく、独立した機能の構築、新機能のテスト、重大な変更の作成、修正の作成、ドキュメントの作成、アイデアの試行を行うことができます。完了したら、ブランチを本番masterブランチにマージします。

分岐はGitのコアコンセプトであり、GitHubでも1つのプロジェクトのさまざまなバージョンのワークフローを管理するために使用されます。masterブランチは、常に最も多く、「生産と配備可能コード」と考えられているリポジトリのデフォルトのブランチです。新しい枝が好きpasswordless-authrefactor-signup-uxから作成することができmasterブランチ。

Gitブランチのクローンを作成する方法

git cloneコマンドを使用してリポジトリのクローンを作成できますが、これによりブランチとリモートのクローンが作成されることに注意してHEADください。これは通常masterデフォルトであり、リポジトリ内の他のすべてのブランチが含まれます。

したがって、リポジトリのクローンを作成するときは、masterおよび他のすべてのブランチのクローンを作成します。つまり、自分で別のブランチをチェックアウトする必要があります。

プロジェクトでのタスクが、ユーザーダッシュボードにパスワードなしの認証を追加する機能に取り組むことであるとしましょう。そして、この機能はpasswordless-authブランチにあります。

master「機能ブランチ」はmaster後でマージされるため、実際にはブランチは必要ありません。passwordless-authでは、「不要なファイルの束」を持つ他のすべてのブランチをフェッチせずに、このブランチのクローンを作成するにはどうすればよいでしょうか。

これを説明するために、このサンプルリポジトリを作成しました。このリポジトリには、Nextjsで構築された単純なブログがあり、4つのダミーブランチがあります。

  • 主人
  • 開発者
  • 演出
  • passwordless-auth

Nextjsでは、フォルダー内のすべてのファイルpages/api/api/*パスにマップされ、page。ではなくAPIエンドポイントとして扱われます。私たちのリポジトリでは、各ブランチを異なるものにするために、このディレクトリに異なるダミーAPIを作成しました。

masterブランチは、ファイルの保持しているページ/ API / hello.jsをしながら、passwordless-authファイルの保持しているページ/ API / auth.jsを。各ファイルは、ダミーのテキスト応答を返すだけです。masterここでのhelloAPI応答を参照してください(特別なメッセージがありますか?)。

リポジトリのクローンを作成しましょう。

git clone [email protected]:BolajiAyodeji/nextjs-blog.git

これにより、このリポジトリ内のすべてのブランチにアクセスでき、各ブランチを簡単に切り替えて、各バージョンとそのファイルを表示できます。

git branch -a

どこ不思議リモコン/起源/ ..枝から来ましたの?

リポジトリのクローンを作成するときは、インターネット上のリポジトリまたはリモートと呼ばれる内部サーバーからデータをプルします。オリジンという単語は、リモートURLを置き換えるためにGitによって作成されたエイリアスです(必要に応じて、別のエイリアスを変更または指定できます)。

これらのremotes / origin / ..ブランチは、インターネットから複製したオリジンリポジトリに戻るため、オリジンからプル/プッシュを実行できます。

したがってmaster、マシンにクローンを作成すると、はインターネット上のremotes/origin/master元のmasterブランチでありmaster、ローカルマシン上にあります。したがって、からおよびにプル/プッシュしremotes/origin/masterます。

要約すると、Remoteはインターネット上のリポジトリを指すURLであり、OriginはこのリモートURLのエイリアスです。

特定のブランチのクローンを作成する方法

それでは、デモリポジトリから特定のブランチのクローンを作成しましょう。特定のブランチのクローンを作成する方法は2つあります。次のいずれかを実行できます。

  • リポジトリのクローンを作成し、すべてのブランチをフェッチして、特定のブランチにすぐにチェックアウトします。
  • リポジトリのクローンを作成し、単一のブランチのみをフェッチします。

オプション1

git clone --branch  

または

git clone -b  

これにより、リポジトリ内のすべてのブランチをフェッチし、指定したブランチにチェックアウトすると、特定のブランチがとの構成済みローカルブランチにgit pushなりgit pullます。ただし、各ブランチからすべてのファイルをフェッチしました。これはあなたが望むものではないかもしれませんか??

それをテストしましょう:

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

これによりpasswordless-auth、ローカルブランチとして自動的に構成されますが、他のブランチは追跡されます。

オプション2

git clone --branch  --single-branch 

または

git clone -b  --single-branch 

これは、--single-branchオプションがGitバージョン1.7.10以降で導入されたことを除いて、オプション1と同じアクションを実行します。これにより、他のブランチをフェッチせずに、指定されたブランチからのみファイルをフェッチできます。

それをテストしましょう:

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

これによりpasswordless-auth、ローカルブランチとして自動的に構成され、このブランチのみが追跡されます。

実行cd pages/apiすると、前の設定から期待したとおりにauth.jsファイルがpasswordless-authブランチに見つかります。

結論

インターネットまたはストレージスペースが不足している可能性がありますが、特定のブランチでタスクに取り組む必要があります。または、さまざまな理由で、ファイルが制限された特定のブランチのクローンを作成することもできます。幸い、Gitはこれを行うための柔軟性を提供します。筋肉を曲げて試してみてください。学ぶべき「Git」はまだまだたくさんあります。

一度に一つずつですよね?✌?