初めてのリポジトリ


ここに至る方法は通常2つあります。すでにローカルで構築しているweather-appなどのプロジェクトフォルダがあり、Gitにその履歴の記録を開始させたい場合。または誰か他の人がすでにプロジェクトを構築し、それがGitHub上にあり、あなたのマシンに自分の作業用コピーが欲しい場合。どちらも3つの小さなコマンドから始まり、この章の終わりまでに、これら3つすべてを実際に使用することになります。ただし、その前に、10秒で完了するチェックがあります。Gitがあなたのマシンに実装されているかどうかを確認することです。
Gitをインストールしていますか?
このハンドブックのすべてはターミナルで行われるため、最初のステップはターミナルを開くことです。**ターミナル**は、テキストとしてコマンドを入力し、プログラムがテキストで応答するアプリです。すでにあなたのコンピュータにあります:
- macOS: アプリはTerminalという名前です。Cmd+Spaceを押し、「terminal」と入力して、Enterを押します。
- Windows: 今のところPowerShellを開きます(スタートメニューで「powershell」を検索)。下記のGitをインストールすると、これ用に設計されたGit Bashというターミナルも追加されます。どちらでも同じGitコマンドを実行できます。
- Linux: Terminal または Console という名前のアプリを探します。多くのディストリビューションではCtrl+Alt+Tでこれが開きます。
Git自体はコマンドラインプログラムです。独自のウィンドウはなく、gitという単語で始まるコマンドを入力して、それが出力するものを読むことで使用します。このハンドブックのすべてのコードブロックを読む方法も同じです。$で始まる行はあなたが入力するコマンド($自体は除く)で、その下の行はGitの応答です。
それでは、チェックです。ターミナルに以下を入力してEnterを押します:
$ git --version
git version 2.45.1バージョン番号が返ってくることは、Gitがインストールされており、セットアップが完了しているという意味です。 あなたの番号はこれと異なる可能性があり、それで問題ありません。代わりに「command not found」または「git is not recognized」が表示される場合、Gitはまだあなたのマシンにはなく、インストールするのは1回限りの作業です:
- macOS:
git --versionを実行すると通常、Apple のCommand Line Toolsをインストールするように勧めるダイアログが開きます。それを受け入れると、macOSがGitをインストールします。 - Windows: git-scm.com/downloadsからGit for Windowsをダウンロードしてインストーラーを実行します。デフォルトはすべて合理的な選択であり、プロセス中にGit Bashもインストールされます。
- Linux: ディストリビューションのパッケージマネージャーで
gitパッケージをインストールします。例えば、UbuntuとDebianではsudo apt install gitを実行します。
インストールが完了したら、ターミナルを閉じて、新しいターミナルを開き、再びgit --versionを実行します。バージョン番号が出ていれば、セットアップは完全に完了しています。このハンドブックの残りの部分では、何もインストールする必要はありません。
git --versionはそれがあなたのマシンにあるかどうかを示します。バージョン番号が表示されればセットアップ完了で、「command not found」と表示されればgit-scm.comまたはあなたのシステムのインストーラーからインストールします。これは1回だけです。セットアップはどのハンドブックでも最も楽しくない部分なので、よくできました! フォルダをリポジトリに変える
ターミナルを開き、cd(「change directory」の略)を使用してプロジェクトフォルダに移動してから、1つのコマンドgit initを実行します:
$ cd weather-app
$ git init
Initialized empty Git repository in /Users/mara/projects/weather-app/.git/そのフォルダは現在**リポジトリ**です。Gitが監視するプロジェクトで、作業するときにそのスナップショットを記録する準備ができています。git initは毎回同じことをします。隠された.gitフォルダを探し、ない場合は作成し、その時点からフォルダはGitの監視下にあります。
新しいリポジトリのデフォルトブランチはmainという名前です。 古いチュートリアル、古いリポジトリ、または数年前に記録されたコースに着地する場合、同じことに対してmasterが使用されているのを見るでしょう。これは古い名前の同じ最初のブランチです。このハンドブックは常にmainを使用します。
ブランチとは何ですか?
ブランチはコミットがランディングする独立した履歴の線です。mainはすべての新しいリポジトリが開始するものです。ブランチは、ブランチの作成と切り替えについて説明しています。
git init任意のフォルダをGitリポジトリに変え、Gitが追跡を開始する準備ができています。プロジェクトフォルダ内で1回実行するとセットアップ完了です。後で再度実行しても害はありません。新しいリポジトリはデフォルトでmainというブランチで、古いものは通常masterというブランチ名です。 Gitに自分が誰であるかを教える
最初のコミットの前に、Gitはそれを作成している人を知りたいと思っています。2つの値を一度設定すると、Gitはこのマシンでするすべてのコミットでそれらを記憶します:
$ git config --global user.name "田中 太郎"
$ git config --global user.email "[email protected]"作成するすべてのコミットは、その名前とメールアドレスでスタンプされます。このステップをスキップしてください。Gitはあなたのコンピュータのユーザー名とホスト名から推測されたものにフォールバックします。コミットは選択しなかった身元を記録します。
最初のコミットの前に、名前とメールアドレスを設定します。 最初にコミットしてから設定すると、その間違いはそのコミットの履歴にベイクされます。さらに悪いことに、一部のホスト(GitHubを含む)はメールアドレスであなたのアカウントにコミットをマッチングするため、間違ったアドレスまたは推測されたアドレスで行われたコミットは、匿名の見知らぬ人の作業として表示されます。
git config --global user.nameとgit config --global user.emailは、Gitが作成するすべてのコミットに記録する名前とメールアドレスを設定します。最初のコミットの前に設定します。メールアドレスを設定する前に行われたコミットは、推測された身元で属するため、GitHubなどのホストがそれをあなたのアカウントに接続しない可能性があります。一度行うと、マシン上のすべてのリポジトリがそれを記憶します。 git cloneで既存のプロジェクトをコピーする
時々、プロジェクトはすでに他の場所に存在し、あなたのマシンに作業用コピーが必要です。git cloneはそれを1つのコマンドで行います:
$ git clone https://github.com/octocat/Hello-World.git
Cloning into 'Hello-World'...
remote: Enumerating objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Receiving objects: 100% (13/13), done.GitはHello-Worldという名前の新しいフォルダを作成し、プロジェクトの完全な履歴をダウンロードしてそこに配置し、すぐに読み取りや編集を開始できるようにファイルを配置します。別のgit initステップは必要ありません。クローン作成はダウンロードの一部としてリポジトリをセットアップします。
git clone <url>は誰かのリポジトリをダウンロードし、完全な履歴をプロジェクト名に基づいて新しいフォルダに含めます。プロジェクトがすでに存在する場合はそこに到達します。ゼロから開始している場合はgit initに到達します。クローン作成が完了したら、調べるか追加する準備ができた完全な作業用コピーがあります。 隠された.gitフォルダの中身
git initとgit cloneどちらで到達したリポジトリでも、ルートに隠された.gitという名前のフォルダがあります。デフォルトでは隠されているため、ls -aを使用してターミナルに完全なリストを求めます(lsはフォルダの内容をリストしており、-aは隠されたエントリを含みます)。通常のプロジェクトファイルの隣にあることを確認します:
$ ls -a
. .. .git README.md srcそのフォルダが実際のリポジトリです。作成したすべてのコミット、ブランチ、上記のセクションからの設定を保有しています。.gitフォルダを削除するとプロジェクトはその全体履歴を失います。通常のフォルダに戻り、Gitはそれを追跡しなくなります。プロジェクトの他のすべてのものは、.gitが保有しているもののの作業用コピーです。
.gitフォルダを持ちます。そのフォルダが実際のリポジトリです。全体的な履歴と設定がそこに存在します。デフォルトで隠されているため、プロジェクト内でls -aを実行してそれを確認します。実際にプロジェクトの全体的な履歴を削除したい場合を除いて、決してそれを削除しないでください。削除するとフォルダが通常のフォルダに戻り、Gitが追跡しなくなるためです。 リポジトリとコミットという用語がまだ曖昧な場合、What is Gitはこれらのコマンドが構築する心的モデルをカバーしており、Glossaryはこの章のすべての用語の短い定義を持っています。身元が設定され、作業するリポジトリがあるとき、The commit loopは、今後常に使用する編集、ステージング、およびコミットの日常サイクルをカバーしています。

